Java快速入門

初學者快速學習Java

1- 介紹

2- 創建Java工程

3- 原始數據類型

4- 變量

5- 控制流程

5.1- if-else語句

5.2- 一般操作符

5.3- 布爾值

5.4- switch- case -default語句

5.5- for循環

5.6- while循環

5.7- do-while循環

6- Java數組

6.1-什麼是數組?

6.2- 使用數組

7- 類,承,構造器

8- 字段

9- 方法

10- Java繼承

1- 介紹

首先,學習Java需要什麼,先閱這裏,這裏列出一些開發工具和環境配置:

2- 創建一個工程

首先,我們使用Eclipse(注意就是Eclise,如果沒有安裝好,選安裝好再接着下一個步驟)創建一個新的項目,這將在本教程中使用。

Java快速入門
輸入項目名稱:

  • BasicJavaTutorial

Java快速入門
項目已創建:
Java快速入門

注:爲了能夠在除英語工程其他語言可以使用,應該切換到UTF-8編碼。

右鍵單擊該項目並選擇屬性:
Java快速入門
Java快速入門

3- 原始數據類型

JAVA中有八種基本類型

  • 對於整數有4種類型:byte, short, int, long
  • 實數類型: float, double
  • 字符類型: char
  • 布爾: 返回 truefalse 值 (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":
Java快速入門

新建命名包是:

  • com.yiibai.tutorial.javabasic.variable
    Java快速入門

選擇上面創建的包名 com.yiibai.tutorial.javabasic.variable,在彈出的菜單中選擇 New 中選擇 Class。

輸入類的名稱:

  • **VariableExample1
    Java快速入門
    **

創建 VariableExample1 類如下:

Java快速入門

  • VariableExample1.java

package com.yiibai.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":
Java快速入門

運行類,在控制檯上看到的結果如下:
Java快速入門

您也可以一次聲明多個變量,下例說明了這一點:

創建一個新的類  **VariableExample2
Java快速入門
**

  • VariableExample2.java

package com.yiibai.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 的結果 :
Java快速入門

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:
Java快速入門

  • ElseIfExample1.java

package com.yiibai.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 類的結果:
Java快速入門

改變在上面的例子中,變量「score」的值,然後重新運行ElseIfExample1類:

int score = 80;

Java快速入門

5.2- 常規操作符

  • > 大於號
  • < 小於號
  • >= 大於或等於
  • <= 小於或等於
  • && 且
  • || 或
  • == 等一個值
  • != 不等於一個值
  • ! 非

創建一個類 ElseIfExample2

  • ElseIfExample2.java

package com.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.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.yiibai.tutorial.javabasic.inheritance;

public class Ant extends Animal {

}

  • AnimalTest.java

package com.yiibai.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