java語法學習
對象和類
- 對象:對象是類的一個實例,有狀態(tài)和行為。例如,一條狗是一個對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
- 類:類是一個模板,它描述一類對象的行為和狀態(tài)。
Java中的對象
軟件對象也有狀態(tài)和行為。軟件對象的狀態(tài)就是屬性,行為通過方法體現(xiàn)。
在軟件開發(fā)中,方法操作對象內(nèi)部狀態(tài)的改變,對象的相互調(diào)用也是通過方法來完成。
Java 中的類
類可以看成是創(chuàng)建Java對象的模板

public class Dog {
/** 屬性 */
String breed;
int size;
String colour;
int age;
/** 方法 */
void eat() {
}
void run() {
}
void sleep(){
}
void name(){
}
}
一個類中可以包含以下變量類型:
- 局部變量:在方法、構(gòu)造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會自動銷毀。
- 成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創(chuàng)建對象的時候?qū)嵗3蓡T變量可以被類中方法、構(gòu)造方法和特定類的語句塊訪問。
- 類變量:類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。
構(gòu)造方法
在創(chuàng)建一個對象的時候,至少要調(diào)用一個構(gòu)造方法。構(gòu)造方法的名稱必須與類同名,一個類可以有多個構(gòu)造方法。
(例如:要創(chuàng)建一個dog1對象,必須使用和Dog類同名的方法Dog())
創(chuàng)建對象
對象是根據(jù)類創(chuàng)建的。在Java中,使用關(guān)鍵字 new 來創(chuàng)建一個新的對象。創(chuàng)建對象需要以下三步:
- 聲明:聲明一個對象,包括對象名稱和對象類型。
- 實例化:使用關(guān)鍵字 new 來創(chuàng)建一個對象。
-
初始化:使用 new 創(chuàng)建對象時,會調(diào)用構(gòu)造方法初始化對象。
一個創(chuàng)建對象的例子:
public class Dog{
public Dog(String kind){
//這個構(gòu)造器僅有一個參數(shù):kind
System.out.println("狗的種類是 : " + kind );
}
public static void main(String[] args){
// 下面的語句將創(chuàng)建一個Dog對象
Dog dogKind = new Dog( "Teddy" );
}
}
訪問實例變量和方法
下面的例子展示如何訪問實例變量和調(diào)用成員方法:
public class Car{
String carColor;
public Car(String type){
// 這個構(gòu)造器僅有一個參數(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)建對象 */
Car myCar = new Car( "Ferrari" );
/* 通過方法來設定color */
myCar.setColor( black );
/* 調(diào)用另一個方法獲取color */
myCar.getColor( );
/*你也可以像下面這樣訪問成員變量 */
System.out.println("變量值 : " + myCar.carColor );
}
Java包
Java變量類型
局部變量
實例變量
類變量
Java修飾符
訪問控制修飾符
Java中,可以使用訪問控制符來保護對類、變量、方法和構(gòu)造方法的訪問。Java 支持 4 種不同的訪問權(quán)限。
default (即默認,什么也不寫): 在同一包內(nèi)可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
private : 在同一類內(nèi)可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
public: 對所有類可見。使用對象:類、接口、變量、方法
protected : 對同一包內(nèi)的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。
非訪問控制修飾符
為了實現(xiàn)一些其他的功能,Java 也提供了許多非訪問修飾符。
static 修飾符,用來修飾類方法和類變量。
final 修飾符,用來修飾類、方法和變量,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,是不可修改的。
abstract 修飾符,用來創(chuàng)建抽象類和抽象方法。
synchronized 和 volatile 修飾符,主要用于線程的編程。
循環(huán)
增強for循環(huán)
聲明語句:聲明新的局部變量,該變量的類型必須和數(shù)組元素的類型匹配。其作用域限定在循環(huá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)下面的語句。
實例
public class Test {
public static void main(String[] args) {
int [] numbers = {11, 22, 33, 44, 55};
for(int x : numbers ) {
// x 等于 30 時跳出循環(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語言使用new操作符來創(chuàng)建數(shù)組,語法如下:
arrayRefVar = new dataType[arraySize];
數(shù)組變量的聲明,和創(chuàng)建數(shù)組可以用一條語句完成,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
正則表達式
(見:正則表達式 )
Java方法
方法
Java方法是語句的集合,它們在一起執(zhí)行一個功能。
- 方法是解決一類問題的步驟的有序組合
- 方法包含于類或?qū)ο笾?/li>
- 方法在程序中被創(chuàng)建,在其他地方被引用
方法的定義

方法的調(diào)用
Java 支持兩種調(diào)用方法的方式,根據(jù)方法是否返回值來選擇。
當程序調(diào)用一個方法時,程序的控制權(quán)交給了被調(diào)用的方法。當被調(diào)用方法的返回語句執(zhí)行或者到達方法體閉括號時候交還控制權(quán)給程序。
- 當方法返回一個值的時候,方法調(diào)用通常被當做一個值。
- 如果方法返回值是void,方法調(diào)用一定是一條語句
方法的重載
構(gòu)造方法
- 當一個對象被創(chuàng)建時候,構(gòu)造方法用來初始化該對象。構(gòu)造方法和它所在類的名字相同,但構(gòu)造方法沒有返回值。
- 通常會使用構(gòu)造方法給一個類的實例變量賦初值,或者執(zhí)行其它必要的步驟來創(chuàng)建一個完整的對象。
- 不管你是否自定義構(gòu)造方法,所有的類都有構(gòu)造方法,因為 Java 自動提供了一個默認構(gòu)造方法,默認構(gòu)造方法的訪問修飾符和類的訪問修飾符相同。
- 一旦你定義了自己的構(gòu)造方法,默認構(gòu)造方法就會失效。