初學者快速學習Java
2- 創建Java工程
1- 介紹
首先,學習Java需要什麼,先閱這裏,這裏列出一些開發工具和環境配置:
2- 創建一個工程
首先,我們使用Eclipse(注意就是Eclise,如果沒有安裝好,選安裝好再接著下一個步驟)創建一個新的專案,這將在本教學中使用。

輸入專案名稱:
- BasicJavaTutorial

專案已創建:

注:為了能夠在除英語工程其他語言可以使用,應該切換到UTF-8編碼。
右鍵單擊該專案並選擇屬性:




3- 原始數據類型
JAVA中有八種基本類型
- 對於整數有4種類型:byte, short, int, long
- 實數類型: float, double
- 字元類型: char
- 布爾: 返回 true 或 false 值 (true 或 false)
類型 | 描述 | bit | 最小值 | 最大值 |
byte |
8位整數
|
8 | -128 (-2^7) | 127 (2^7-1) |
short |
16位整數
|
16 | -32,768 (-2^15) | 32,767 (2^15 -1) |
int |
32位整數
|
32 |
- 2,147,483,648 (-2^31) |
2,147,483,647 (2^31 -1) |
long |
64位整數
|
64 |
-9,223,372,036,854,775,808 (-2^63) |
9,223,372,036,854,775,807 (2^63 -1) |
float |
32位實數
|
32 | -3.4028235 x 10^38 | 3.4028235 x 10^38 |
double |
64位實數
|
64 | -1.7976931348623157 x 10^308 | 1.7976931348623157 x 10^308 |
boolean |
邏輯類型
|
|
false | true |
char |
字元
|
16 | '\u0000' (0) | '\uffff' (65,535). |
4- 變數
右鍵點擊 src 並選擇 "New/Package":


新建命名包是:
-
com.zaixian.tutorial.javabasic.variable
輸入類的名稱:
-
VariableExample1
創建 VariableExample1 類如下:

