构造方法的格式
public class Student{
修饰符 类名(参数){
方法体}
}
构造方法的特点
方法名与类名相同,大小写也要一致
没有返回值类型,连void也没有
没有具体的返回值(不能由returen带回结果数据)
执行时机
创建对象的时候由虚拟机进行调用,不能手动调用构造方法
每创建一次对象,就会调用一次构造方法
public class Student {
private String name;
private int age;
public Student(){
//空参构造
}
public Student(String name,int age){
//带参数的构造
}
}
写代码的时候空参构造和带参构造都要写上
原因:有时候不知道属性值,这时候先用空参构造把对象创建出来,等用户键盘录入值之后,用s.setXxx把值进行赋值
实参空参案例
public class Student {
private String name;
private int age;
public Student(){
System.out.println("我执行了吗?");
}
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;
}
}
测试类
public class Test {
public static void main(String[] args) {
Student s = new Student();
Student s1 = new Student("xiaocheng",20);
System.out.println(s1.getName());
System.out.println(s1.getAge());
}
}
运行结果:
我执行了吗?
xiaocheng
20
解释:
测试类的第三行代码,会执行对象中的空参构造
一开始写空参实参不是很熟悉,我自己的感觉就是多写几遍就会形成肌肉记忆
构造方法的注意事项
构造方法的定义
如果没有定义构造方法,系统将会给出一个默认的无参数构造方法
如果定义了构造方法,系统将不会再提供默认的构造方法(就是写了有参构造之后,不写无参构造,在main方法中如果写无参数的调用将会报错,简而言之就这样)
构造方法的重载
带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这个叫做构造方法的重载
推荐的使用方法
无论是否使用,都手动书写无参数构造方法,和带参数的全部构造方法。(感觉最后的这一点,前面的两个可以忽略,但是最好知道这样的情况)
总结
构造方法的作用?
创建对象的时候,由虚拟机进行自动调用,给成员变量进行初始化的
构造方法有几种,其作用分别是什么?
无参数构造方法:初始化对象时,成员变量均采用默认值
有参构造方法:在初始化对象的时候,同样可以为对象进行赋值
构造方法有哪些注意事项?
参考6
构造方法并不是用来创建对象的
创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化的
真正的创建对象是new关键字的作用
而自动调用方法仅仅是创建对象其中的一步,创建对象是有非常多的步骤的