Java学习第十章 之 this、super关键字、构造方法

  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 }

 

posted @ 2020-04-01 15:56  蜡笔辛巴  阅读(143)  评论(0编辑  收藏  举报