使用构造方法时的注意事项:
构造方法的创建 1、如果没有定义构造方法,系统将不再提供默认的构造方法 2、如果定义了构造方法,系统将不再提供默认的构造方法
构造方法的重载 1、如果自定义了带参数的构造方法,还要使用无参数的构造方法,就必须在写一个无参数构造方法
推荐的使用方式 1、无论是否使用无参数的构造方法,都必须自己手动写无参数构造方法
构造方法的作用:创建对象,完成对象数据的初始化。格式如下
xxxxxxxxxxpublic class 类名{ 修饰符 类名(参数) { }}
构造方法练习
xxxxxxxxxxpackage ch2;
public class a7_1构造方法 {
//写两个成员变量 private String name; private int age;
//构造方法 //public a7_1构造方法(){ // System.out.println("无参数构造方法 not bulidnum way"); //}
//无参构造方法(使用有参的时候也要把无参的public写出来,不然会报错) public a7_1构造方法() { }
//构造方法 public a7_1构造方法(String name) { this.name = name; }
//再写一个构造方法 public a7_1构造方法(int age){ this.age = age; }
//最后写一个完整的构造方法 public a7_1构造方法(String name,int age){ this.name = name; this.age = age; }
//name成员方法 public void setName(String name){ this.name = name; } public String getName(){ return name; }
//age成员方法 public void setAge(int age){ this.age = age; } public int getAge(){ return age; }
//最后写一个show方法 public void show() { System.out.println(name + "," + age); }
}
构造方法案例
xxxxxxxxxxpackage ch2;
public class a7_2测试构造方法 {
public static void main(String[] args) { //创建对象(根据无参构造方法创建的对象),且赋值 a7_1构造方法 s1 = new a7_1构造方法(); s1.setName("lihua1"); s1.setAge(19); s1.show();
//创建一个有参构造方法的对象 a7_1构造方法 s2 = new a7_1构造方法("Jack"); //直接输入"Jack",前面的name是系统自动补全的 s2.show();
//根据上一个文件的age构造方法来创建一个对象 a7_1构造方法 s3 = new a7_1构造方法(30); //直接输入"30",前面的age是系统自动补全的 s3.show();
//根据上一个文件的完整构造方法创建一个对象,且赋值 a7_1构造方法 s4 = new a7_1构造方法("Lina",18); s4.show(); }
//上面四种方法其实也是重载的形式,即方法名相同,参数列表不同}