【学习笔记】java核心技术学习笔记整理
《java核心技術》
?花了半天到一天又認真讀了一下java核心技術中的類部分,感覺最近編程時候好多迷迷糊糊,“這樣對不對呢,試一試。怎么不對呢”這類的迷糊問題原來都早有定義。
- ?main函數必須在主類中
- ?一個class就是一個機器,要使用其中的方法,需要構建這個類的實例。 一個class中如果定義構造器,構造器的類型是public 類名,類名就是原類名
- ??一個類可以有多個構造器,構造器沒有返回值。
- ?變量標記為private,代表只有該類的方法才能使用這些變量,別的類的不可以 ?方法標記為public,則別的類的方法都可以調用這個方法?
- ?訪問器方法:getname ?更改器方法:setname ?一般是:私有的數據域,共有的訪問器方法和更改器方法?? 、
- 靜態方法:private static的方法,不需要構建實例就可以直接飲用 ?
????????? ????? b,如果這個方法只需要訪問類的靜態域。
- 靜態域:屬于類的一個變量,private static int nextId,當將類做實例化后,會有多個對象,但是只有一個靜態域。
- 一個類中只能含有一個公有類,且名字和文件名一致。EmployTest.java中含有main方法,Employ.java中定義了Employ 的class,則編譯時候javac Employ*.java ,在java EmployTest,它會自動將Employ.java也生成class,再串聯執
- .每個類都可以有個main,用來測試這個類,做單元測試
- this可以調用隱式參數。如果沒有寫構造器,會有個默認構造器,將數值設置為0,將對象設置為null(注意:String類的name也會成為null,因為String是個類)
對象與類基礎
對象變量:Java的對象變量相當于C++的對象指針
構造體:1. 必須與類同名
?????????????????? 2.每個類至少有一個構造體,默認為無參構造體
?????????????????? 3.可以有0個或多個參數
?????????????????? 4.沒有返回值
?????????????????? 5.可以是private,protected或public,默認為public
?????????????????? 6.總是伴隨new關鍵字一同被使用
顯式參數:類方法括號中的參數
隱式參數:調用時出現在方法名前的類對象;方法定義中使用this關鍵字代表該隱式參數
基于類的訪問權限:某個類的方法可以訪問該類的任何一個實例的私有域
final實例域:將實例域定義為final,則在創建實例時必須初始化這樣的域;對于可變對象的變量,定義為final只表示該變量不能再引用別的對象,但當前對象的內部數據域仍可以修改。
靜態域:將域用static關鍵字修飾,表示該類的每一個實例中都有這個域的一份拷貝;靜態域屬于類,而不屬于任何獨立的實例,每次對其進行修改,則每個實例中的該域都會變成最新的值
常量:static + final
靜態方法:將類方法用static修飾,表示該方法不能向該類的實例實施操作;靜態方法沒有隱式參數(this);靜態方法只能訪問該類中的靜態域,不能訪問實例域;靜態方法通過類名直接調用,如Math.random();
?
方法參數
Java使用值調用
方法參數有兩個類型:
1.????????基本數據類型
2.????????對象引用
對于基本數據類型參數,方法并不能修改實參(因為值調用)
對于對象引用的參數,形參與實參指向的是同一個對象位置,所以方法能改變該對象內部的值,但不能使實參指向一個新的對象
?
對象構造
重載:一個方法的簽名包括方法名及其參數列表,不包括返回值和訪問權限;重載就是具有相同方法名、不同參數列表的一組方法,由編譯器根據參數列表挑選匹配的方法進行調用
默認域初始化:如果沒有在構造體中對域進行顯式賦值,那么默認地,數值域賦為0,布爾域賦為false,對象變量賦為null
默認構造體:如果在類定義中沒有顯式定義構造體,那么默認地,運行時系統會提供一個無參的空構造體
顯式域初始化:類定義中,在域定義時直接將初始值賦給該域
調用另一個構造體:在一個構造體中第一句使用this(…);可以調用另一個重載的構造體
初始化塊:類定義中直接包含代碼塊,用于給域賦上初始值
對象構造執行順序:包含靜態塊、域初始化語句、初始化塊、多個構造體
1.??????所有數據域都被初始化為0、false或null
2.??????按照類聲明中出現的次序依次執行所有靜態塊
3.??????按照類聲明中出現的次序依次執行所有域初始化語句和初始化塊
4.??????如果構造體第一行調用了第二個構造體,先執行第二個構造體的主體
5.??????執行本構造體的主體
對象析構:Java不支持對象析構,由垃圾回收器統一回收不再被需要的資源
?
轉載于:https://www.cnblogs.com/lijieqiong/p/4897838.html
總結
以上是生活随笔為你收集整理的【学习笔记】java核心技术学习笔记整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio apk 打
- 下一篇: 数据的输入输出