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