java的语法知识_Java语法知识点
特殊字符
\n 換行符
\t 制表符8個(gè)基本數(shù)據(jù)類(lèi)型byte 字節(jié)型 1
short 短整型 2
int 整型 4
long 長(zhǎng)整型 8
char 字符型 2
boolean 布爾型 1
float 浮點(diǎn)型 4
double 雙精度浮點(diǎn)型 8自動(dòng)轉(zhuǎn)換long a = 100; 100(int) ---- long強(qiáng)制轉(zhuǎn)換int i = 10;byte b = (byte)i;
強(qiáng)制轉(zhuǎn)換可能會(huì)丟失數(shù)據(jù)。
引用類(lèi)型(String 數(shù)組 。。。對(duì)象)三目運(yùn)算int a = 5>4?10:100;//a=10表達(dá)式?值1:值2
表達(dá)式為true 取值1否則取值2
If
if的 {} 可以省略,如果省略 ,if下的第一句是屬于if建議不省略if(條件){//代碼塊}
條件結(jié)果必須是boolean結(jié)果
結(jié)果為true,則執(zhí)行代碼塊
注意:js中if的條件 非數(shù)字0即真
5.?Switch
Switch表達(dá)式的類(lèi)型?
char?int?short?bety
break在switch的用法 case?后面
default 的位置?是否可以省略任何位置可以都可以?
可以
case 是否可以相同?
不能
switch和if的使用場(chǎng)合(區(qū)別)?
break:用在switch:跳出switch,防止穿透
用在循環(huán):跳出當(dāng)前循環(huán)
continue:結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)
return語(yǔ)句:return語(yǔ)句執(zhí)行后,該方法后面的代碼都不會(huì)再執(zhí)行。
6.?while 與 do while
while:先判斷條件再執(zhí)行。
do-while:先執(zhí)行一次在判斷。
聲明一下沒(méi)有while-do這個(gè)語(yǔ)法!!!
7.?代碼調(diào)試
打斷點(diǎn):斷點(diǎn)位置是即將要執(zhí)行的代碼。
F6 ?:單步執(zhí)行
8. 內(nèi)存
分堆和棧
9. 類(lèi)和對(duì)象
一. 類(lèi)即分類(lèi),抽象的,一種定義
二. 對(duì)象是客觀存在的,占據(jù)空間的
類(lèi)是一群具有相同特征(屬性)和行為(方法)的抽象定義
對(duì)象是類(lèi)的具體化(實(shí)例化new xxx)
10. 命名法
1. 帕斯卡命名法,每個(gè)單詞首字母大寫(xiě),java一般應(yīng)用在類(lèi)名
如: GirlFriend, MyHomeWorld, YourName ...
2. 駝峰命名法,第一個(gè)單詞首字母小寫(xiě),后面單詞每個(gè)首字母大寫(xiě)
如: girlFriend, myHomeWorld, yourName
java一般應(yīng)用在屬性和方法上
3. 匈牙利命名法,每個(gè)字母都大寫(xiě),單詞與單詞之間使用下劃線隔開(kāi)
如:GIRL_FRIEND, MY_HOME_WORLD, YOUR_NAME。
java一般用在靜態(tài)常量上,其他更多應(yīng)用在數(shù)據(jù)庫(kù)字段上。
11.成員變量和局部變量
實(shí)例方法:屬于對(duì)象的方法
不用static修飾,通過(guò)對(duì)象名.方法名()調(diào)用
類(lèi)方法 :屬于類(lèi)的方法
用 static修飾(也叫靜態(tài)方法),可以直接通過(guò)類(lèi)名.方法名() 調(diào)用,也可以
通過(guò)對(duì)象名.方法名() 調(diào)用
static : 靜態(tài)的,在加載類(lèi)時(shí)會(huì)加載
修飾成員(成員變量,成員方法)
修飾方法,該方法是靜態(tài)方法(類(lèi)方法) ,可以直接通過(guò)類(lèi)名調(diào)用
靜態(tài)方法里不能使用非靜態(tài)變量、
修飾變量,該變量是靜態(tài)的,所有對(duì)象共享(該變量只有一份)
成員變量和局部變量重名時(shí),優(yōu)先使用局部變量
成員變量有默認(rèn)值,局部變量沒(méi)有默認(rèn)值,局部變量使用前必須賦初始值
成員變量的作用域:在整個(gè)類(lèi)中有效
局部變量作用域:只在定義該變量的{}內(nèi)有效。
12.?super的用法:
(1)super.屬性 ??訪問(wèn)父類(lèi)的屬性
(2)super.方法(..) ?調(diào)用父類(lèi)的方法
(3)super(…) ??調(diào)用父類(lèi)的構(gòu)造方法
在子類(lèi)構(gòu)造中用super(..)調(diào)用父類(lèi)的構(gòu)造,super(..)必須放在第一句,所以,this(..)和super(..)不能在同一個(gè)構(gòu)造中出現(xiàn)。
在子類(lèi)的構(gòu)造中的第一句默認(rèn)有個(gè)隱式的super(),表示調(diào)用父類(lèi)的無(wú)參構(gòu)造,所以在new子類(lèi)對(duì)象時(shí),會(huì)先執(zhí)行父類(lèi)的構(gòu)造。
當(dāng)父類(lèi)沒(méi)有無(wú)參構(gòu)造時(shí),子類(lèi)必須添加構(gòu)造,并且在構(gòu)造的第一句調(diào)用父類(lèi)的有參構(gòu)造。
13.?繼承: ??extends(關(guān)鍵字)
子類(lèi)繼承父類(lèi)的屬性和方法
一個(gè)類(lèi)只能繼承一個(gè)父類(lèi)(單繼承)
子類(lèi)不能繼承父類(lèi)私有的成員
子類(lèi)不能繼承父類(lèi)的構(gòu)造
子類(lèi)與父類(lèi)不在同包,使用默認(rèn)訪問(wèn)權(quán)限的成員也不能被繼承
14.?訪問(wèn)控制修飾符:
本類(lèi)
同包其他類(lèi)
子孫類(lèi)
跨包
Public(公共的)
√
√
√
√
Protected(受保護(hù)的)
√
√
√
X
默認(rèn)的(friendly)
√
√
同包子孫類(lèi)可訪問(wèn)
X
Private(私有的)
√
X
X
X
繼承的好處
提高代碼的復(fù)用性
為多態(tài)提供基礎(chǔ)
15.?重寫(xiě)(覆蓋)
當(dāng)父類(lèi)的方法滿足不了子類(lèi)需求時(shí),子類(lèi)會(huì)重新寫(xiě)一個(gè)與父類(lèi)方法名,參數(shù)列表一樣的方法。
重寫(xiě)的具體規(guī)則:
方法名一樣,參數(shù)列表一樣,返回值類(lèi)型一樣(子類(lèi)方法的返回類(lèi)型可以是父類(lèi)方法返回類(lèi)型的子類(lèi)),修飾符不比父類(lèi)的修飾符嚴(yán)格(拋出的異常不比父類(lèi)的大)
16.?final的用法
修飾類(lèi) 不可被繼承
修飾方法 不可被重寫(xiě)
修飾變量 該變量是常量,不可改變
Final 修飾引用類(lèi)型時(shí),不能改變地址,但是可以改變地址上的內(nèi)容final A a = newA();
a= new A(); //XXX
a.num = 1000;//√√√
17.?抽象類(lèi),抽象方法
當(dāng)某個(gè)方法的方法體不清楚時(shí),干脆把該方法的方法體刪掉,加上abstract關(guān)鍵字修飾,該方法是一個(gè)抽象方法。該方法所在的類(lèi)應(yīng)該定義成抽象類(lèi)。
當(dāng)普通類(lèi)繼承抽象類(lèi)時(shí),普通類(lèi)必須重寫(xiě)抽象類(lèi)里的抽象方法。
抽象類(lèi)不能實(shí)例化(不能new 對(duì)象)
抽象類(lèi)有構(gòu)造方法
抽象類(lèi)有普通的成員變量
抽象類(lèi)中可以有普通方法和抽象方法。
18.?多態(tài)
一種事物的多種表現(xiàn)形態(tài)。
狗可以叫做動(dòng)物:
Animal ani = new Dog();//父類(lèi)引用指向子類(lèi)對(duì)象
ani是一個(gè)引用(地址) ,引用是父類(lèi)類(lèi)型
new Dog() new的是子類(lèi)的對(duì)象
狗也可以叫做狗:
Dog dog = new Dog()
多態(tài)時(shí)
普通成員變量: 編譯期和運(yùn)行期都看=左邊的引用是什么類(lèi)型
左邊的引用如果是父類(lèi)類(lèi)型,所訪問(wèn)的變量是父類(lèi)的
左邊的引用如果是子類(lèi)類(lèi)型,所訪問(wèn)的變量是子類(lèi)的
普通成員方法: 運(yùn)行期看=右邊new的是什么類(lèi)型的對(duì)象
如果new的是哪個(gè)類(lèi)的對(duì)象,調(diào)用的就是哪個(gè)類(lèi)的方法
編譯期看左邊。
靜態(tài)方法:編譯期運(yùn)行期都看=左邊
左邊是什么類(lèi)型,調(diào)用的就是該類(lèi)的方法。
靜態(tài)成員變量:編譯期和運(yùn)行期都看=左邊
19.?轉(zhuǎn)型:
Dog dog1 = (Dog)pet;//向下轉(zhuǎn)型(將父類(lèi)引用轉(zhuǎn)化為子類(lèi)的引用)
//編譯正確,執(zhí)行拋出異常ClassCastException
// Penguin penguin = (Penguin)pet;//
//編譯正確,執(zhí)行拋出異常ClassCastException
Fa fa = new Fa();
Son son = (Son)fa;
多態(tài)的好處:
提高程序的擴(kuò)展性,可維護(hù)性。
多態(tài)的表現(xiàn)形式:
父類(lèi)引用指向子類(lèi)對(duì)象,重寫(xiě),重載,可變長(zhǎng)參數(shù)的方法
public void show(Object... nums){
for (Object num : nums) {
System.out.println(num);
}
}
Object:所有類(lèi)的根類(lèi),所有的類(lèi)直接或間接繼承Object類(lèi)
20.?接口
接口:特殊的抽象類(lèi),也可理解為一種能力,一種規(guī)范(約束)
一種規(guī)范(約束):約束所有的實(shí)現(xiàn)類(lèi)都必須實(shí)現(xiàn)接口中的抽象方法
一種能力:想要具備某種能力,只要實(shí)現(xiàn)有該能力的接口。/*** 接口中的變量都是靜態(tài)常量
* 在接口中定義一個(gè)變量,默認(rèn)會(huì)加上public final static
* 接口中的方法都是抽象方法(jdk1.8之前)
* 定義的方法默認(rèn)會(huì)加上public abstract
* 類(lèi)和類(lèi)可以是繼承extends關(guān)系,單繼承
* 類(lèi)和接口 是類(lèi) 實(shí)現(xiàn)implements接口,可多實(shí)現(xiàn)
* 接口和接口 接口繼承接口,并且可以多繼承接口。
*
* 普通類(lèi)實(shí)現(xiàn)接口必須實(shí)現(xiàn)接口中的所有抽象方法
* 抽象類(lèi)實(shí)現(xiàn)接口可以不用實(shí)現(xiàn)接口中的方法
*
* jdk1.8及以上
* 接口中可以有static 或default修飾的普通方法*/
總結(jié)
以上是生活随笔為你收集整理的java的语法知识_Java语法知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java alder32_Java里面计
- 下一篇: java数组螺旋矩阵从上到下_Java-