源代码下载: LearnJava-zh.java

Java 是一个通用的程序语言, 蕴含并发, 基于类的面向对象等个性浏览更多

// 单行正文/*多行正文*//**JavaDoc(Java文档)正文是这样的。能够用来形容类和类的属性。*/// 导入 java.util中的 ArrayList 类import java.util.ArrayList;// 导入 java.security 包中的所有类import java.security.*;// 每个 .java 文件都蕴含一个public类,这个类的名字必须和这个文件名统一。public class LearnJava {    // 每个程序都须要有一个main函数作为入口    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> 来申明变量        // 字节类型 - 8位补码示意        // (-128 <= 字节 <= 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能够用来示意一个数字是长整型的。        // 其余的数字都默认为整型。        // 留神:Java中没有无符号类型        // 浮点型 - 即 IEEE 754 规定的32位单精度浮点类型        float fooFloat = 234.5f;        // f用来示意一个数字是浮点型的。        // 否则会被默认当做是双精度浮点型。        // 双精度浮点型 - 即 IEEE 754 规定的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);        // 数组        // 数组在申明时大小必须曾经确定        // 数组的申明格局:        //<数据类型> [] <变量名> = new <数据类型>[<数组大小>];        int [] intArray = new int[10];        String [] stringArray = new String[1];        boolean [] booleanArray = new boolean[100];        // 申明并初始化数组也能够这样:        int [] intArray = {9000, 1000, 1337};        // 随机拜访数组中的元素        System.out.println("intArray @ 0: " + intArray[0]);        // 数组下标从0开始并且能够被更改        intArray[1] = 1;        System.out.println("intArray @ 1: " + intArray[1]); // => 1        // 其余数据类型        // ArrayLists - 相似于数组,然而性能更多,并且大小也能够扭转        // LinkedLists        // Maps        // HashMaps        ///////////////////////////////////////        // 操作符        ///////////////////////////////////////        System.out.println("\n->Operators");        int i1 = 1, i2 = 2; // 多重申明能够简化        // 算数运算        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。放在变量后面或者前面的区别是整个表白        // 式的返回值。操作符在后面时,先加减,后取值。操作符在前面时,先取值        // 后加减。        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        ///////////////////////////////////////        // 控制结构        ///////////////////////////////////////        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循环        int fooWhile = 0;        while(fooWhile < 100)        {            //System.out.println(fooWhile);            //减少计数器            //遍历99次, fooWhile 0->99            fooWhile++;        }        System.out.println("fooWhile Value: " + fooWhile);        // Do While循环        int fooDoWhile = 0;        do        {            //System.out.println(fooDoWhile);            //减少计数器            //遍历99次, fooDoWhile 0->99            fooDoWhile++;        }while(fooDoWhile < 100);        System.out.println("fooDoWhile Value: " + fooDoWhile);        // For 循环        int fooFor;        //for 循环构造 => for(<起始语句>; <循环进行的条件>; <步长>)        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 数据类型        // 也能够用来解决枚举类型,字符串类,和原始数据类型的包装类:        // 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);        ///////////////////////////////////////        // 类型转换        ///////////////////////////////////////        // 数据转换        // 将字符串转换为整型        Integer.parseInt("123");//返回整数123        // 将整型转换为字符串        Integer.toString(123);//返回字符串"123"        // 其余的数据也能够进行相互转换:        // Double        // Long        // String        // 类型转换        // 你也能够对java对象进行类型转换, 但其中会牵扯到很多概念        // 在这里能够查看更具体的信息:        // http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html        ///////////////////////////////////////        // 类与函数        ///////////////////////////////////////        System.out.println("\n->Classes & Functions");        // (Bicycle类定义如下)        // 用new来实例化一个类        Bicycle trek = new Bicycle();        // 调用对象的办法        trek.speedUp(3); // 需用getter和setter办法        trek.setCadence(100);        // toString 能够把对象转换为字符串        System.out.println("trek info: " + trek.toString());    } // main 办法完结} // LearnJava 类完结// 你也能够把其余的非public类放入到.java文件中// 类定义的语法:// <public/private/protected> class <类名>{//    //成员变量, 构造函数, 函数//    //Java中函数被称作办法// }class Bicycle {    // Bicycle 类的成员变量和办法    public int cadence; // Public: 任意地位均可拜访    private int speed;  // Private: 只在同类中能够拜访    protected int gear; // Protected: 能够在同类与子类中拜访    String name; // default: 能够在包内拜访    // 构造函数是初始化一个对象的形式    // 以下是一个默认构造函数    public Bicycle() {        gear = 1;        cadence = 50;        speed = 5;        name = "Bontrager";    }    // 以下是一个含有参数的构造函数    public Bicycle(int startCadence, int startSpeed, int startGear, String name) {        this.gear = startGear;        this.cadence = startCadence;        this.speed = startSpeed;        this.name = name;    }    // 函数语法:    // <public/private/protected> <返回值类型> <函数名称>(<参数列表>)    // Java类中常常会用getter和setter来对成员变量进行操作    // 办法申明的语法:    // <作用域> <返回值类型> <办法名>(<参数列表>)    public int getCadence() {        return cadence;    }    // void返回值函数没有返回值    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 类完结// PennyFarthing 是 Bicycle 的子类class PennyFarthing extends Bicycle {    // (Penny Farthings 是前轮很大的 Bicycle, 并且没有齿轮)    public PennyFarthing(int startCadence, int startSpeed){        // 通过super调用父类的构造函数        super(startCadence, startSpeed, 0, "PennyFarthing");    }    // 你能够用@正文来示意须要重载的办法    // 理解更多的正文应用办法,能够拜访上面的地址:    // http://docs.oracle.com/javase/tutorial/java/annotations/    @Override    public void setGear(int gear) {        gear = 0;    }}

更多浏览

上面的链接只是为了便于大家了解这些主题而给出的,对于具体的例子请大家自行Google

其余主题:

  • Java 官网教程
  • Java 拜访修饰符
  • 面向对象程序设计概念:

    • 继承
    • 多态
    • 形象
  • 异样
  • 接口
  • 泛型
  • Java代码标准

有倡议?或者发现什么谬误?在 Github 上开一个issue,或者发动 pull request!


原文由 Jake Prather 编写,并由 0 个好心人 批改。
Translated by: Chenbo Li
© 2022 Jake Prather
本作品采纳 CC BY-SA 3.0 协定进行许可。