源代碼下載:?LearnJava-zh.java
Java是一個通用的程序語言, 包含并發(fā), 基于類的面向?qū)ο蟮忍匦?閱讀更多
// 單行注釋
/*
多行注釋
*/
/**
JavaDoc(Java文檔)注釋是這樣的??梢杂脕砻枋鲱惡皖惖膶傩?。
*/
// 導(dǎo)入 java.util中的 ArrayList 類
import java.util.ArrayList;
// 導(dǎo)入 java.security 包中的所有類
import java.security.*;
// 每個 .java 文件都包含一個public類,這個類的名字必須和這個文件名一致。
public class LearnJava {
// 每個程序都需要有一個main函數(shù)作為入口
public static void main (String[] args) {
// 使用 System.out.println 來輸出到標準輸出
System.out.println("Hello World!");
System.out.println(
"Integer: " + 10 +
" Double: " + 3.14 +
" Boolean: " + true);
// 如果要在輸出后不自動換行,可以使用System.out.print方法。
System.out.print("Hello ");
System.out.print("World");
///////////////////////////////////////
// 類型與變量
///////////////////////////////////////
// 用 <type> <name> 來聲明變量
// 字節(jié)類型 - 8位補碼表示
// (-128 <= 字節(jié) <= 127)
byte fooByte = 100;
// 短整型 - 16位補碼表示
// (-32,768 <= 短整型 <= 32,767)
short fooShort = 10000;
// 整型 - 32位補碼表示
// (-2,147,483,648 <= 整型 <= 2,147,483,647)
int fooInt = 1;
// 長整型 - 64位補碼表示
// (-9,223,372,036,854,775,808 <= 長整型 <= 9,223,372,036,854,775,807)
long fooLong = 100000L;
// L可以用來表示一個數(shù)字是長整型的。
// 其他的數(shù)字都默認為整型。
// 注意:Java中沒有無符號類型
// 浮點型 - 即 IEEE 754 規(guī)定的32位單精度浮點類型
float fooFloat = 234.5f;
// f用來表示一個數(shù)字是浮點型的。
// 否則會被默認當做是雙精度浮點型。
// 雙精度浮點型 - 即 IEEE 754 規(guī)定的64位雙精度浮點類型
double fooDouble = 123.4;
// 布爾類型 - true 與 false
boolean fooBoolean = true;
boolean barBoolean = false;
// 字符類型 - 16位 Unicode編碼字符
char fooChar = 'A';
// 用 final 可以使一個常量不可更改
final int HOURS_I_WORK_PER_WEEK = 9001;
// 字符串
String fooString = "My String Is Here!";
// \n 代表一個新的換行
String barString = "Printing on a new line?\nNo Problem!";
// \t 代表一個新的制表符
String bazString = "Do you want to add a tab?\tNo Problem!";
System.out.println(fooString);
System.out.println(barString);
System.out.println(bazString);
// 數(shù)組
// 數(shù)組在聲明時大小必須已經(jīng)確定
// 數(shù)組的聲明格式:
//<數(shù)據(jù)類型> [] <變量名> = new <數(shù)據(jù)類型>[<數(shù)組大小>];
int [] intArray = new int[10];
String [] stringArray = new String[1];
boolean [] booleanArray = new boolean[100];
// 聲明并初始化數(shù)組也可以這樣:
int [] y = {9000, 1000, 1337};
// 隨機訪問數(shù)組中的元素
System.out.println("intArray @ 0: " + intArray[0]);
// 數(shù)組下標從0開始并且可以被更改
intArray[1] = 1;
System.out.println("intArray @ 1: " + intArray[1]); // => 1
// 其他數(shù)據(jù)類型
// ArrayLists - 類似于數(shù)組,但是功能更多,并且大小也可以改變
// LinkedLists
// Maps
// HashMaps
///////////////////////////////////////
// 操作符
///////////////////////////////////////
System.out.println("\n->Operators");
int i1 = 1, i2 = 2; // 多重聲明可以簡化
// 算數(shù)運算
System.out.println("1+2 = " + (i1 + i2)); // => 3
System.out.println("2-1 = " + (i2 - i1)); // => 1
System.out.println("2*1 = " + (i2 * i1)); // => 2
System.out.println("1/2 = " + (i1 / i2)); // => 0 (0.5 truncated down)
// 取余
System.out.println("11%3 = "+(11 % 3)); // => 2
// 比較操作符
System.out.println("3 == 2? " + (3 == 2)); // => false
System.out.println("3 != 2? " + (3 != 2)); // => true
System.out.println("3 > 2? " + (3 > 2)); // => true
System.out.println("3 < 2? " + (3 < 2)); // => false
System.out.println("2 <= 2? " + (2 <= 2)); // => true
System.out.println("2 >= 2? " + (2 >= 2)); // => true
// 位運算操作符
/*
~ 取反,求反碼
<< 帶符號左移
>> 帶符號右移
>>> 無符號右移
& 和
^ 異或
| 相容或
*/
// 自增
int i = 0;
System.out.println("\n->Inc/Dec-rementation");
// ++ 和 -- 操作符使變量加或減1。放在變量前面或者后面的區(qū)別是整個表達
// 式的返回值。操作符在前面時,先加減,后取值。操作符在后面時,先取值
// 后加減。
System.out.println(i++); // 后自增 i = 1, 輸出0
System.out.println(++i); // 前自增 i = 2, 輸出2
System.out.println(i--); // 后自減 i = 1, 輸出2
System.out.println(--i); // 前自減 i = 0, 輸出0
///////////////////////////////////////
// 控制結(jié)構(gòu)
///////////////////////////////////////
System.out.println("\n->Control Structures");
// If語句和C的類似
int j = 10;
if (j == 10){
System.out.println("I get printed");
} else if (j > 10) {
System.out.println("I don't");
} else {
System.out.println("I also don't");
}
// While循環(huán)
int fooWhile = 0;
while(fooWhile < 100)
{
//System.out.println(fooWhile);
//增加計數(shù)器
//遍歷99次, fooWhile 0->99
fooWhile++;
}
System.out.println("fooWhile Value: " + fooWhile);
// Do While循環(huán)
int fooDoWhile = 0;
do
{
//System.out.println(fooDoWhile);
//增加計數(shù)器
//遍歷99次, fooDoWhile 0->99
fooDoWhile++;
}while(fooDoWhile < 100);
System.out.println("fooDoWhile Value: " + fooDoWhile);
// For 循環(huán)
int fooFor;
//for 循環(huán)結(jié)構(gòu) => for(<起始語句>; <循環(huán)進行的條件>; <步長>)
for(fooFor=0; fooFor<10; fooFor++){
//System.out.println(fooFor);
//遍歷 10 次, fooFor 0->9
}
System.out.println("fooFor Value: " + fooFor);
// Switch Case 語句
// switch可以用來處理 byte, short, char, 和 int 數(shù)據(jù)類型
// 也可以用來處理枚舉類型,字符串類,和原始數(shù)據(jù)類型的包裝類:
// Character, Byte, Short, 和 Integer
int month = 3;
String monthString;
switch (month){
case 1:
monthString = "January";
break;
case 2:
monthString = "February";
break;
case 3:
monthString = "March";
break;
default:
monthString = "Some other month";
break;
}
System.out.println("Switch Case Result: " + monthString);
///////////////////////////////////////
// 類型轉(zhuǎn)換
///////////////////////////////////////
// 數(shù)據(jù)轉(zhuǎn)換
// 將字符串轉(zhuǎn)換為整型
Integer.parseInt("123");//返回整數(shù)123
// 將整型轉(zhuǎn)換為字符串
Integer.toString(123);//返回字符串"123"
// 其他的數(shù)據(jù)也可以進行互相轉(zhuǎn)換:
// Double
// Long
// String
// 類型轉(zhuǎn)換
// 你也可以對java對象進行類型轉(zhuǎn)換, 但其中會牽扯到很多概念
// 在這里可以查看更詳細的信息:
// http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
///////////////////////////////////////
// 類與函數(shù)
///////////////////////////////////////
System.out.println("\n->Classes & Functions");
// (Bicycle類定義如下)
// 用new來實例化一個類
Bicycle trek = new Bicycle();
// 調(diào)用對象的方法
trek.speedUp(3); // 需用getter和setter方法
trek.setCadence(100);
// toString 可以把對象轉(zhuǎn)換為字符串
System.out.println("trek info: " + trek.toString());
} // main 方法結(jié)束
} // LearnJava 類結(jié)束
// 你也可以把其他的非public類放入到.java文件中
// 類定義的語法:
// <public/private/protected> class <類名>{
// //成員變量, 構(gòu)造函數(shù), 函數(shù)
// //Java中函數(shù)被稱作方法
// }
class Bicycle {
// Bicycle 類的成員變量和方法
public int cadence; // Public: 任意位置均可訪問
private int speed; // Private: 只在同類中可以訪問
protected int gear; // Protected: 可以在同類與子類中可以訪問
String name; // default: 可以在包內(nèi)中可以訪問
// 構(gòu)造函數(shù)是初始化一個對象的方式
// 以下是一個默認構(gòu)造函數(shù)
public Bi450635425cycle() {
gear = 1;
cadence = 50;
speed = 5;
name = "Bontrager";
}
// 一下是一個含有參數(shù)的構(gòu)造函數(shù)
public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
this.gear = startGear;
this.cadence = startCadence;
this.speed = startSpeed;
this.name = name;
}
// 函數(shù)語法:
// <public/private/protected> <返回值類型> <函數(shù)名稱>(<參數(shù)列表>)
// Java類中經(jīng)常會用getter和setter來對成員變量進行操作
// 方法聲明的語法:
// <作用域> <返回值類型> <方法名>(<參數(shù)列表>)
public int getCadence() {
return cadence;
}
// void返450635425回值函數(shù)沒有返回值
public void setCadence(int newValue) {
cadence = newValue;
}
public void setGear(int newValue) {
gear = newValue;
}
public void speedUp(int increment) {
speed += increment;
}
public void slowDown(int decrement) {
speed -= decrement;
}
public void setName(String newName) {
name = newName;
}
public String getName() {
return name;
}
//返回對象屬性的方法
@Override
public String toString() {
return "gear: " + gear +
" cadence: " + cadence +
" speed: " + speed +
" name: " + name;
}
} // Bicycle 類結(jié)束
// PennyFarthing 是 Bicycle 的子類
class PennyFarthing extends Bicycle {
// (Penny Farthings 是前輪很大的 Bicycle, 并且沒有齒輪)
public PennyFarthing(int startCadence, int startSpeed){
// 通過super調(diào)用父類的構(gòu)造函數(shù)
super(startCadence, startSpeed, 0, "PennyFarthing");
}
// 你可以用@注釋來表示需要重載的方法
// 了解更多的注釋使用方法,可以訪問下面的地址:
// http://docs.oracle.com/javase/tutorial/java/annotations/
@Override
public void setGear(int gear) {
gear = 0;
}
}
下面的鏈接只是為了便于大家理解這些主題而給出的,對于具體的例子請大家自行Google
其他主題:
更多建議: