马士兵 java 学习笔记_马士兵java教程笔记1
---恢復(fù)內(nèi)容開(kāi)始---
前記
雖然已經(jīng)是個(gè)研究生了,但是會(huì)的東西還是特別的少 甚至連java都不能說(shuō)是很會(huì) 所以準(zhǔn)備從現(xiàn)在開(kāi)始能好好的學(xué)習(xí)java 變成java master
標(biāo)識(shí)符
標(biāo)識(shí)符是由字母、_、$或數(shù)字組成
標(biāo)識(shí)符應(yīng)以字母、下劃線、$開(kāi)頭(不能以數(shù)字開(kāi)頭)
java標(biāo)識(shí)符大小寫敏感,長(zhǎng)度無(wú)限制
java變量
變量本質(zhì)上是內(nèi)存中的一小塊區(qū)域,使用變量名來(lái)訪問(wèn)這塊區(qū)域。每個(gè)變量使用前必須要先申 ,然后必須進(jìn)行賦值,才能使用
double d1,d2,d3 = 0.123;//只有d3是0.123
方法的作用域:出了大括號(hào) 沒(méi)人認(rèn)識(shí)了
面向?qū)ο蟛糠?/p>
類和對(duì)象:類可以看成一類對(duì)象的模板,對(duì)象可以看成該類的一個(gè)具體實(shí)例
關(guān)聯(lián)關(guān)系:一個(gè)類的方法參數(shù)是另一個(gè)類的對(duì)象 (最弱的關(guān)系)
繼承關(guān)系:xx是一種xx(一般和特殊)
聚合關(guān)系:(整體和部分)聚集 、組合(更嚴(yán)格,密不可分)
實(shí)現(xiàn)關(guān)系:
應(yīng)該有 多少個(gè)類多少個(gè)對(duì)象-》這些類和對(duì)象里有多少屬性和方法-》類和類之間的關(guān)系
定義成員變量時(shí)可以對(duì)其初始化,如不對(duì)其進(jìn)行初始化,java使用默認(rèn)的值對(duì)其進(jìn)行初始化
java語(yǔ)言中除基本類型之外的類型都稱為引用類型,引用類型占兩塊內(nèi)存,一塊是地址,另一塊是new出來(lái)的東西 放在堆內(nèi)存里
如何在內(nèi)存中區(qū)分 類 和 對(duì)象:
類是靜態(tài)的概念,位于代碼區(qū)
對(duì)象是new出來(lái)的,位于堆內(nèi)存,類的每個(gè)成員變量在不同的對(duì)象中都有不同的值(除了靜態(tài)變量)
構(gòu)造方法
使用new+構(gòu)造方法 創(chuàng)建一個(gè)新對(duì)象;當(dāng)沒(méi)有制定構(gòu)造函數(shù)時(shí),編譯器為類自動(dòng)添加形如 ?類名(){}的構(gòu)造函數(shù)
this
在類的方法定義中使用的this關(guān)鍵字代表使用該方法的對(duì)象的引用
當(dāng)必須指出當(dāng)前使用方法的對(duì)象是誰(shuí)時(shí)要使用this
有時(shí)使用this可以處理方法中成員變量和參數(shù)重名的情況
this可以看作是一個(gè)變量,它的值是當(dāng)前對(duì)象的引用
static 關(guān)鍵字
在類中,用static聲明的成員變量為靜態(tài)成員變量,它為該類的公用變量,在第一次使用時(shí)被初始化,對(duì)于該類的所有對(duì)象來(lái)說(shuō),static成員共享
用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時(shí),不會(huì)將對(duì)象的引用傳遞給他,所以在static方法中不可訪問(wèn)非static的成員
靜態(tài)方法不再是針對(duì)某個(gè)對(duì)象調(diào)用,所以不能訪問(wèn)非靜態(tài)成員
可以通過(guò)對(duì)象引用或類名訪問(wèn)靜態(tài)成員
Java權(quán)限修飾符public protected private置于類的成員定義前,用來(lái)限定其他對(duì)象對(duì)該類對(duì)象成員的訪問(wèn)權(quán)限
修飾符
類內(nèi)部
同一個(gè)包
子類
任何地方
Private
y
Default
Y
y
Protected
Y
y
y
Public
Y
y
y
y
繼承能把父類所有的東西都繼承下來(lái),但是 private和default不能訪問(wèn)
對(duì)于class的權(quán)限修飾只可以用public和default
Public類可以在任意地方被訪問(wèn)
Default類只可以被同一個(gè)包內(nèi)部的類訪問(wèn)
類的繼承與權(quán)限控制
Java中使用extends關(guān)鍵字實(shí)現(xiàn)類的繼承機(jī)制 (xx是一種xx)
通過(guò)繼承,子類自動(dòng)擁有了基類的所有成員(成員變量和方法)
Java只支持單繼承,不允許多繼承(一個(gè)子類只能有一個(gè)基類 一個(gè)基類可以派出多個(gè)子類)
方法的重寫 overwrite
在子類中可以根據(jù)需要對(duì)從基類中繼承來(lái)的方法進(jìn)行重寫
重寫方法必須和被重寫方法具有相同方法名稱、參數(shù)列表和返回類型
重寫方法不能使用比被重寫方法更嚴(yán)格的訪問(wèn)權(quán)限
---恢復(fù)內(nèi)容結(jié)束---
前記
雖然已經(jīng)是個(gè)研究生了,但是會(huì)的東西還是特別的少 甚至連java都不能說(shuō)是很會(huì) 所以準(zhǔn)備從現(xiàn)在開(kāi)始能好好的學(xué)習(xí)java 變成java master
標(biāo)識(shí)符
標(biāo)識(shí)符是由字母、_、$或數(shù)字組成
標(biāo)識(shí)符應(yīng)以字母、下劃線、$開(kāi)頭(不能以數(shù)字開(kāi)頭)
java標(biāo)識(shí)符大小寫敏感,長(zhǎng)度無(wú)限制
java變量
變量本質(zhì)上是內(nèi)存中的一小塊區(qū)域,使用變量名來(lái)訪問(wèn)這塊區(qū)域。每個(gè)變量使用前必須要先申 ,然后必須進(jìn)行賦值,才能使用
double d1,d2,d3 = 0.123;//只有d3是0.123
方法的作用域:出了大括號(hào) 沒(méi)人認(rèn)識(shí)了
面向?qū)ο蟛糠?/p>
類和對(duì)象:類可以看成一類對(duì)象的模板,對(duì)象可以看成該類的一個(gè)具體實(shí)例
關(guān)聯(lián)關(guān)系:一個(gè)類的方法參數(shù)是另一個(gè)類的對(duì)象 (最弱的關(guān)系)
繼承關(guān)系:xx是一種xx(一般和特殊)
聚合關(guān)系:(整體和部分)聚集 、組合(更嚴(yán)格,密不可分)
實(shí)現(xiàn)關(guān)系:
應(yīng)該有 多少個(gè)類多少個(gè)對(duì)象-》這些類和對(duì)象里有多少屬性和方法-》類和類之間的關(guān)系
定義成員變量時(shí)可以對(duì)其初始化,如不對(duì)其進(jìn)行初始化,java使用默認(rèn)的值對(duì)其進(jìn)行初始化
Java權(quán)限修飾符public protected private置于類的成員定義前,用來(lái)限定其他對(duì)象對(duì)該類對(duì)象成員的訪問(wèn)權(quán)限
修飾符
類內(nèi)部
同一個(gè)包
子類
任何地方
Private
y
Default
Y
y
Protected
Y
y
y
Public
Y
y
y
y
繼承能把父類所有的東西都繼承下來(lái),但是 private和default不能訪問(wèn)
對(duì)于class的權(quán)限修飾只可以用public和default
Public類可以在任意地方被訪問(wèn)
Default類只可以被同一個(gè)包內(nèi)部的類訪問(wèn)
類的繼承與權(quán)限控制
Java中使用extends關(guān)鍵字實(shí)現(xiàn)類的繼承機(jī)制 (xx是一種xx)
通過(guò)繼承,子類自動(dòng)擁有了基類的所有成員(成員變量和方法)
Java只支持單繼承,不允許多繼承(一個(gè)子類只能有一個(gè)基類 一個(gè)基類可以派出多個(gè)子類)
方法的重寫 overwrite
在子類中可以根據(jù)需要對(duì)從基類中繼承來(lái)的方法進(jìn)行重寫
重寫方法必須和被重寫方法具有相同方法名稱、參數(shù)列表和返回類型
重寫方法不能使用比被重寫方法更嚴(yán)格的訪問(wèn)權(quán)限
java語(yǔ)言中除基本類型之外的類型都稱為引用類型,引用類型占兩塊內(nèi)存,一塊是地址,另一塊是new出來(lái)的東西 放在堆內(nèi)存里
如何在內(nèi)存中區(qū)分 類 和 對(duì)象:
類是靜態(tài)的概念,位于代碼區(qū)
對(duì)象是new出來(lái)的,位于堆內(nèi)存,類的每個(gè)成員變量在不同的對(duì)象中都有不同的值(除了靜態(tài)變量)
構(gòu)造方法
使用new+構(gòu)造方法 創(chuàng)建一個(gè)新對(duì)象;當(dāng)沒(méi)有制定構(gòu)造函數(shù)時(shí),編譯器為類自動(dòng)添加形如 ?類名(){}的構(gòu)造函數(shù)
this
在類的方法定義中使用的this關(guān)鍵字代表使用該方法的對(duì)象的引用
當(dāng)必須指出當(dāng)前使用方法的對(duì)象是誰(shuí)時(shí)要使用this
有時(shí)使用this可以處理方法中成員變量和參數(shù)重名的情況
this可以看作是一個(gè)變量,它的值是當(dāng)前對(duì)象的引用
static 關(guān)鍵字
在類中,用static聲明的成員變量為靜態(tài)成員變量,它為該類的公用變量,在第一次使用時(shí)被初始化,對(duì)于該類的所有對(duì)象來(lái)說(shuō),static成員共享
用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時(shí),不會(huì)將對(duì)象的引用傳遞給他,所以在static方法中不可訪問(wèn)非static的成員
靜態(tài)方法不再是針對(duì)某個(gè)對(duì)象調(diào)用,所以不能訪問(wèn)非靜態(tài)成員
可以通過(guò)對(duì)象引用或類名訪問(wèn)靜態(tài)成員
super
1)super(參數(shù)):調(diào)用基類中的某一個(gè)構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語(yǔ)句)
2)this(參數(shù)):調(diào)用本類中另一種形成的構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語(yǔ)句)
3)super: 它引用當(dāng)前對(duì)象的直接父類中的成員(用來(lái)訪問(wèn)直接父類中被隱藏的父類中成員數(shù)據(jù)或函數(shù),基類與派生類中有相同成員定義時(shí)如:super.變量名 super.成員函數(shù)據(jù)名(實(shí)參)
4)this:它代表當(dāng)前對(duì)象名(在程序中易產(chǎn)生二義性之處,應(yīng)使用this來(lái)指明當(dāng)前對(duì)象;如果函數(shù)的形參與類中的成員數(shù)據(jù)同名,這時(shí)需用this來(lái)指明成員變量名)
5)調(diào)用super()必須寫在子類構(gòu)造方法的第一行,否則編譯不通過(guò)。每個(gè)子類構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super(),如果父類沒(méi)有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。
6)super()和this()類似,區(qū)別是,super()從子類中調(diào)用父類的構(gòu)造方法,this()在同一類內(nèi)調(diào)用其它方法。
7)super()和this()均需放在構(gòu)造方法內(nèi)第一行。
8)盡管可以用this調(diào)用一個(gè)構(gòu)造器,但卻不能調(diào)用兩個(gè)。
9)this和super不能同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)里面,因?yàn)閠his必然會(huì)調(diào)用其它的構(gòu)造函數(shù),其它的構(gòu)造函數(shù)必然也會(huì)有super語(yǔ)句的存在,所以在同一個(gè)構(gòu)造函數(shù)里面有相同的語(yǔ)句,就失去了語(yǔ)句的意義,編譯器也不會(huì)通過(guò)。
10)this()和super()都指的是對(duì)象,所以,均不可以在static環(huán)境中使用。包括:static變量,static方法,static語(yǔ)句塊
11)從本質(zhì)上講,this是一個(gè)指向本對(duì)象的指針, 然而super是一個(gè)Java關(guān)鍵字。
Object
equals()
getclass()
hashcode() 返回hash編碼
toString() public String toString()方法,其返回值是String類型;在進(jìn)行String與其他類型數(shù)據(jù)的連接操作時(shí),將自動(dòng)調(diào)用該對(duì)象類的toString()方法;可以根據(jù)需要重寫toString()方法
equals
object類中定義有:
public boolean equals(Object obj)方法 提供定義對(duì)象是否相等的邏輯
Object的equals方法定義為:x.equals(y)當(dāng)x和y所引用的對(duì)象是同一類對(duì)象且屬性內(nèi)容相等時(shí),返回true否則返回false
J2SDK提供的一些類,如String,Date等,重寫了Object的equals方法
對(duì)象轉(zhuǎn)型(casting)
一個(gè)基類的引用類型變量可以指向其子類的對(duì)象
一個(gè)基類的引用不可以訪問(wèn)其子類對(duì)象新增加的成員(屬性和方法)
可以使用引用變量instanceof類名來(lái)判斷該引用型變量所指向的對(duì)象是否屬于該類或該類的子類
子類的對(duì)象可以當(dāng)作基類的對(duì)象來(lái)使用稱作向上轉(zhuǎn)型upcasting,反之成為向下 downcasting
動(dòng)態(tài)綁定和多態(tài)
動(dòng)態(tài)綁定是指 在執(zhí)行期間判斷所引用對(duì)象的實(shí)際類型,根據(jù)其實(shí)際的類型調(diào)用其相應(yīng)的方法
多態(tài)的必要條件:
要有繼承 要有重寫 父類引用指向子類對(duì)象
總結(jié)
以上是生活随笔為你收集整理的马士兵 java 学习笔记_马士兵java教程笔记1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 人机交互设备(HID)
- 下一篇: 可汗学院统计学笔记1