JAVA面向對象的理解


一、JAVA中的棧內存與堆內存

  1.棧內存:存放局部變量,超出作用域會被回收;

  2.堆內存:創建出來的對象,有java垃圾回收器回收。

二、static與類共存亡; 非static與對象共存亡!!

三、對象的比較:

  1.== :比較的是棧內存中的值(地址)

  2.equals : 比較的是內容,重寫該方法才有意義!!

四、函數傳參是:基本類型是值的拷貝的傳遞;引用類型是引用的傳遞!!

五、String的理解:

    new出來的對象與直接寫的的區別!!!

  

 1 String s1 = new String("abc");    //2個對象
 2 String s2 = new String("abc");    //2個對象  3 
 4 System.out.println("s1 == s2 : " + (s1 == s2));//false
 5 System.out.println("s1.equals(s2) : " + s1.equals(s2));//true
 6 
 7 
 8 String s3 = "abc";
 9 String s4 = "abc";
10 
11 System.out.println("s3 == s4 : " + (s3 == s4));//true
12 System.out.println("s3.equals(s4) : " + s3.equals(s4));//true

 六、getClass:

    Class字節碼的獲取:

      1.通過對象獲取;    對象.getClass()

      2.通過類獲取;     類.Class

      3.Class的forName方法獲取。  Class.forName("com.westos.javase.lesson04_2.Person");  ------->  注意全名

七、抽象類:

    抽象類天生就是用來被繼承的;

    抽象類不能被實例化,但可以定義變量指向子類對象;

    其子類必須重寫所有方法,否則也必須聲明為抽象類; 

    抽象類中可以沒有抽象方法;

    抽象類和普通類一樣,有構造方法!!!

 

八、接口

    接口中所有方法都是抽象的  ----->  public abstract 

    接口中的變量都是  ------->   public static final

 

    一個類只能繼承一個類,但可以實現多個接口:public class SuperMan extends Person implements Run_able,Flyable { }

      解決了不能多繼承的問題!!

 

九、抽象類與接口的區別:

    抽象類是繼承,接口是實現;

    抽象類是 is a;接口是 like a;

    抽象類定義的是體系內的功能; 接口定義的是體系外的擴展功能!!

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM