---恢復內容開始---java
前記函數
雖然已是個研究生了,可是會的東西仍是特別的少 甚至連java都不能說是很會 因此準備從如今開始能好好的學習java 變成java master學習
標識符this
java變量編碼
變量本質上是內存中的一小塊區域,使用變量名來訪問這塊區域。每一個變量使用前必需要先申 ,而後必須進行賦值,才能使用spa
double d1,d2,d3 = 0.123;//只有d3是0.123指針
方法的做用域:出了大括號 沒人認識了code
面向對象部分對象
類和對象:類能夠當作一類對象的模板,對象能夠當作該類的一個具體實例blog
關聯關係:一個類的方法參數是另外一個類的對象 (最弱的關係)
繼承關係:xx是一種xx(通常和特殊)
聚合關係:(總體和部分)彙集 、組合(更嚴格,密不可分)
實現關係:
應該有 多少個類多少個對象-》這些類和對象裏有多少屬性和方法-》類和類之間的關係
定義成員變量時能夠對其初始化,如不對其進行初始化,java使用默認的值對其進行初始化
java語言中除基本類型以外的類型都稱爲引用類型,引用類型佔兩塊內存,一塊是地址,另外一塊是new出來的東西 放在堆內存裏
如何在內存中區分 類 和 對象:
類是靜態的概念,位於代碼區
對象是new出來的,位於堆內存,類的每一個成員變量在不一樣的對象中都有不一樣的值(除了靜態變量)
構造方法
使用new+構造方法 建立一個新對象;當沒有制定構造函數時,編譯器爲類自動添加形如 類名(){}的構造函數
this
在類的方法定義中使用的this關鍵字表明使用該方法的對象的引用
當必須指出當前使用方法的對象是誰時要使用this
有時使用this能夠處理方法中成員變量和參數重名的狀況
this能夠看做是一個變量,它的值是當前對象的引用
static 關鍵字
在類中,用static聲明的成員變量爲靜態成員變量,它爲該類的公用變量,在第一次使用時被初始化,對於該類的全部對象來講,static成員共享
用static聲明的方法爲靜態方法,在調用該方法時,不會將對象的引用傳遞給他,因此在static方法中不可訪問非static的成員
靜態方法再也不是針對某個對象調用,因此不能訪問非靜態成員
能夠經過對象引用或類名訪問靜態成員
Java權限修飾符public protected private置於類的成員定義前,用來限定其餘對象對該類對象成員的訪問權限
修飾符 |
類內部 |
同一個包 |
子類 |
任何地方 |
Private |
y |
|
|
|
Default |
Y |
y |
|
|
Protected |
Y |
y |
y |
|
Public |
Y |
y |
y |
y |
繼承能把父類全部的東西都繼承下來,可是 private和default不能訪問
對於class的權限修飾只能夠用public和default
Public類能夠在任意地方被訪問
Default類只能夠被同一個包內部的類訪問
類的繼承與權限控制
Java中使用extends關鍵字實現類的繼承機制 (xx是一種xx)
經過繼承,子類自動擁有了基類的全部成員(成員變量和方法)
Java只支持單繼承,不容許多繼承(一個子類只能有一個基類 一個基類能夠派出多個子類)
方法的重寫 overwrite
在子類中能夠根據須要對從基類中繼承來的方法進行重寫
重寫方法必須和被重寫方法具備相同方法名稱、參數列表和返回類型
重寫方法不能使用比被重寫方法更嚴格的訪問權限
---恢復內容結束---
前記
雖然已是個研究生了,可是會的東西仍是特別的少 甚至連java都不能說是很會 因此準備從如今開始能好好的學習java 變成java master
標識符
java變量
變量本質上是內存中的一小塊區域,使用變量名來訪問這塊區域。每一個變量使用前必需要先申 ,而後必須進行賦值,才能使用
double d1,d2,d3 = 0.123;//只有d3是0.123
方法的做用域:出了大括號 沒人認識了
面向對象部分
類和對象:類能夠當作一類對象的模板,對象能夠當作該類的一個具體實例
關聯關係:一個類的方法參數是另外一個類的對象 (最弱的關係)
繼承關係:xx是一種xx(通常和特殊)
聚合關係:(總體和部分)彙集 、組合(更嚴格,密不可分)
實現關係:
應該有 多少個類多少個對象-》這些類和對象裏有多少屬性和方法-》類和類之間的關係
定義成員變量時能夠對其初始化,如不對其進行初始化,java使用默認的值對其進行初始化
Java權限修飾符public protected private置於類的成員定義前,用來限定其餘對象對該類對象成員的訪問權限
修飾符 |
類內部 |
同一個包 |
子類 |
任何地方 |
Private |
y |
|
|
|
Default |
Y |
y |
|
|
Protected |
Y |
y |
y |
|
Public |
Y |
y |
y |
y |
繼承能把父類全部的東西都繼承下來,可是 private和default不能訪問
對於class的權限修飾只能夠用public和default
Public類能夠在任意地方被訪問
Default類只能夠被同一個包內部的類訪問
類的繼承與權限控制
Java中使用extends關鍵字實現類的繼承機制 (xx是一種xx)
經過繼承,子類自動擁有了基類的全部成員(成員變量和方法)
Java只支持單繼承,不容許多繼承(一個子類只能有一個基類 一個基類能夠派出多個子類)
方法的重寫 overwrite
在子類中能夠根據須要對從基類中繼承來的方法進行重寫
重寫方法必須和被重寫方法具備相同方法名稱、參數列表和返回類型
重寫方法不能使用比被重寫方法更嚴格的訪問權限
java語言中除基本類型以外的類型都稱爲引用類型,引用類型佔兩塊內存,一塊是地址,另外一塊是new出來的東西 放在堆內存裏
如何在內存中區分 類 和 對象:
類是靜態的概念,位於代碼區
對象是new出來的,位於堆內存,類的每一個成員變量在不一樣的對象中都有不一樣的值(除了靜態變量)
構造方法
使用new+構造方法 建立一個新對象;當沒有制定構造函數時,編譯器爲類自動添加形如 類名(){}的構造函數
this
在類的方法定義中使用的this關鍵字表明使用該方法的對象的引用
當必須指出當前使用方法的對象是誰時要使用this
有時使用this能夠處理方法中成員變量和參數重名的狀況
this能夠看做是一個變量,它的值是當前對象的引用
static 關鍵字
在類中,用static聲明的成員變量爲靜態成員變量,它爲該類的公用變量,在第一次使用時被初始化,對於該類的全部對象來講,static成員共享
用static聲明的方法爲靜態方法,在調用該方法時,不會將對象的引用傳遞給他,因此在static方法中不可訪問非static的成員
靜態方法再也不是針對某個對象調用,因此不能訪問非靜態成員
能夠經過對象引用或類名訪問靜態成員
super
1)super(參數):調用基類中的某一個構造函數(應該爲構造函數中的第一條語句)
2)this(參數):調用本類中另外一種造成的構造函數(應該爲構造函數中的第一條語句)
3)super: 它引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數據或函數,基類與派生類中有相同成員定義時如:super.變量名 super.成員函數據名(實參)
4)this:它表明當前對象名(在程序中易產生二義性之處,應使用this來指明當前對象;若是函數的形參與類中的成員數據同名,這時需用this來指明成員變量名)
5)調用super()必須寫在子類構造方法的第一行,不然編譯不經過。每一個子類構造方法的第一條語句,都是隱含地調用super(),若是父類沒有這種形式的構造函數,那麼在編譯的時候就會報錯。
6)super()和this()相似,區別是,super()從子類中調用父類的構造方法,this()在同一類內調用其它方法。
7)super()和this()均需放在構造方法內第一行。
8)儘管能夠用this調用一個構造器,但卻不能調用兩個。
9)this和super不能同時出如今一個構造函數裏面,由於this必然會調用其它的構造函數,其它的構造函數必然也會有super語句的存在,因此在同一個構造函數裏面有相同的語句,就失去了語句的意義,編譯器也不會經過。
10)this()和super()都指的是對象,因此,均不能夠在static環境中使用。包括:static變量,static方法,static語句塊
11)從本質上講,this是一個指向本對象的指針, 然而super是一個Java關鍵字。
Object
equals()
getclass()
hashcode() 返回hash編碼
toString() public String toString()方法,其返回值是String類型;在進行String與其餘類型數據的鏈接操做時,將自動調用該對象類的toString()方法;能夠根據須要重寫toString()方法
equals
object類中定義有:
public boolean equals(Object obj)方法 提供定義對象是否相等的邏輯
Object的equals方法定義爲:x.equals(y)當x和y所引用的對象是同一類對象且屬性內容相等時,返回true不然返回false
J2SDK提供的一些類,如String,Date等,重寫了Object的equals方法
對象轉型(casting)
一個基類的引用類型變量能夠指向其子類的對象
一個基類的引用不能夠訪問其子類對象新增長的成員(屬性和方法)
可使用引用變量instanceof類名來判斷該引用型變量所指向的對象是否屬於該類或該類的子類
子類的對象能夠看成基類的對象來使用稱做向上轉型upcasting,反之成爲向下 downcasting
動態綁定和多態
動態綁定是指 在執行期間判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法
多態的必要條件:
要有繼承 要有重寫 父類引用指向子類對象