做者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!html
Java是徹底面向對象的語言。Java經過虛擬機的運行機制,實現「跨平臺」的理念。我在這裏想要呈現一個適合初學者的教程,但願對你們有用。java
先來看一個HelloWorld.java程序。這個程序在屏幕上打印出一串字符"Hello World!":express
1 public class HelloWorld 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("Hello World!"); 6 } 7 }
程序中包括Java的一些基本特徵:編程
下面兩點有關Java的書寫方式:數組
Java程序要通過編譯器編譯才能執行。在Linux或Mac下,能夠下載安裝Java JDK。oracle
使用javac來編譯。在命令行中輸入下面語句編譯:jsp
$javac HelloWorld.java
當前路徑下,將有一個名爲HelloWorld.class的文件生成。編程語言
使用java命令來運行。Java會搜尋該類中的main方法,並執行。函數
$java HelloWorld
計算機語言一般須要在內存中存放數據,好比C語言中的變量,Java也有相似的變量。Java和C語言都是靜態類型的語言。在使用變量以前,要聲明變量的類型。spa
變量(variable)佔據必定的內存空間。不一樣類型的變量佔據不一樣的大小。Java中的變量類型以下:
存儲大小 例值 註釋
byte 1byte 3 字節
int 4bytes 3 整數
short 2bytes 3 短整數
long 8bytes 3 長整數
float 4bytes 1.2 單精度浮點數
double 8bytes 1.2 雙精度浮點數
char 2bytes 'a' 字符
boolean 1bit true 布爾值
在Java中,變量須要先聲明(declare)才能使用。在聲明中,我說明變量的類型,賦予變量以特別名字,以便在後面的程序中調用它。你能夠在程序中的任意位置聲明變量。 好比:
1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("Declare in the middle:"); 6 int a; 7 a = 5; 8 System.out.println(a); // print an integer 9 } 10 }
上面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是常見的表達式。再好比:
1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("Declare in the middle:"); 6 int a; 7 a = 5 + 1; 8 System.out.println(a); // print an integer 9 } 10 }
上面的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)
1 if (conditon1) { 2 statements; 3 ... 4 } 5 else if (condition2) { 6 statements; 7 ... 8 } 9 else { 10 statements; 11 ... 12 }
上面的condition是一個表示真假值的表達式。statements;是語句。
練習 寫一個Java程序,判斷2013年是不是閏年。
循環 (while)
while (condition) {
statements;
}
循環 (do... while)
do {
statements;
} while(condition); // 注意結尾的;
循環 (for)
for (initial; condition; update) {
statements;
}
跳過或跳出循環
在循環中,可使用
break; // 跳出循環
continue; // 直接進入下一環
練習 寫一個Java程序,計算從1加2,加3…… 一直加到999的總和
選擇 (switch)
switch(expression) {
case 1:
statements;
break;
case 2:
statements;
break;
...
default:
statements;
break;
}
「對象」是計算機抽象世界的一種方式。「面向對象」能夠用不少方式表達。下面是一種並不精確,但比較直觀的理解方式:
類與對象
定義類的語法:
class ClassName
{
member1;
member2;
...
}
咱們定義一個human類:
1 class Human 2 { 3 void breath() 4 { 5 System.out.println("hu...hu..."); 6 } 7 8 int height; 9 }
在{}範圍內,Human類有兩個成員: 一個數據成員height,一個方法breath()。
(方法與面向過程語言中的函數相似)
如今,咱們建立對象aPerson,並調用對象的方法breath:
1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 Human aPerson = new Human(); 6 aPerson.breath(); 7 System.out.println(aPerson.height); 8 } 9 10 } 11 12 class Human 13 { 14 void breath() 15 { 16 System.out.println("hu...hu..."); 17 } 18 19 int height; 20 }
在main方法中,使用new關鍵字建立對象。即便是來自同一個類的對象,各個對象佔據的內存也不相同,即對象的身份也不一樣。
Human aPerson聲明瞭aPerson對象屬於Human類,即說明了對象的類型。
對象創建後,咱們能夠用 對象.數據成員 來引用數據成員,使用 對象.方法() 的方式來調用方法。正如咱們在後面打印aPerson.height。
Java的許多語法形式與C/C++相似,但在細節和具體實現上又有差異,須要當心。
對象,類
對象: 方法,域(數據成員)
Java是徹底面向對象的語言。
歡迎繼續閱讀「Java快速教程」系列文章