1 /* 2 3 构造方法:方法名和类名必须相同,可以无参数,可以有参数,没有返回值 4 5 构造方法和一般方法的区别: 6 7 构造方法是在创建对象时,被调用,只执行一次 8 9 一般方法是对象创建完成之后,被对象调用,可以被多次调用 10 11 */ 12 13 14 15 //定义一个Person类 16 17 public class Person{ 18 19 private String name; 20 21 private int age; 22 23 24 25 //无参构造 26 27 public Person(){ 28 29 } 30 31 32 33 //有参构造 34 35 public Person(String name , int age){ 36 37 this(); //本类中调用构造方法使用this() 38 this.name = name; 39 40 this.age = age; 41 42 } 43 44 } 45 46 47 48 /* 49 50 this关键字,调用其他构造方法的语句必须定义在构造方法的第一行,初始化动作要先执行 51 成员变量和局部变量同名问题:在成员变量名前使用this.来区分成员变量和局部变量 52 53 */ 54 55 56 57 public class Animal{ 58 59 String name; 60 61 int age; 62 63 //无参构造 64 65 public Animal(){} 66 67 /*有参构造,给姓名初始化*/ 68 69 public Animal(String name){ 70 71 this.name = name; 72 73 } 74 75 /*有参构造,给姓名和年龄初始化*/ 76 77 public Animal(String name , int age){ 78 79 //由于已经初始化name,直接调用即可 80 81 this(name); //this() 82 83 this.age = age; //初始化年龄 84 85 } 86 87 } 88 89 /* 90 91 super关键字: 92 93 子类调用父类中的无参构造方法:super(); 94 95 子类调用父类中的有参构造方法:super(参数列表); 96 当子类调用父类中的无参构造方法时,super()是隐式的,子类会继承父类的内容,子类初始化时,会先到父类中执行初始化动作 97 98 当子类调用父类中的有参构造方法时,super()语句必须显示,指定要访问父类有参数的构造方法 99 100 */ 101 102 //定义一个父类 103 104 public class Fu{ 105 106 int a = 1; 107 108 public Fu(){ 109 110 System.out.println(a); 111 a = 2; 112 113 } 114 115 } 116 117 //定义一个子类 118 119 public class Zi{ 120 121 public Zi(){ 122 123 //super(); //调用父类的构造方法 124 125 System.out.println(a); 126 127 } 128 129 }