Java、IDEA筆記

  1. 一個java文件A裏面只能有一個public類B,且A的文件名需要和B的類名相同
  2. Mytest裏面有main方法,需要用到MyCycle類和UniCycle類,我們需要把MyCycle類和UniCycle類打包成一個package。在這兩個類的首行寫package com.pxz.cycle;包名需要和包內java文件層次相同。在idea中,文件層次是在定義包名時自動生成的。比如包名com.pxz.cycle,idea就會生成com/pxz/cycle這樣的文件結構。
  3. 在idea的settings中,可以設置自動添加包和自動移除包。
    這裏寫圖片描述
  4. 多態基本概況
//Mytest.java
public class Mytest {
    static void fun(Super s) {
        System.out.println("s.v=" + s.v);
        System.out.println("s.getV()=" + s.getV());
    }
    public static void main(String args[]) {
        Super s1 = new Sub();
        fun(s1);
        Sub s2 = new Sub();
        fun(s2);
        Super s3 = new Super();
        fun(s3);
    }
}
class Sub extends Super {
    public int v = 1;
    public int getV() {
        return v;
    }
}
class Super {
    public int v = 0;
    public int getV() {
        return v;
    }
}
s.v=0           //字段沒有多態,由函數傳入參數的類型決定
s.getV()=1      //方法有多態,由參數本身類型決定
s.v=0           //字段沒有多態,由函數傳入參數的類型決定
s.getV()=1      //方法有多態,由參數本身類型決定
s.v=0
s.getV()=0
  1. 成員變量和靜態方法不能進行多態
//Mytest.java
public class Mytest {
    public static void main(String args[]) {
        Super s1 = new Sub();
        System.out.println("s1.v=" + s1.v);
        System.out.println("s1.getV=" + s1.getV());
        s1.getString();

        Super s2 = new Super();
        System.out.println("s2.v=" + s2.v);
        System.out.println("s2.getV=" + s2.getV());
        s2.getString();

        Sub s3 = new Sub();
        System.out.println("s3.v=" + s3.v);
        System.out.println("s3.getV=" + s3.getV());
        s3.getString();
    }
}
class Sub extends Super {
    public int v = 1;
    public int getV() {
        return v;
    }
    public static void getString() {
        System.out.println("Sub");
    }
}
class Super {
    public int v = 0;
    public int getV() {
        return v;
    }
    public static void getString() {
        System.out.println("Super");
    }
}
s1.v=0          //字段沒有多態,由定義對象類型決定(new前面的類型)
s1.getV=1       //方法有多態,由對象本身類型決定(new後面的對象)
Super           //static沒有多態,由定義對象類型決定(new前面的類型)
s2.v=0
s2.getV=0
Super
s3.v=1
s3.getV=1
Sub
  1. 抽象類、接口
    http://www.cnblogs.com/felixzh/p/5938544.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章