面向對象上(知識點1)

1. 類修飾符:public, final,abstract,類名每個單詞的首字母大寫

2. 成員變量的修飾符: public, protected, private, static, final (前三個修飾符只能出現其中之一),在定義成員變量的同時可以有默認值,成員變量名通常第一單詞首字母小寫,後面每個單詞的首字母大寫

3. 方法的修飾符:public ,protected,private,static,final,abstract(前三個修飾符只能出現其中之一,final和abstract只能出現其中之一),方法名通常用動詞開頭,比如doSomething

4. 構造器的修飾符:public ,private,protected(三者只能出現其一),構造器不能定義返回值類型,如果你使用了返回值類型,那麼這就不再是構造器方法,而是普通的方法。

科普:其實構造器是有返回值的,他返回的是該類的實例,但是不要在構造器裏顯示地使用return來返回當前類的對象,構造器的返回值是隱式的。

-----------------------------------------------------------------------------------------------------------------

5. 對象的this引用

兩層含義:

構造器——代表該構造器正在初始化的對象

方法中——代表正在調用該方法的對象

Person p=new Person();//產生了兩個東西,一個是p引用變量,一個是Person對象

科普:

  • 調用static修飾的成員時,如果省略了主調,默認使用該類作爲主調,static修飾的方法中不能使用this引用
  • 調用非static修飾的成員時,如果省略了主調,默認是this
  • 當方法中出現和成員變量同名的局部變量時,則必須使用this作爲前綴纔可以訪問方法的成員變量

-----------------------------------------------------------------------------------------------------------------

6.方法的參數傳遞機制:Java裏面都是值傳遞。swap實例的內存圖,詳細看書。

7.形參個數可變的方法:處理上當初數組進行處理

比較:public static void test(String... books);//test("a","b")或者test(new String[]{"a","b"})都是可以的

          public static void test (String[] books);//test(new String[]{"a","b"})

  • 個數可變的形參只能處於形參列表的最後,一個方法當中最多只能有一個個數可變的形參

-----------------------------------------------------------------------------------------------------------------

8.方法的重載:只表現在參數上

注意:不推薦重載形參個數可變的方法

例1:

public void test(String msg);//(1)
public void test(String... msg);//(2)

對於這樣的幾種調用:

test()//調用法2

test("a","b")//2

test("a")//1

test(new String[]{"a"})//2

例2:爲什麼不可以用返回值來重載

public int f();
public void f();
對於int res=f()可以知道調用的是第一個,但是對於f()就不知道具體應該調用哪一個了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章