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,如果沒有安裝好,選安裝好再接着下一個步驟)創建一個新的項目,這將在本教程中使用。
輸入項目名稱:
- 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.yiibai.tutorial.javabasic.variable
選擇上面創建的包名 com.yiibai.tutorial.javabasic.variable,在彈出的菜單中選擇 New 中選擇 Class。
輸入類的名稱:
- **VariableExample1
**
創建 VariableExample1 類如下:
- 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":
運行類,在控制檯上看到的結果如下:
您也可以一次聲明多個變量,下例說明了這一點:
創建一個新的類 **VariableExample2
**
- 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 的結果 :
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.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 類的結果:
改變在上面的例子中,變量「score」的值,然後重新運行ElseIfExample1類:
int score = 80;
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