1. 程式人生 > >java學習筆記(六)------變數與封裝(附加預習時在網上搜索的java訪問許可權)

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:比較的是字串內容