1. Java 程式的構成
一個Java程式可以認為是一系列物件的集合,而這些物件透過呼叫彼此的方法來協同工作。
物件(object):物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。類(class):類是一個模板,它描述一類物件的行為和狀態。方法(method):方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。例項變數:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定。還記得上一節課的 Hello World 嗎?這一節課,我們還是先來看一看這一段程式碼。在這裡的 Hello World 中只涉及了類、方法和語句。該 Java 程式定義了一個類 HelloWorld,該類的名字與 .java 檔案的名字相同,其中的 main 方法是程式的入口,而“列印”這個功能是由一個語句實現,即:System.out.println("Hello World!");。
下面兩點有關 Java 的書寫方式:
Java 中的語句要以;結尾 。用花括號{}來整合語句,形成程式塊。透過程式塊,我們可以知道程式的不同部分的範圍,比如類從哪裡開始,到哪裡結束。2. Java 關鍵字
Java 的關鍵字對 java 的編譯器有特殊的意義,他們用來表示一種資料型別,或者表示程式的結構等,關鍵字不能用作變數名、方法名、類名、包名。
Java 關鍵字有如下表所列,目前共有50個Java關鍵字,其中,"const"和"goto"這兩個關鍵字在Java語言中並沒有具體含義。同學們先有個印象,具體含義我們將在後續的內容中詳細講解:
3. Java 識別符號Java 語言中,類、變數、常量、方法都需要名字,我們統統稱之為 Java 識別符號.
識別符號是用來給類、物件、方法、變數、介面和自定義資料型別命名的。
關於 Java 識別符號,有幾點需要注意的:
Java 識別符號由數字,字母A-Z或者a-z和下劃線_,美元符號$組成。所有的識別符號都應該以字母A-Z或者a-z,美元符$、或者下劃線_開始,首位不能是數字。關鍵字不能用作識別符號。在 Java 中是區分大小寫的。在 Java 中,還有一些約定俗成的命名規則:
1.類和介面名。每個字的首字母大寫,含有大小寫。例如,MyClass, HelloWorld,Time 等。
2.方法名。首字元小寫,其餘的首字母大寫,含大小寫。儘量少用下劃線。例如,myName,setTime 等。這種命名方法叫做駝峰式命名。
3.常量名。基本資料型別的常量名使用全部大寫字母,字與字之間用下劃線分隔。物件常量可大小混寫。例如,SIZE_NAME。
4.變數名。可大小寫混寫,首字元小寫,字間分隔符用字的首字母大寫。不用下劃線,少用美元符號。給變數命名是儘量做到見名知意。
5.命名過程中儘量做到見名知意,方便後期檢視和修改程式碼,也方便其他人員的閱讀。
4. 變數和常量在程式中存在大量的資料來代表程式的狀態,其中有些資料在程式的執行過程中值會發生改變,有些資料在程式執行過程中值不能發生改變,這些資料在程式中分別被叫做變數和常量。
4.1 變數變數代表程式的狀態。程式透過改變變數的值來改變整個程式的狀態。為了方便地引用變數的值,在程式中需要為變數設定一個名稱,這就是變數名。
由於Java語言是一種強型別的語言,所以變數在使用以前必須首先宣告,在程式中宣告變數的語法格式如下:
資料型別 變數名稱;
例如:
在該語法格式中,資料型別可以是Java語言中任意的型別,如int,下面會介紹資料型別的知識。變數名稱是該變數的識別符號,需要符合識別符號的命名規則,資料型別和變數名稱之間使用空格進行間隔,空格的個數不限,但是至少需要1個。語句使用;作為結束。
變數(variable)佔據一定的記憶體空間。不同型別的變數佔據不同的大小。Java 中的變數型別如下:
在 Java 中,變數需要先宣告(declare)才能使用。在宣告中,說明變數的型別,賦予變數以特別名字,以便在後面的程式中呼叫它。你可以在程式中的任意位置宣告變數。 比如:
上面 x 是變數名。可以在宣告變數的同時,給變數賦值,比如 int x = 8;。
Java中主要有如下幾種型別的變數:
區域性變數類變數(靜態變數)成員變數(非靜態變數)變數的概念實際上來自於面向過程的程式語言。在Java中,所謂的變數實際上是基本型別 (premitive type)。我們將在類的講解中更多深入。
4.2 常量常量代表程式執行過程中不能改變的值。我們也可以把它們理解為特殊的變數,只是它們在程式的執行過程中是不允許改變的。常量的值是不能被修改的。
常量的語法格式和變數類似,只需要在變數的語法格式前面新增關鍵字final即可。在Java編碼規範中,要求常量名必須大寫。
常量的語法格式如下:
final 資料型別 常量名稱 = 值;final 資料型別 常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n;例如:
在Java語法中,常量也可以首先宣告,然後再進行賦值,但是隻能賦值一次,示例程式碼如下:
final 用於宣告屬性(常量),方法和類,分別表示屬性一旦被分配記憶體空間就必須初始化, 它的含義是“這是無法改變的”或者“終態的”。
5 註釋在4.1節的程式還可以看到,Java 中,可用//引領註釋。
說到註釋,在我們寫程式碼的時候,為了方便理解和閱讀,往往會在相關的程式碼附近新增說明文字,也就是我們的註釋。註釋是為了防止編譯器在編譯的時候將我們的註釋也一併編譯了,導致程式出錯,所以在編譯的時候,編譯器會自動跳過我們編寫的註釋。
一般在 Java 裡有三種註釋:
行註釋//:只註釋一行段註釋/*...*/:註釋若干行文件註釋/**...*/:註釋若干行,並寫入 javadoc文件6 自動型別轉換和強制型別轉換在上面的程式中,我們定義了三個變數:avg1、rise、avg2,其中avg1是double型別的變數,而rise是int型別的變數,兩種型別不一樣的變數加在了一起變成了什麼型別了呢?沒錯,在運算過程中rise被自動轉換成了double型別的變數。
在Java程式中,不同的資料型別有些時候需要進行相互轉換。資料型別轉換就分為了自動型別轉換和強制型別轉換
自動型別轉換是在程式執行過程中,不需要我們去特殊宣告或者操作,變數由於需要而自動轉換成了合適的資料型別。
自動型別轉換需要滿足下面的兩個條件:
目標型別與原型別相容目標型別的位元組數大於或等於原型別位元組數基本資料型別中,布林型別boolean佔有一個位元組,由於其本身所程式碼的特殊含義,boolean型別與其他基本型別不能進行型別的轉換(既不能進行自動型別的提升,也不能強制型別轉換), 否則,將編譯出錯。