java語(yǔ)法學(xué)習(xí)
對(duì)象和類
- 對(duì)象:對(duì)象是類的一個(gè)實(shí)例宠纯,有狀態(tài)和行為卸夕。例如,一條狗是一個(gè)對(duì)象婆瓜,它的狀態(tài)有:顏色快集、名字、品種廉白;行為有:搖尾巴个初、叫、吃等猴蹂。
- 類:類是一個(gè)模板院溺,它描述一類對(duì)象的行為和狀態(tài)。
Java中的對(duì)象
軟件對(duì)象也有狀態(tài)和行為磅轻。軟件對(duì)象的狀態(tài)就是屬性珍逸,行為通過(guò)方法體現(xiàn)逐虚。
在軟件開發(fā)中,方法操作對(duì)象內(nèi)部狀態(tài)的改變弄息,對(duì)象的相互調(diào)用也是通過(guò)方法來(lái)完成。
Java 中的類
類可以看成是創(chuàng)建Java對(duì)象的模板
public class Dog {
/** 屬性 */
String breed;
int size;
String colour;
int age;
/** 方法 */
void eat() {
}
void run() {
}
void sleep(){
}
void name(){
}
}
一個(gè)類中可以包含以下變量類型:
- 局部變量:在方法勤婚、構(gòu)造方法或者語(yǔ)句塊中定義的變量被稱為局部變量摹量。變量聲明和初始化都是在方法中,方法結(jié)束后馒胆,變量就會(huì)自動(dòng)銷毀缨称。
- 成員變量:成員變量是定義在類中,方法體之外的變量祝迂。這種變量在創(chuàng)建對(duì)象的時(shí)候?qū)嵗谰 3蓡T變量可以被類中方法、構(gòu)造方法和特定類的語(yǔ)句塊訪問(wèn)型雳。
- 類變量:類變量也聲明在類中当凡,方法體之外,但必須聲明為 static 類型纠俭。
構(gòu)造方法
在創(chuàng)建一個(gè)對(duì)象的時(shí)候沿量,至少要調(diào)用一個(gè)構(gòu)造方法。構(gòu)造方法的名稱必須與類同名冤荆,一個(gè)類可以有多個(gè)構(gòu)造方法朴则。
(例如:要?jiǎng)?chuàng)建一個(gè)dog1對(duì)象,必須使用和Dog類同名的方法Dog())
創(chuàng)建對(duì)象
對(duì)象是根據(jù)類創(chuàng)建的钓简。在Java中乌妒,使用關(guān)鍵字 new 來(lái)創(chuàng)建一個(gè)新的對(duì)象。創(chuàng)建對(duì)象需要以下三步:
- 聲明:聲明一個(gè)對(duì)象外邓,包括對(duì)象名稱和對(duì)象類型撤蚊。
- 實(shí)例化:使用關(guān)鍵字 new 來(lái)創(chuàng)建一個(gè)對(duì)象。
-
初始化:使用 new 創(chuàng)建對(duì)象時(shí)损话,會(huì)調(diào)用構(gòu)造方法初始化對(duì)象拴魄。
一個(gè)創(chuàng)建對(duì)象的例子:
public class Dog{
public Dog(String kind){
//這個(gè)構(gòu)造器僅有一個(gè)參數(shù):kind
System.out.println("狗的種類是 : " + kind );
}
public static void main(String[] args){
// 下面的語(yǔ)句將創(chuàng)建一個(gè)Dog對(duì)象
Dog dogKind = new Dog( "Teddy" );
}
}
訪問(wèn)實(shí)例變量和方法
下面的例子展示如何訪問(wèn)實(shí)例變量和調(diào)用成員方法:
public class Car{
String carColor;
public Car(String type){
// 這個(gè)構(gòu)造器僅有一個(gè)參數(shù):type
System.out.println("車的種類是 : " + type);
}
public void setAge( String color){
carColor = color;
}
public int getColor( ){
System.out.println("汽車的顏色為 : " +color );
return carColor;
}
public static void main(String[] args){
/* 創(chuàng)建對(duì)象 */
Car myCar = new Car( "Ferrari" );
/* 通過(guò)方法來(lái)設(shè)定color */
myCar.setColor( black );
/* 調(diào)用另一個(gè)方法獲取color */
myCar.getColor( );
/*你也可以像下面這樣訪問(wèn)成員變量 */
System.out.println("變量值 : " + myCar.carColor );
}
Java包
Java變量類型
局部變量
實(shí)例變量
類變量
Java修飾符
訪問(wèn)控制修飾符
Java中,可以使用訪問(wèn)控制符來(lái)保護(hù)對(duì)類席镀、變量匹中、方法和構(gòu)造方法的訪問(wèn)。Java 支持 4 種不同的訪問(wèn)權(quán)限豪诲。
default (即默認(rèn)顶捷,什么也不寫): 在同一包內(nèi)可見(jiàn),不使用任何修飾符屎篱。使用對(duì)象:類服赎、接口葵蒂、變量、方法重虑。
private : 在同一類內(nèi)可見(jiàn)践付。使用對(duì)象:變量、方法缺厉。 注意:不能修飾類(外部類)
public: 對(duì)所有類可見(jiàn)永高。使用對(duì)象:類、接口提针、變量命爬、方法
protected : 對(duì)同一包內(nèi)的類和所有子類可見(jiàn)。使用對(duì)象:變量辐脖、方法饲宛。 注意:不能修飾類(外部類)。
非訪問(wèn)控制修飾符
為了實(shí)現(xiàn)一些其他的功能嗜价,Java 也提供了許多非訪問(wèn)修飾符艇抠。
static 修飾符,用來(lái)修飾類方法和類變量久锥。
final 修飾符练链,用來(lái)修飾類、方法和變量奴拦,final 修飾的類不能夠被繼承媒鼓,修飾的方法不能被繼承類重新定義,修飾的變量為常量错妖,是不可修改的绿鸣。
abstract 修飾符,用來(lái)創(chuàng)建抽象類和抽象方法暂氯。
synchronized 和 volatile 修飾符潮模,主要用于線程的編程。
循環(huán)
增強(qiáng)for循環(huán)
聲明語(yǔ)句:聲明新的局部變量痴施,該變量的類型必須和數(shù)組元素的類型匹配擎厢。其作用域限定在循環(huán)語(yǔ)句塊,其值與此時(shí)數(shù)組元素的值相等辣吃。
表達(dá)式:表達(dá)式是要訪問(wèn)的數(shù)組名动遭,或者是返回值為數(shù)組的方法。
實(shí)例:
public class Test {
public static void main(String[] args){
int [] numbers = {11, 22, 33, 44, 55};
for(int x : numbers ){
System.out.print( x );
System.out.print(" ");
}
System.out.print("\n");
String [] Colors ={"blue", "red", "black", "white"};
for( String color : Colors ) {
System.out.print( color );
System.out.print(" ");
}
}
}
輸出結(jié)果:
11 22 33 44 55
blue red black white
break關(guān)鍵字
break 跳出最里層的循環(huán)神得,并且繼續(xù)執(zhí)行該循環(huán)下面的語(yǔ)句厘惦。
實(shí)例
public class Test {
public static void main(String[] args) {
int [] numbers = {11, 22, 33, 44, 55};
for(int x : numbers ) {
// x 等于 30 時(shí)跳出循環(huán)
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
輸出
11
22
continue關(guān)鍵字
讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代。
public class Test {
public static void main(String[] args) {
int [] numbers = {11, 22, 33, 44, 55};
for(int x : numbers ) {
if( x == 44) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
輸出
11
22
33
55
Java數(shù)組
聲明數(shù)組變量
dataType[] arrayRefVar; // 首選的方法
創(chuàng)建數(shù)組變量
Java語(yǔ)言使用new操作符來(lái)創(chuàng)建數(shù)組哩簿,語(yǔ)法如下:
arrayRefVar = new dataType[arraySize];
數(shù)組變量的聲明宵蕉,和創(chuàng)建數(shù)組可以用一條語(yǔ)句完成酝静,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
正則表達(dá)式
(見(jiàn):正則表達(dá)式 )
Java方法
方法
Java方法是語(yǔ)句的集合,它們?cè)谝黄饒?zhí)行一個(gè)功能羡玛。
- 方法是解決一類問(wèn)題的步驟的有序組合
- 方法包含于類或?qū)ο笾?/li>
- 方法在程序中被創(chuàng)建别智,在其他地方被引用
方法的定義
方法的調(diào)用
Java 支持兩種調(diào)用方法的方式,根據(jù)方法是否返回值來(lái)選擇稼稿。
當(dāng)程序調(diào)用一個(gè)方法時(shí)薄榛,程序的控制權(quán)交給了被調(diào)用的方法。當(dāng)被調(diào)用方法的返回語(yǔ)句執(zhí)行或者到達(dá)方法體閉括號(hào)時(shí)候交還控制權(quán)給程序渺杉。
- 當(dāng)方法返回一個(gè)值的時(shí)候蛇数,方法調(diào)用通常被當(dāng)做一個(gè)值挪钓。
- 如果方法返回值是void是越,方法調(diào)用一定是一條語(yǔ)句
方法的重載
構(gòu)造方法
- 當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí)候,構(gòu)造方法用來(lái)初始化該對(duì)象碌上。構(gòu)造方法和它所在類的名字相同倚评,但構(gòu)造方法沒(méi)有返回值。
- 通常會(huì)使用構(gòu)造方法給一個(gè)類的實(shí)例變量賦初值馏予,或者執(zhí)行其它必要的步驟來(lái)創(chuàng)建一個(gè)完整的對(duì)象天梧。
- 不管你是否自定義構(gòu)造方法,所有的類都有構(gòu)造方法霞丧,因?yàn)?Java 自動(dòng)提供了一個(gè)默認(rèn)構(gòu)造方法呢岗,默認(rèn)構(gòu)造方法的訪問(wèn)修飾符和類的訪問(wèn)修飾符相同。
- 一旦你定義了自己的構(gòu)造方法蛹尝,默認(rèn)構(gòu)造方法就會(huì)失效后豫。