您好,登錄后才能下訂單哦!
Java基礎中從HelloWorld到面向對象的案例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
先來看一個HelloWorld.java程序。這個程序在屏幕上打印出一串字符"Hello World!":
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
程序中包括Java的一些基本特征:
類(class):
上面程序定義了一個類HelloWorld,該類的名字與.java文件的名字相同。
方法(method):
類的內部定義了該類的一個方法main。
語句(statement):
真正的“打印”功能由一個語句實現,即: System.out.println("Hello World!");
下面兩點有關Java的書寫方式:
Java中的語句要以;結尾 (與C/C++相同)。
用花括號{}來整合語句,形成程序塊。通過程序塊,我們可以知道程序的不同部分的范圍,比如類從哪里開始,到哪里結束
Java程序要經過編譯器編譯才能執行。在Linux或Mac下,可以下載安裝Java JDK。
使用javac來編譯。在命令行中輸入下面語句編譯
:
$javac HelloWorld.java
當前路徑下,將有一個名為HelloWorld.class的文件生成。
使用java命令來運行
。Java會搜尋該類中的main方法,并執行。
$java HelloWorld
計算機語言通常需要在內存中存放數據,比如C語言中的變量,Java也有類似的變量。Java和C語言都是靜態類型的語言。在使用變量之前,要聲明變量的類型。
變量(variable)
占據一定的內存空間。不同類型的變量占據不同的大小。Java中的變量類型如下:
在Java中,變量需要先聲明(declare)
才能使用。在聲明中,我說明變量的類型,賦予變量以特別名字,以便在后面的程序中調用它。你可以在程序中的任意位置聲明變量。 比如:
public class Test { public static void main(String[] args) { System.out.println("Declare in the middle:"); int a; a = 5; System.out.println(a); // print an integer } }
上面a是變量名。可以在聲明變量的同時,給變量賦值,比如 int a = 5;
*** “變量”的概念實際上來自于面向過程的編程語言。在Java中,所謂的變量實際上是“基本類型” (premitive type)。我們將在類的講解中更多深入。
上面的程序還可以看到,Java中,可用//
引領注釋。
Java中有數組(array)
。數組包含相同類型的多個數據。我用下面方法來聲明一個整數數組:
int[] a;
在聲明數組時,數組所需的空間并沒有真正分配給數組。我可以在聲明的同時,用new來創建數組所需空間:
int[] a = new int[100];
這里創建了可以容納100個整數的數組。相應的內存分配也完成了。
我還可以在聲明的同時,給數組賦值。數組的大小也同時確定。
int[] a = new int[] {1, 3, 5, 7, 9};
使用int[i]
來調用數組的i下標
元素。i從0開始。
其他類型的數組與整數數組相似。
表達式
是變量、常量和運算符的組合,它表示一個數據。1 + 1是常見的表達式。再比如:
public class Test { public static void main(String[] args) { System.out.println("Declare in the middle:"); int a; a = 5 + 1; System.out.println(a); // print an integer } }
上面的5 + 1也是一個表達式,等于6。
數學運算,結果為一個數值
1 + 2 加法
4 - 3.4 減法
7 * 1.5 乘法
3.5 / 7 除法
7 % 2 求余數
判斷表達式是否成立。即一個boolean值,真假
a > 4.2 大于
3.4 >= b 大于等于
1.5 < 9 小于
6 <= 1 小于等于
2 == 2 等于
2 != 2 不等于
兩個boolean值的與、或、非的邏輯關系
true && false and
(3 > 1) || (2 == 1) or
!true not
對整數的二進制形式逐位進行邏輯運算,得到一個整數
& and
| or
^ xor
~ not
5 << 3 0b101 left shift 3 bits
6 >> 1 0b110 right shift 1 bit
還有下列在C中常見的運算符,我會在用到的時候進一步解釋:
m++ 變量m加1
n-- 變量n減1
condition ? x1 : x2 condition為一個boolean值。根據condition,取x1或x2的值
Java中控制結構(control flow)的語法與C類似。它們都使用{}來表達隸屬關系。
if (conditon1) { statements; ... } else if (condition2) { statements; ... } else { statements; ... }
上面的condition是一個表示真假值的表達式。statements;是語句。
練習 寫一個Java程序,判斷2013年是否是閏年。
while (condition) { statements; }
do { statements; } while(condition); // 注意結尾的;
for (initial; condition; update) { statements; }
在循環中,可以使用
break; // 跳出循環 continue; // 直接進入下一環
練習 寫一個Java程序,計算從1加2,加3…… 一直加到999的總和
switch(expression) { case 1: statements; break; case 2: statements; break; ... default: statements; break; }
“對象”是計算機抽象世界的一種方式。“面向對象”可以用很多方式表達。下面是一種并不精確,但比較直觀的理解方式:
世界上的每一個事物都可以稱為一個對象(object),
比如張三。對象有身份(Identity),狀態(State
)和行為(Behavior)。
對象的狀態由數據成員(data member
)表示。數據成員又被稱作域(field)。
我們用其他對象作為該對象的數據成員。比如一個表示身高的整數,比如一個鼻子。
對象的行為由成員方法(member method)
表示。我們簡稱為方法(method)。
一個對象可以有多個方法,比如呼吸,睡覺。
對象可以歸類(class),
或者說歸為同一類型(type)。
同一類型的對象有相同的方法,有同類型的數據成員。某個類型的一個對象被稱為該類型的一個實例(instance)。
定義類
的語法:
class ClassName { member1; member2; ... }
我們定義一個human類:
class Human { void breath() { System.out.println("hu...hu..."); } int height; }
在{}范圍內,Human類有兩個成員: 一個數據成員height,一個方法breath()。
數據成員height是整數類型,可以用于存儲一個整數。
方法代表了對象所能進行的動作,也就是計算機所能進行的操作。方法可以接受參數,并能返回值。在breath()的定義中,breath后面的()中為參數列表。由于參數列表為空,所以breath()不接受參數。在breath()之前的void為返回值的類型,說明breath不返回值。
(方法與面向過程語言中的函數類似)
現在,我們創建對象aPerson,并調用對象的方法breath:
public class Test { public static void main(String[] args) { Human aPerson = new Human(); aPerson.breath(); System.out.println(aPerson.height); } } class Human { void breath() { System.out.println("hu...hu..."); } int height; }
在main方法中,使用new關鍵字創建對象。即使是來自同一個類的對象,各個對象占據的內存也不相同,即對象的身份也不同。
Human aPerson聲明了aPerson對象屬于Human類,即說明了對象的類型。
對象建立后,我們可以用 對象.數據成員
來引用數據成員,使用 對象.方法()
的方式來調用方法。正如我們在后面打印aPerson.height。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。