- VariableExample1.java
package com.zaixian.tutorial.javabasic.variable; public class VariableExample1 { public static void main(String[] args) { // Declare a variable of type int (integer 32-bit) int firstNumber; // Assigning values to firstNumber firstNumber = 10; System.out.println("First Number =" + firstNumber); // Declare a 32-bit real number (float) // This number is assigned a value of 10.2 float secondNumber = 10.2f; System.out.println("Second Number =" + secondNumber); // Declare a 64-bit real numbers // This number is assigned a value of 10.2 // character d at the end to tell with Java this is the type double. // Distinguished from a float. double thirdNumber = 10.2d; System.out.println("Third Number =" + thirdNumber); // Declare a character char ch = 'a'; System.out.println("Char ch= " + ch); } }
運行類 VariableExample1:
在 VariableExample1 類右鍵單擊選擇 "Run As/Java Application":


運行類,在控制臺上看到的結果如下:


您也可以一次聲明多個變數,下例說明了這一點:
創建一個新的類 VariableExample2


- VariableExample2.java
package com.zaixian.tutorial.javabasic.variable; public class VariableExample2 { public static void main(String[] args) { // Declare three 64-bit integer (long) long firstNumber, secondNumber, thirdNumber; // Assign value to firstNumber // L at the end to tell java a long type, distinguished from type int. firstNumber = 100L; // Assign values to secondNumber secondNumber = 200L; // Assign values to thirdNumber thirdNumber = firstNumber + secondNumber; System.out.println("First Number = " + firstNumber); System.out.println("Second Number = " + secondNumber); System.out.println("Third Number = " + thirdNumber); } }
運行類 VariableExample2 的結果 :


5- 控制流
5.1- if-else語句
if-else 語句的結構是:
if(condition1 true) { // Do something here }elseif(condition2 true) { // Do something here }elseif(condition3 true) { // Do something here }else { // Other // Do something here }
創建一個類 ElseIfExample1:


- ElseIfExample1.java
package com.zaixian.tutorial.javabasic.controlflow; public class ElseIfExample1 { public static void main(String[] args) { // Declaring a integer number (int) int score = 20; System.out.println("Your score =" + score); // If the score is less than 50 if (score < 50) { System.out.println("You are not pass"); } // Else if the score more than or equal to 50 and less than 80. else if (score >= 50 && score < 80) { System.out.println("You are pass"); } // Remaining cases (that is greater than or equal to 80) else { System.out.println("You are pass, good student!"); } } }
運行 ElseIfExample1 類的結果:


改變在上面的例子中,變數“score”的值,然後重新運行ElseIfExample1類:
int score = 80;

5.2- 常規操作符
- > 大於號
- < 小於號
- >= 大於或等於
- <= 小於或等於
- && 且
- || 或
- == 等一個值
- != 不等於一個值
- ! 非
創建一個類 ElseIfExample2
- ElseIfExample2.java
package com.zaixian.tutorial.javabasic.controlflow; public class ElseIfExample2 { public static void main(String[] args) { // Declare a variable int simulate your age. int age = 20; // Test age less than or equal 17 if (age <= 17) { System.out.println("You are 17 or younger"); } // Test age equals 18 else if (age == 18) { System.out.println("You are 18 year old"); } // Test age, greater than 18 and less than 40 else if (age > 18 && age < 40) { System.out.println("You are between 19 and 39"); } // Remaining cases (Greater than or equal to 40) else { // Nested if statements // Test age not equals 50. if (age != 50) { System.out.println("You are not 50 year old"); } // Negative statements if (!(age == 50)) { System.out.println("You are not 50 year old"); } // If age is 60 or 70 if (age == 60 || age == 70) { System.out.println("You are 60 or 70 year old"); } } } }
您可以修改 “age” 的值,然後重新運行 ElseIfExample2 類,並查看結果。
5.3- 布爾值
布爾是一種數據類型,它只有兩個值true或false。
創建一個類 BooleanExample
- BooleanExample.java
package com.zaixian.tutorial.javabasic.controlflow; public class BooleanExample { public static void main(String[] args) { // Declare a variable of type boolean boolean value = true; // If value is true if (value == true) { System.out.println("It's true"); } // Else else { System.out.println("It's false"); } // With boolean values you can also write if (value) { System.out.println("It's true"); } // Else else { System.out.println("It's false"); } } }
5.4- switch- case -default 語句
這也是類似上面介紹的 if-else 分支語句:
switch( variable_to_test ) { casevalue: // code_here; break; casevalue: // code_here; break; default: // values_not_caught_above; }
- SwitchExample1.java
package com.zaixian.tutorial.javabasic.controlflow; public class SwitchExample1 { public static void main(String[] args) { // Declare a variable age int age = 20; // Check the value of age switch (age) { // Case age = 18 case 18: System.out.println("You are 18 year old"); break; // Case age = 20 case 20: System.out.println("You are 20 year old"); break; // Remaining cases default: System.out.println("You are not 18 or 20 year old"); } } }
運行類 SwitchExample1 的結果 :
You are 20 year old
請注意case語句是一個特定的值,不能做下麵的操作:
// This is not allowed !! case(age < 18) : // case only accept a specific value eg: case18: // Do something here break;
看下麵的一個例子:
- SwitchExample2.java
package com.zaixian.tutorial.javabasic.controlflow; public class SwitchExample2 { public static void main(String[] args) { // Declare a variable age int age = 30; // Check the value of age switch (age) { // Case age = 18 case 18: System.out.println("You are 18 year old"); // Case age in 20, 30, 40 case 20: case 30: case 40: System.out.println("You are " + age); break; // Remaining case: default: System.out.println("Other age"); } } }
運行結果:
You are 30
5.5- for迴圈
語法:
for( start_value; end_value; increment_number ) { // Code here }
考慮如下一個例子:
- ForLoopExample1.java
packagecom.zaixian.tutorial.javabasic.loop; publicclass ForLoopExample1 { publicstaticvoidmain(String[] args) { // Declare a variable, step in loop intstep = 1; // Declare a variable value with the start value is 0 // After each iteration, value will increase 3 // And the loop will end when the value greater than or equal to 10 for(intvalue = 0; value < 10; value = value + 3) { System.out.println("Step ="+ step + " value = "+ value); // Increase 1 step = step + 1; } } }
運行 ForLoopExample1 類結果:
Step =1 value = 0 Step =2 value = 3 Step =3 value = 6 Step =4 value = 9
另一實例中,從1至100的數字求和:
- ForLoopExample2.java
package com.zaixian.tutorial.javabasic.loop; public class ForLoopExample2 { public static void main(String[] args) { int sum = 0; for (int i = 0; i <= 100; i = i + 1) { sum = sum + i; } System.out.println(sum); } }
結果:
5050
5.6- while迴圈
這是 while 迴圈結構:
// While the condition is true, then do something. while( 條件為真 ) { // Do something here. }參見圖示
- WhileExample1.java
publicclassWhileExampe1 { publicstaticvoidmain(String[] args) { intvalue = 3; // While the value is less than 10, the loop is working. while( value < 10) { System.out.println("Value = "+ value); // Increase value by adding 2 value = value + 2; } } }
5.7- do-while迴圈
下麵是do-while迴圈的結構:
// The do-while loop to work at least one round // and while the condition is true, it also works to do{ // Do something here. }while( condition );
如下圖的示例:
- DoWhileExample1.java
package com.zaixian.tutorial.javabasic.loop; public class DoWhileExample1 { public static void main(String[] args) { int value = 3; // do-while loop will execute at least once do { System.out.println("Value = " + value); // Increase 3 value = value + 3; } while (value < 10); } }
結果:
Value = 3 Value = 6 Value = 9
6- Java數組
6.1- 什麼是數組?
數組是元素存儲在彼此相鄰列表。
讓我們來看看,一個數組有5個int型的元素。
6.2- 使用數組
如何在Java中聲明數組。
// Declare an array, not a specified number of elements. int[] array1; // Initialize the array with 100 elements // The element has not been assigned a specific value array1 = newint[100]; // Declare an array specifies the number of elements // The element has not been assigned a specific value double[] array2 = newdouble[10]; // Declare an array whose elements are assigned specific values. // This array with 4 elements long[] array3= {10L, 23L, 30L, 11L};
讓我們來看一個例子:
- ArrayExample1.java
package com.zaixian.tutorial.javabasic.array; public class ArrayExample1 { public static void main(String[] args) { // Declare an array with 5 elements int[] myArray = new int[5]; // Note: the first element of the array index is 0: // Assigning values to the first element (index 0) myArray[0] = 10; // Assigning values to the second element (index 1) myArray[1] = 14; myArray[2] = 36; myArray[3] = 27; // Value for the 5th element (the last element in the array) myArray[4] = 18; // Print out element count. System.out.println("Array Length=" + myArray.length); // Print to Console element at index 3 (4th element in the array) System.out.println("myArray[3]=" + myArray[3]); // Use a for loop to print out the elements in the array. for (int index = 0; index < myArray.length; index++) { System.out.println("Element " + index + " = " + myArray[index]); } } }
結果:
Array Length=5 myArray[3]=27 Element 0 = 10 Element 1 = 14 Element 2 = 36 Element 3 = 27 Element 4 = 18
舉一個實例來說明使用一個for迴圈來對元素賦值:
- ArrayExample2.java
package com.zaixian.tutorial.javabasic.array; public class ArrayExample2 { public static void main(String[] args) { // Declare an array with 5 elements int[] myArray = new int[5]; // Print out element count System.out.println("Array Length=" + myArray.length); // Using loop assign values to elements of the array. for (int index = 0; index < myArray.length; index++) { myArray[index] = 100 * index * index + 3; } // Print out the element at index 3 System.out.println("myArray[3] = "+ myArray[3]); } }
Array Length=5 myArray[3] = 903
7- 類, 繼承, 構造器
有三個概念需要進行區分:
- 類
- 構造
- 繼承
當我們討論樹,它是抽象的東西,它是一個類。但是,當我們指出了一個特定的樹(比如:檳榔樹),很明顯,那就是實例。
或者,當我們談論的人,這是抽象的,它是一個類。但是,當指向你或我,這是兩種不同的情況下,都是同一個 Person 類。
- Person.java
package com.zaixian.tutorial.javabasic.javastructure; public class Person { // This is field // The name of Person public String name; // This is a Constructor // Use it to initialize the object (Create new object) // This constructor has one parameter // Constructor always have the same name as the class. public Person(String persionName) { // Assign the value of the parameter into the 'name' field this.name = persionName; } // This method returns a String .. public String getName() { return this.name; } }
Person類沒有任何main函數。 TestPerson類通過構造函數初始化Person對象實例
- PersonTest.java
package com.zaixian.tutorial.javabasic.javastructure; public class PersonTest { public static void main(String[] args) { // Create an object of class Person // Initialize this object via constructor of class Person // Specifically, Edison Person edison = new Person("Edison"); // Class Person has the method getName() // Use the object to call getName(): String name = edison.getName(); System.out.println("Person 1: " + name); // Create an object of class Person // Initialize this object via constructor of class Person // Specifically, Bill Gates Person billGate = new Person("Bill Gates"); // Class Person has field name (public) // Use objects to refer to it. String name2 = billGate.name; System.out.println("Person 2: " + name2); } }
運行示例的結果如下:
Person 1: Edison Person 2: Bill Gates
8- 字段
在本節中,我們將討論一些概念:
- 一般字段
- 靜態字段
- final字段
- static final 字段
下麵看看字段和靜態字段的例子。
- FieldSample.java
package com.zaixian.tutorial.javabasic.javastructure; public class FieldSample { // This is static field. public static int MY_STATIC_FIELD = 100; // This is normal field. public String myValue; // Constructor public FieldSample(String myValue) { this.myValue= myValue; } }
- FieldSampleTest.java
package com.zaixian.tutorial.javabasic.javastructure; public class FieldSampleTest { public static void main(String[] args) { // Create the first object. FieldSample obj1 = new FieldSample("Value1"); System.out.println("obj1.myValue= " + obj1.myValue); // Print out static value, access via instance of class (an object). System.out.println("obj1.MY_STATIC_FIELD= " + obj1.MY_STATIC_FIELD); // Print out static value, access via class. System.out.println("FieldSample.MY_STATIC_FIELD= " + FieldSample.MY_STATIC_FIELD); // Create second object: FieldSample obj2 = new FieldSample("Value2"); System.out.println("obj2.myValue= " + obj2.myValue); // Print out static value, access via instance of class (an object) System.out.println("obj2.MY_STATIC_FIELD= " + obj2.MY_STATIC_FIELD); System.out.println(" ------------- "); // Set new value for static field. // (Or using: FieldSample.MY_STATIC_FIELD = 200) obj1.MY_STATIC_FIELD = 200; // It will print out the value 200. System.out.println("obj2.MY_STATIC_FIELD= " + obj2.MY_STATIC_FIELD); } }
運行示例的結果:
obj1.myValue= Value1 obj1.MY_STATIC_FIELD= 100 FieldSample.MY_STATIC_FIELD= 100 obj2.myValue= Value2 obj2.MY_STATIC_FIELD= 100 ------------- obj2.MY_STATIC_FIELD= 200
最後一個字段是不能一個新值分配給它的,它就像一個常數。
- FinalFieldExample.java
package com.zaixian.tutorial.javabasic.javastructure; public class FinalFieldExample { // A final field. // Final Field does not allow to assign new values. public final int myValue = 100; // A static final field. // Final field does not allow to assign new values. public static final long MY_LONG_VALUE = 1234L; }
9- 方法
有關方法的種類:- 方法
- 靜態方法
- final 方法 (將在類的繼承中說明)
- MethodSample.java
package com.zaixian.tutorial.javabasic.javastructure; public class MethodSample { public String text = "Some text"; // Default Constructor public MethodSample() { } // This method return a String // and has no parameter. public String getText() { return this.text; } // This is a method with one parameter String. // This method returns void (not return anything) public void setText(String text) { // this.text reference to the text field. // Distinguish the text parameter. this.text = text; } // Static method public static int sum(int a, int b, int c) { int d = a + b + c; return d; } }
- MethodSampleTest.java
package com.zaixian.tutorial.javabasic.javastructure; public class MethodSampleTest { public static void main(String[] args) { // Create instance of MethodSample MethodSample obj = new MethodSample(); // Call getText() method String text = obj.getText(); System.out.println("Text = " + text); // Call method setText(String) obj.setText("New Text"); System.out.println("Text = " + obj.getText()); // Static method can be called through the class. // This way is recommended. (**) int sum = MethodSample.sum(10, 20, 30); System.out.println("Sum 10,20,30= " + sum); // Or call through objects // This way is not recommended. (**) int sum2 = obj.sum(20, 30, 40); System.out.println("Sum 20,30,40= " + sum2); } }
Text = Some text Text = New Text Sum 10,20,30= 60 Sum 20,30,40= 90
10- 在Java中的繼承
Java允許從其他類擴展類。類擴展另一個類稱為子類。 子類必須有繼承父類中的字段和方法的能力。
- Animal.java
package com.zaixian.tutorial.javabasic.inheritance; public class Animal { public Animal() { } public void move() { System.out.println("Move ...!"); } public void say() { System.out.println("<nothing>"); } }
- Cat.java
package com.zaixian.tutorial.javabasic.inheritance; public class Cat extends Animal { // Override method of the Animal class. public void say() { System.out.println("I am Cat"); } }
- Dog.java
package com.zaixian.tutorial.javabasic.inheritance; public class Dog extends Animal { // Override method of the Animal class. public void say() { System.out.println("I am Dog"); } }
- Ant.java
package com.zaixian.tutorial.javabasic.inheritance; public class Ant extends Animal { }
- AnimalTest.java
package com.zaixian.tutorial.javabasic.inheritance; public class AnimalTest { public static void main(String[] args) { // Declaring a Cat object. Cat cat = new Cat(); // Check 'cat' instance of Animal. // The result is clearly true. boolean isAnimal = cat instanceof Animal; System.out.println("cat instanceof Animal?"+ isAnimal); // ==> Meo // Call the method say() of the Cat. cat.say(); // Declare an object Animal // Initialize the object through the Constructor of the Cat. Animal cat2 = new Cat(); // ==> Meo // Call to say() of Cat (Not Animal) cat2.say(); // Create the object Animal // Through the Constructor of the class Ant. Animal ant = new Ant(); // Ant has no say() method. // It call to say() method that inherited from the parent class (Animal) ant.say(); } }
運行示例的結果如下:
cat instanceof Animal?true I am Cat I am Cat <nothing>
上一篇:
Java異常處理
下一篇:
安裝Java環境(Linux)