是不是因为构造函数名和类名相同所以它才在new 创建对象的时候就被调用了啊!

[复制链接]
查看11 | 回复5 | 2012-4-4 14:14:36 | 显示全部楼层 |阅读模式
我来试试看,看楼主能不能理解我下面说的话。下面可都是重点哦。
构造器可以当成一个特殊的方法,它在程序中的主要作用就是负责java的实例变量执行初始化操作,也就是赋初始值,而创建java实例对象这个工作,在执行构造器代码之前就已经完成了。构造器在执行之前,该实例对象所占用的内存空间就已经被分配了。这些内存中的值,都是空值---对于基本类型变量来说就是默认0或者false,引用类型变量则是null。验证我上面的话是否可靠。可以用一个例子来证明。 有一个父类,父类中有一个私有的实例变量i并赋初始值为2.父类中有一个无返回值无参数的普通方法比如public void display(){}; 方法体内就是输出一个i;父类中就有一个无参...
回复

使用道具 举报

千问 | 2012-4-4 14:14:36 | 显示全部楼层
不是这样理解的,java在创造出来的时候就已经规定好了,就拿你自己的代码简单的说吧,如果你要new一个对象的时候,如:public class xscj2{public static int a1(int a[]){int result=0,i=0;while (i<a.length)result+=a[i++];...
回复

使用道具 举报

千问 | 2012-4-4 14:14:36 | 显示全部楼层
恩,你说的是对的,不过不光是这些原因:1.构造函数定义的时候不能有返回值,方法名称必须和类名一样2.可以有多个构造函数,也就是重载3.new的时候是根据参数类型来选择使用哪个构造函数例如:class AAA{public AAA(){}public AAA(int a){}}如果AAA a = new AAA();调用...
回复

使用道具 举报

千问 | 2012-4-4 14:14:36 | 显示全部楼层
可以这么理解。构造函数是一种特殊的方法,主要是为了给初始化对象赋初值。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数。构造函数上惟一的语法限制是它不能指定返回类型,甚至void 也不行。...
回复

使用道具 举报

千问 | 2012-4-4 14:14:36 | 显示全部楼层
A a=new A();这个A()就是构造函数~~~ 构造函数其实是有返回值的 它返回一个对象的实例你问的说反了 应该是在用new调用了构造函数以后 构造函数会返回一个对象的实例(也就是创建一个对象)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行