1. 程式人生 > >java學習02(面向物件基礎)

java學習02(面向物件基礎)

1.物件可以簡單認識成一個記憶體塊,一個區域。

2.記憶體分為:棧記憶體,堆記憶體,方法區(堆的一部分,包括類的資訊,靜態方法,靜態變數,字串常量),這點對理解很多東西都很有用

3.包先簡單理解成一個資料夾(域名倒著寫)

4.面向物件:

繼承:

類只能單繼承,接口才可以多繼承

子類建構函式呼叫前預設會呼叫super(),呼叫父類的建構函式

子類重寫父類的方法遵循的原則:

    方法名,引數列表要相同
    返回值型別與申明異常型別,子類要小於父類
    訪問許可權子類大於等於父類

封裝:

原則:高內聚,低耦合(內部多複雜,外部使用很簡單方便)   
    訪問修飾符:default    protect    public    private
    default (即預設,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用物件:類、介面、變數、方法。
    private : 在同一類內可見。使用物件:變數、方法。 注意:不能修飾類(外部類)
    public : 對所有類可見。使用物件:類、介面、變數、方法
    protected : 對同一包內的類和所有子類可見。使用物件:變數、方法。 注意:不能修飾類(外部類)。

一些小原則:
    類的屬性:private(別人想訪問,給你set和get方法,方法裡可以寫業務邏輯,完成高內聚)
    方法還是public為主。

多型:
    1.方法的多型,不是屬性的多型
    2.多型的三個必要條件:繼承,方法重寫,父類引用指向子類物件(這個需要好好理解)


 向上自動轉型,向下強制轉型

final變數經常和static關鍵字一起使用,作為常量。下面是final變數的例子:
public static final String LOAN = "loan";

final也可以宣告方法。方法前面加上final關鍵字,代表這個方法不可以被子類的方法重寫。

如果你認為一個方法的功能已經足夠完整了,子類中不需要改變的話,你可以宣告此方法為final。

介面是比抽象類更抽象的東西,抽象類裡還有一些具體實現,介面從不實現。
  介面可以理解成兩個模組之間的通訊標準,
  介面和實現類之間不是父子關係,而是實現規則的關係,例如我有一個run的介面,cat實現了,就能跑,train實現了也能跑
  體現瞭如果你是,你就一定能
  抽象類體現了你有什麼,介面體現了你能幹什麼
  java中類只能單繼承,介面可以多繼承.

內部類:(開發時用的不多,面試前多看看)

陣列拷貝
    System.arraycopy(a, 1, b, 1, 3); a陣列從1下標開始,b從1開始接收,拷貝3個數據
    通過arraycopy實現自己拷貝自己從而刪除一個元素,插入一個元素(明天自己實現下,刪除與插入)
    強大又常用的兩個資料型別:String array,內部都有很多方法
    array的tostirng

二維陣列:每一個元素是陣列,int[][] a=new int[3][]    為什麼不指定第二個,是不確定的,未必是一樣的,
    二維陣列用的不多,後面一般用容器
    通過object二維陣列可以存一個類似於表格的混合資料。
    有需要定義一組常量時定義列舉,但是用處不大其實
---------------------
作者:彩筆梳子
來源:CSDN
原文:https://blog.csdn.net/qq_29637191/article/details/83789561
版權宣告:本文為博主原創文章,轉載請附上博文連結!