Java-01 -从HelloWorld到面向对象

Java是完全面向对象的语言。Java通过虚拟机的运行机制,实现“跨平台”的理念。我在这里想要呈现一个适合初学者的教程,希望对大家有用。先来看一个 HelloWorld.java 程序。这个程序在屏幕上打印出一串字符"Hello World!":

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!");
    }
}

程序中包括Java的一些基本特征:
类(class):上面程序定义了一个 类 HelloWorld,该类的名字与.java文件的名字相同。
方法(method):类的内部定义了该类的一个 方法 main。
语句(statement):真正的“打印”功能由一个语句实现,即: System.out.println("Hello World!");
下面两点有关Java的书写方式:
Java中的语句要以 ; 结尾 (与C/C++相同)。
用花括号 {} 来整合语句,形成程序块。通过程序块,我们可以知道程序的不同部分的范围,比如类从哪里开始,到哪里结束。

编译与运行

Java程序要经过编译器编译才能执行。在Linux或Mac下,可以下载安装 Java JDK。使用 javac 来编译。在命令行中输入下面语句 编译 :

$javac HelloWorld.java

当前路径下,将有一个名为HelloWorld.class的文件生成。使用 java 命令来 运行 。Java会搜寻该类中的main方法,并执行

$java HelloWorld


变量

计算机语言通常需要在内存中存放数据,比如C语言中的变量,Java也有类似的变量。Java和C语言都是静态类型的语言。在使用变量之前,要声明变量的类型。变量(variable) 占据一定的内存空间。不同类型的变量占据不同的大小。Java中的变量类型如下:

存储大小     例值     注释
byte      1byte        3      字节
int       4bytes       3      整数
short     2bytes       3      短整数
long      8bytes       3      长整数
float     4bytes     1.2      单精度浮点数
double    8bytes     1.2      双精度浮点数
char      2bytes     'a'      字符
boolean   1bit      true      布尔值

在Java中,变量需要先 声明(declare)才能使用。在声明中,我说明变量的类型,赋予变量以特别名字,以便在后面的程序中调用它。你可以在程序中的任意位置声明变量。 比如:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Declare in the middle:");
        int a;
        a = 5;
        System.out.println(a);  // print an integer
    }
}

上面a是变量名。可以在声明变量的同时,给变量赋值,比如 int a = 5;* “变量”的概念实际上来自于面向过程的编程语言。在Java中,所谓的变量实际上是 “基本类型” (premitive type) 。我们将在类的讲解中更多深入。上面的程序还可以看到,Java中,可用 // 引领注释。


数组

Java中有 数组(array) 。数组包含相同类型的多个数据。我用下面方法来声明一个整数数组:int[] a;
在声明数组时,数组所需的空间并没有真正分配给数组。我可以在声明的同时,用new来创建数组所需空间:int[] a = new int[100];这里创建了可以容纳100个整数的数组。相应的内存分配也完成了。
我还可以在声明的同时,给数组赋值。数组的大小也同时确定。int[] a = new int[] {1, 3, 5, 7, 9};使用 int[i] 来调用数组的i 下标 元素。i从0开始。其他类型的数组与整数数组相似。

表达式

表达式 是变量、常量和运算符的组合,它表示一个数据。 1 + 1 是常见的表达式。再比如:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Declare in the middle:");
        int a;
        a = 5 + 1;
        System.out.println(a);  // print an integer
    }
}

上面的5 + 1也是一个表达式,等于6。


数学表达式

数学运算,结果为一个数值
1 + 2                  加法
4 - 3.4                减法
7 * 1.5                乘法
3.5 / 7                除法
7 % 2                  求余数


关系表达式

判断表达式是否成立。即一个boolean值,真假
a > 4.2                大于
3.4 >= b               大于等于
1.5 < 9                小于
6 <= 1                 小于等于
2 == 2                 等于
2 != 2                 不等于


布尔表达式

两个boolean值的与、或、非的逻辑关系
true && false          and
(3 > 1) || (2 == 1)    or
! true                  not


位运算

对整数的二进制形式逐位进行逻辑运算,得到一个整数
& and
| or
^ xor
~ not
5 << 3                 0b101 left shift 3 bits
6 >> 1                 0b110 right shift 1 bit
还有下列在C中常见的运算符,我会在用到的时候进一步解释:
m ++ 变量m加1
n -- 变量n减1
condition ? x1 : x2   condition为一个boolean值。根据condition,取x1或x2的值