Java核心技術(shù)卷一 類與繼承

今日學(xué)習(xí)成果


1.控制可見性(訪問)的四個關(guān)鍵字:public、protected、缺?。ǎ?、prviate

2.初始化的三個方法

3.關(guān)于參數(shù)傳遞,java是值傳遞類型語言

4.關(guān)鍵字:static & final

5.關(guān)鍵字:super & self

6.重載(overload) & 重寫?(override)

7.多態(tài)和動態(tài)綁定

8.關(guān)鍵字:finalizer

9.反射的定義

10.main方法另外用處

1.訪問關(guān)鍵字:

首先private和protected都不能用于外部,只能用于內(nèi)部類

pubic 無論是對類,方法,還是成員變量使用,都表示可以任意訪問他所修飾的內(nèi)容

private所修飾的內(nèi)部類,方法和成員變量不能給任何人訪問,除了類內(nèi)部本身

protected所修飾的內(nèi)部類,方法和成員變量只能被它的子類以及子類的繼承鏈下訪問。

缺省所修飾的一般能被本包(package)內(nèi)和自身的類所訪問。


2.初始化的三個方法

第一種:直接在類的定義中把最初的成員變量值所設(shè)定:

class A{

int number = 0;

}

第二種:使用構(gòu)造函數(shù)類,在創(chuàng)建對象時自動完成

class student{

? private String name ;

? public student(String aName ){

??? self.name = aName;

}


}


第三種:使用代碼塊

class Teacher{

private Srting name;

{?? self.name = "defaule"; ? }

}

public Teacher( ){


}


}

這種情況最不推薦用,代碼塊的初始化在對象一創(chuàng)建時就會執(zhí)行,在構(gòu)造函數(shù)之前執(zhí)行。


3.關(guān)于參數(shù)傳遞,java是值傳遞類型語言


? 我們知道在方法當(dāng)中如果傳進基本類型(int,double等等)的變量賦予給形參時,在這個方法中改變形參的值時,外面原本的變量是不會受到改變的。而傳入對象時則不同,但是這并不能表示他傳的是對象的引用地址。

public void swap( Student a,Student b){

Student temp = a;

a=b;

b=temp;

}

? 經(jīng)過交換之后,其實外部賦予a,b形參的2個對象依然沒有變化。因為他們只是把對對象引用地址拷貝一份賦值給了a和b,所以函數(shù)執(zhí)行完之后a和b就會被釋放,但是外部的對象變量所指向的引用地址依然沒有變化


4.關(guān)鍵字:static & final

? 當(dāng)final賦予給成員變量時,意味著當(dāng)一次賦值之后就永遠不允許改變(如果第一次是被初始化的話也一樣)。若是用來修飾成員方法時,那么這個類在繼承之后就不允許被重寫(override)。如果是修飾類的話,則不允許被繼承,而且其中的成員方法被默認加上final修飾。只有成員變量除外,依舊可以改變。

? static用于成員變量時表明多個對象公共持有的一個狀態(tài)??梢员桓淖儯鞘谴硪粋€全體對象共同的一個狀態(tài)。若是修飾類中的方法時,則表明它是一個類方法。無論這個類有沒有創(chuàng)造對象都可以直接使用這個方法。它同樣無法修飾類,只能修飾內(nèi)部類。


5.關(guān)鍵字:super & this

? super并不能賦值給任何變量,只是用來提醒編譯器它所指向當(dāng)前類的超類對象的指針。并且若要使用時必須在第一行進行。而this可以進行變量賦值。this首先是一個對象,它可以代表調(diào)用這個函數(shù)的對象。


6.重載(overload) & 重寫?(override)

? overload表明同樣的函數(shù)名但是參數(shù)類型返回值等不同,在對象接收到一個調(diào)用函數(shù)時會根據(jù)返回值和參數(shù)的類型和位置,進行同名但是實現(xiàn)不同的函數(shù)使用

? override表示的是子類繼承超類的時候,對超類中的同名函數(shù)進行重新內(nèi)部實現(xiàn)。子類接下來調(diào)用這個函數(shù)時則會使用自己定義的而非繼承于超類中的


7.多態(tài)和動態(tài)綁定

? 多態(tài)以為著一個子類的對象,可以被它本類的變量所指向,同時也可以被它的超類中的變量所指向。

? 動態(tài)綁定意味著在運行時JVM會根據(jù)不同的對象執(zhí)行不同的方法。


8.關(guān)鍵字:finalizer

? 在被垃圾回收時會自動執(zhí)行這個函數(shù),但是不需要我們?nèi)ブ貙懰?,因為我們不知道什么時候會被回收


9.反射的定義

? 在運行時發(fā)現(xiàn)類的更多方法和屬性

10.main方法另外用處

? 用來進行單元測試。可以在一個類中添加main方法然后在里面進行需要你需要的單元測試的內(nèi)容,在執(zhí)行時只用執(zhí)行這個包含main函數(shù)的類就行了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評論 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,815評論 0 11
  • 一、繼承 當(dāng)兩個事物之間存在一定的所屬關(guān)系,即就像孩子從父母那里得到遺傳基因一樣,當(dāng)然,java要遺傳的更完美,這...
    玉圣閱讀 1,124評論 0 2
  • 1、.java源文件: 一個以”.java“為后綴的源文件:只能有一個與文件名相同的類,可以包含其他類。 2、類方...
    Hughman閱讀 1,745評論 1 9
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,220評論 0 4

友情鏈接更多精彩內(nèi)容