- 构造方法的作用
- 构造方法的格式
- 构造方法的注意事项
- 类的初始化过程
构造方法的作用
用于对对象的数据进行初始化
构造方法的格式
1、方法名和类名相同
2、没有返回值类型,连void都不能有
3、没有返回值
思考题:构造方法中可不可以有return语句呢?
可以,我们可以写成这样:return;
其实,在任何的void类型的方法的最后你都可以写上:return;
构造方法的注意事项
1、如果我们没有写构造方法,系统将提供一个默认的无参构造函数
2、如果我们给出了构造方法,系统不再提供默认构造函数,如果这个时候,我们要使用无参构造方法,就必须自己给出
推荐:永远手动自己给出无参构造函数
class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试:
class StudentDemo {
public static void main(String[] args) {
//方式1
Student s1 = new Student();
s1.setName("林青霞");
s1.setAge(27);
System.out.println(s1.getName()+"---"+s1.getAge());
//方式2
Student s2 = new Student("刘意",30);
System.out.println(s2.getName()+"---"+s2.getAge());
}
}
类的初始化过程
Student s = new Student();在内存中做了哪些事情???
1、加载Student.class文件进内存
2、在栈内存为s开辟空间
3、在堆内存为学生开辟空间
4、对学生对象的成员变量进行默认初始化
5、对学生对象的成员变量进行显示初始化
6、通过构造方法对学生对象的成员变量赋值
7、学生对象初始化完毕,把对象地址赋值给s变量
问题
1、变量什么时候定义为成员变量???
如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量。
2、变量到底定义在哪里好???
变量的范围是越小越好,因为能及时被回收。