2017年4月22日继承

1、构造方法:

  构造方法的名称和类型相同,没有返回值类型。构造方法的主要作用就是在创建对象时执行一些初始化操作,如给成员属性赋初始值。

2、构造方法的重载:

  如下例中的三个构造方法,方法名相同,参数列表不同,这称为构造方法的重载。

public class Penguin {
     String name = "无名氏"; // 昵称
     int health = 100; // 健康值
     
     public Penguin() {
          name = "小明";
          health = 40;
     }            
     /**
      * 构造方法的重载
      */
      public Penguin(String name, int health) {
           this.name = name;
           this.health = health;
      }

    
}

3、构造方法的相互调用

  

public class Test{
     public String name;
     public Test(String name) {
         this.name = name;
     }
     public Test(){
          this.("飞飞");
     }
}

4、static

public class StaticTest {
    static int i;
    static int m = 30;
    int j;
    int k = 25;
    static{
        i =10;
        System.out.println("i的初始化值为:"+i);
    }
    public StaticTest() {
        j = 20;
        System.out.println("j的初始化值为:"+i);
    }
    public static void getNum(){
        System.out.println("得到i的值为:"+i);
    }
    public static void main(String[] args) {
        StaticTest st = new StaticTest();
        System.out.println("i的值为:"+StaticTest.i);
        st.getNum();
        System.out.println("m的值为:"+st.m);
        System.out.println("k的值为:"+st.k);

    }

}

输出结果为:
i的初始化值为: 10
j的初始化值为: 10
i的值为: 10
得到i的值为: 10
m的值为: 30
k的值为: 25

由上面的例子可以看出,在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的

5、new关键字的3个作用

  ①开辟空间,向jvm索要空间

  ②创建对象

  ③调用构造

6、两种方式给数组赋值

Static Level [] levels = new Level [6];//_null_null_null_null_null_null_为null时:不能使用它的任何属性和方法
//第一种方法
levels [0] = new Level[];
//第二种方法
Level level = new Level();
level.name ="飞飞";
levels [0] = level;

7、equals在进行字符串对象的对比时,对比的是真实内存,其他的都对比内存地址,和"=="一样。除非程序员手动重写equals方法

8、揭秘子类构造的执行过程

Parent parent=new Child();
从main函数======>子类构造------>进入父类构造------>执行父类构造体------->子类构造体执行------>回到main

原文地址:https://www.cnblogs.com/alexanderthegreat/p/6750324.html