java學習筆記(六)------變數與封裝(附加預習時在網上搜索的java訪問許可權)
1.成員變數 定義於類內且類方法外的變數,生存期為整個類,類似C語言的全域性變數 定義時一般加private,為類的私有,其他類沒有直接訪問許可權
2.區域性變數 一般定義於類方法內,生存期為整個方法,相當於C語言的區域性變數 定義時一般加public
3.類圖: _________________________________ | Person | | - name :String | | - age : int | |_______________________________ | | | | + tell() :void | | + getName() :String | | + setName(String n) :void | | + getAge() :int | | + setAge(int a) :void | --------------------------------- 其中:‘-’一般代表private,‘+’一般代表public。
4.匿名物件:只使用一次的物件,稱為匿名物件。 匿名物件只在堆記憶體中開闢空間,而不存在棧記憶體的引用。 適用於‘一次性消費品’ 比如:使用者互動。 程式碼: public class NonameDemo01 { public static void main(String args[]) { new Person("張三", 30).tell();// 匿名物件 }
}
5.java的訪問許可權?
Java中有四種訪問許可權, 其中三種有訪問許可權修飾符, 分別為private、public、protected,還有一種不帶任何修飾符(default)。
1). private: Java語言中對訪問許可權限制的最窄的修飾符,一般稱之為“私有的”。 被其修飾的屬性以及方法只能被該類的物件 訪問,其子類不能訪問,更不能允許跨包訪問。
2). default:即不加任何訪問修飾符,通常稱為“預設訪問許可權“或者“包訪問許可權”。 該模式下,只允許在同一個包中進行訪問。
3). protected: 介於public 和 private 之間的一種訪問修飾符,一般稱之為“保護訪問許可權”。 被其修飾的屬性以及方法只能被類本 身的方法及子類訪問,即使子類在不同的包中也可以訪問。
4). public: Java語言中訪問限制最寬的修飾符,一般稱之為“公共的”。 被其修飾的類、屬性以及方法不僅可以跨類訪問,而且 允許跨包訪問。
5).下面用表格來展示四種修飾符的訪問許可權範圍:
同一個類 同一個包 不同包的子類 不同包的非子類
public √ √ √ √
protected √ √ √
預設(default)√ √
private √
(PS:其中private和protected不能修飾一般的類,否則編譯就會報 “modifier private not allowed here”,如果是內部類就另當別論了)。
這裡給出一個確定訪問許可權的技巧:
確定內容提供者是誰 確定內容的訪問者是誰 比較內容提供者和內容訪問者在上邊表中符合的條件。
6.String比較
==與equals ==:比較的是記憶體地址; equals:比較的是字串內容