本文目录一览:
JAVA的构造函数弄不清楚,求高手解答
对于初学者来说,要明确下面几点:
1。每个类都有一个默认的构造方法,用于,类属性的初始化
class A{
int i;
}
当你new一个A的对象时,i会被初始化为“0”,其他属性,会根据类型赋值。
2。也可以自己写构造方法,但要符合下列规则。
(1)构造方法的方法名必须与类名相同。
class A{
int i;
public A(){ //构造方法
i = 0;
}
}
(2)构造方法没有返回类型,也不能定义为void,在方法名前面 不声明方法类型。
publci int A(){
}
publci void A(){
}
都是错误的
(3)构造方法可以有参数,可以使用该参数给属性赋值
class A{
int i;
public A(int value){ //带参数的构造方法
i = value;
}
}
(4)类可以有一个以上构造方法,但必须有不同的参数,构造方法由系统自动调用,调用规则在你创建对象时,决定
class A{
int i;
public A(){ //构造方法
i = 0;
}
public A(int value){ //构造方法
i = value;
}
public A(int value1,int value2){ //构造方法
i = value2;
}
}
A a = new A()//调用无参构造函数
A a = new A(10)//调用有一个参数构造函数
A a = new A(10,20)//调用有两个参数构造函数
JAva 构造器问题
构造函数被调用的三种方式
一、创建对象时被调用
格式:new 类名(构造函数的参数);
示例:new Long(123L);
如果一个类中没有显示的声明构造函数,将会存在一个默认构造函数,该构造函数没有参数,不做任何行为。
如果显示定义了一个或多个构造函数,将不会存在这个默认构造函数。
如果定义了多个构造函数,将根据参数的不同调用相应的构造函数。
二、被本类中的其他构造函数调用
格式:this(参数);
示例:this();
以上代码仅在构造函数中有效,写在其他位置会出现编译时错误。
在一个类中的构造函数中调用这个类的其他构造函数可以由上面的代码完成。
这种调用方式只会在一个类中有多个构造函数的情况下出现。
三、被子类中的构造函数调用
格式:super(参数);
示例:super(“Test exception”,new Exception);
以上代码只适用在子类的构造函数中。
为了使一个类的父类更好的初始化,可以在子类的构造函数中用以上方式调用父类的构造函数。
如果父类中只有带有参数的构造函数,那么子类必须在构造函数中调用父类的构造函数,否则发生编译时错误。
关于java构造方法的问题
一:java中构造方法如果有带参数的构造方法,必须先定义一个无参构造方法,否则在创建此类过程中会直接报错。
二:调用构造方法的时候可以直接通过new的形式进行构造方法调用:
如 :A a = new A("aaa","bbb");其中后面的内容是在A类中创建的两个字符串类型的方法构造;
三:构造方法中的多个参数,不能参数类型和个数都一致(参数名不同也不行),否则会直接报错。
备注:以上几点是需要注意的,注意到以上几点一般构造方法就可以正常的被使用了。
java 构造函数传递参数出现问题
首先在JAVA中没有构造函数一说,应该称其为构造器或构造方法。 第二,this.xx = xx是为了区分成员变量与局部变量同名的问题。 第三,你所说的小括号里的参数是参数列表,也就是形参变量,他有可能为空,也就是没有参数。