【CS61B】1. Intro, Hello World Java

Hello World

1
2
3
4
5
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

Java 的一些语法特征:

  • 由类声明组成, 这里使用 public class 声明.
    • Java 中所有的代码都存在于类里
  • 运行的代码位于名为 main 的方法中,该方法声明为 public static void main(String[] args)
  • 使用大括号 { 和 } 来表示代码段的开头和结尾
  • 语句必须以分号结尾

运行Java 程序

常见方法

最常见的方法: 通过 Java 编译器javac, Java 解释器java, 用这两个程序来运行它
../../source/1. Intro, Hello World Java\_run.png

例子

1
2
3
$ javac HelloWorld.java
$ java HelloWorld
Hello World! 
  1. 通过 javac 指令, 把 .java 文件编译为.class字节码文件
  2. 通过 java 指令, 把字节码文件运行(这里只需要输入类名, 不需要带.class 的后缀)

变量和循环

代码

1
2
3
4
5
6
7
8
9
public class HelloNumbers {
    public static void main(String[] args) {
        int x = 0;
        while (x < 10) {
            System.out.print(x + " ");
            x = x + 1;
        }
    }
}
  • 变量 x 在使用前必须声明, 并且需要被赋予一个变量类型
    • 其实跟 C 语言很像, 或者基本一样
  • 这里 while 语句的写法和 C 一样
  • print 语句只是 System.out.print 而不是 System.out.println。这意味着我们不应该包含换行符(返回)

运行

1
2
3
$ javac HelloNumbers.java
$ java HelloNumbers
$ 0 1 2 3 4 5 6 7 8 9 

静态类型

特性

  • Java 最重要的特性之一是所有变量和表达式都有所谓的静态类型
  • Java 变量可以包含该类型的值,并且只能包含该类型的值
  • 变量的类型永远不会改变

静态类型检查

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public class HelloNumbers {
    public static void main(String[] args) {
        int x = 0;
        while (x < 10) {
            System.out.print(x + " ");
            x = x + 1;
        }
        x = "horse";
    }
}

若编译以上程序, 我们将会看到报错:

1
2
3
4
5
$ javac HelloNumbers.java 
HelloNumbers.java:9: error: incompatible types: String cannot be converted to int
        x = "horse";
                ^
1 error
  • 编译器在程序运行前就立即拒绝, 因此运行这个程序根本不会遇到类型错误(因为有错误就根本没法运行)
  • 这与 Python 等动态类型语言形成鲜明对比
  • 静态程序让程序员知道正在使用什么样的对象

静态类型的优点

  • 编译器确保所有类型都兼容,使程序员更容易调试他们的代码
  • 由于保证代码没有类型错误,因此编译程序的用户永远不会遇到类型错误
    • 例如,Android 应用程序是用 Java 编写的,通常仅作为 .class 文件分发,即以编译格式分发。因此,此类应用程序永远不会因类型错误而崩溃,因为它们已经被编译器检查过。
  • 每个变量、参数和函数都有一个声明的类型,使程序员更容易理解和推理代码

在 Java 中定义函数

我们将尝试实现一个比较大小的函数

  • 所有 Java 代码都是类的一部分,因此我们必须定义函数,使它们属于某个类
  • 属于类的函数通常称为“方法”
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class LargerDemo {
    public static int larger(int x, int y) {
        if (x > y) {
            return x;
        }
        return y;
    }

    public static void main(String[] args) {
        System.out.println(larger(8, 10));
    }
}
  • 我们使用关键字 public static 声明了我们的方法
  • 这里虽然代码看起来冗长, 但是当我们开始构建大型程序时, 这将为我们降低错误的可能

代码样式, 注释, Javadoc

良好的代码风格的一些重要特征:

  • 一致样式(间距、变量命名、大括号样式等)
  • 大小(行不太宽,源文件不太长)
  • 描述性命名(变量、函数、类),例如变量或名称为 year 或 getUserName 而不是 x 或 f 的函数
  • 避免重复代码:除了一些更改外,几乎不应该有两个几乎相同的重要代码块
  • 酌情发表评论。Java 中的行注释使用分隔符。块(又名多行注释)注释使用 /* 和 */
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计