构造方法:
关于java类中的构造方法:
1.构造方法又被成为构造器或者构造函数
2.构造方法语法结构:
[权限修饰符] 构造方法名(形参){方法体}
3.回顾一下普通方法的语法结构:
[权限修饰符] 返回值类型 方法名(形参){方法体}
4.对于构造方法来说,"返回值类型"不需要指定,并且也不能写void,例如你不能写返回类型是int,String之类的。如果写上了void,那么这个方法就成为了普通方法。
5.构造方法的方法名需要与类名一致。
6.构造方法的作用?
通过构造方法的调用,可以创建对象
7.构造方法应该如何调用?
类比来看
普通方法调用:
-方法修饰符中有static的时候:类名.方法名(实参)
-方法修饰符中无static的时候:引用.方法名(实参)
构造方法:new 构造方法名(实参)
8.构造方法调用执行之后,有返回值吗?
有,实际执行结束之后都有返回值,但是这个"return"不需要写,并且返回值类型是构造方法所在类的类型,构造方法结束时java程序自动返回类型。
10.当一个类中没有定义任何构造方法的话,系统默认给该类提供了一个无参的构造方法
11.当一个类显示的构造方法定义出来了,那么系统则不再默认为这个类提供默认构造器
12.构造方法是可以重载么?
可以,在一个类中写多个构造方法,这个多重名的方法显然是符合重载极值的。
13.创建对象的同事,初始化实例变量的内存空间。
class Account{
/*上述Accout类加载到jvm后,下面的actno,balance有值么?
$$没有,因为这两个变量是实例变量,也叫做对象变量,也就是说必须要有对象
才能有对应的实例变量。
$$成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象
才能有实例变量。
$$那么创建对象的时候,系统默认赋值,这个赋值是在什么时候完成的呢?
是在类加载的时候么?
No,类加载只是加载了部分代码,还没来得及创建对象,所以此时实例变量并没有
初始化,实际上实例变量的内存空间是在构造方法执行过程当中完成开辟的,完成
初始化的,也就是说,在构造方法执行过程中完成的赋值。
*/
private String actno;
private double balance = 0.0;
public Account(){
}
public String getActno(){
return actno;
}
public void setActno(){
this.actno = actno;
}
public double getBalance(){
return balance;
}
public void setBalance(){
this.balance = balance;
}
}
public class ConstructorTest{
public static void main(String []args){
}
}