Java

2018-02-24 15:18 更新

X分鐘速成Y

其中 Y=java

源代碼下載:?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

其他主題:

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號