Java 学习笔记(01)
mywang88
开发环境:IntelliJ IDEA 2018.2.5
源文件名:HelloWorld.java
代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("haha");
}
}
右键,选择 Run 'HelloWorld.main()'
,运行结果是屏幕输出:
haha
如果不使用 IDE ,也可以在命令行模式下执行:
javac HelloWorld.java
java HelloWorld
分析:
一个 java 脚本就是一个类,或者说一个类的定义脚本。
类名,要跟源文件的名称一致。同时,类名应该遵守首字母大写的驼峰命名法。
当要执行一个 java 脚本(或者说程序,类)的时候,执行的实际上是这个脚本所定义的类中的名为 main 的方法(方法,即类中的函数)。换言之,如果一个类中没有名为 main 的方法,它就不能被作为一个程序直接执行。
一个没有 main 方法的 java 类(脚本)虽然无法直接执行,但它可以被别的(能够执行)的类引用。
main 方法,似乎也被称为“入口”。
接下来,逐句解析这个程序。
public
public 关键字,是一个**“访问控制修饰符”,翻译为“公共的”**,表示它修饰的东西可以被其它所有类访问。它可以用来修饰类,也可以用来修饰方法。
public class HelloWorld{
}
class 关键字用来对类进行定义(声明)。在这里,它定义了一个名为 HelloWorld 的类。花括号中为类的具体内容。
static
static 关键字,翻译为**“静态的”**。
用 static 修饰的某个“方法”,可以在没有创建(它所属于的)类的对象(实例)的情形下被调用,即:
类名.方法()
void
void 关键字,翻译为**“无返回值”**,表示所修饰的方法没有返回值。
public static void 共同修饰了要创建的方法 main ,表示这个方法是公共的、静态的、无返回值的。
main(String[] args){
}
这个语句定义了一个名为 main 的方法。
小括号中定义了这个方法的输入参数。输入的参数的类型为 String[]
,其中 []
表示这是一个数组,而 String
表示数组中的元素的类型为“字符串”,即输入的参数类型为一个“由字符串组成的数组”。输入的参数,在调用本方法时,会被赋值给一个叫做 args
的变量(形参)。
花括号中为本方法的具体内容。
由于 main 方法的返回类型是 void ,因此,在方法的具体内容中没有 return
语句。
System.out.println("haha");
System 是 java.lang 包下的一个类。
out 是 System 类的一个属性,它的类型是 PrintStream。
PrintStream 类包含一个名为 println 的方法,这个方法的作用是将传递给它的参数,本例中是字符串“haha”,打印到屏幕上。
综上,这个语句调用了 System 类的 out 属性的 println 方法。
在 java 语言规范中,分号代表一个语句的结束。
小结
一个小小的 HelloWorld 例子中竟然包含了如此多的 java 知识,充分体现出了 java 面向对象的语言特征,学到了不少。
笔者不久前刚开始学习 Python,忍不住写了个对应的 Python 脚本:
class HelloWorld:
@staticmethod
def main():
print('haha')
HelloWorld.main()
当然,在接触面向对象编程之前,笔者更倾向于写成:
print('haha')
开始领会面向对象吧…