第一个Java程序
/** 第一个java程序 */
class HelloWorld{ // 声明类
public static void mian(string[], args){ // 声明入口函数
System.out.print("Hello World! ");
}
}
运行时,在当前文件目录下,使用 javac+
文件名,编译该程序,然后,使用用 java
+编译后的文件名,运行Java程序。
解读
· public
* Java语言中的关键字,公共访问权限。
· class
*Java语言中的关键字,表示声明一个类
· HelloWorkd
* 类名,必须是一个合法的标识符。这个名字最好和文件名保持一致。
· {}
* 作用域,当前代码的范围
· static
* Java语言的关键字,表示静态的
· void
* Java语言的关键字,表示方法运行结束之后,得到的结果类型,void表示空——即没有返回结果
· mian
* 方法名字,表示Java程序的入口方法
· (string(), args)
* 参数列表,表示形参。用户可以根据形参参与运算。
· System
* Java语言的类,包含很多系统相关的方法。
* System.out.print() 表示输出一段内容
Java的执行机制
· 先编译,在解释:
· 将源文件编译成字节码文件(平台中立文件 *.class),再将文件字节码文件进行执行。
· Java的设计理念:write once run anywhere
Java程序书写规范
· 层级之间必须缩进(Tab:一个制表单位)。
**·**一行只写一句代码
代码注释
- 单行注释
// 这是单行注释
- 多行注释
/*
这是多行注释
*/
- 文档注释
/**
文档注释,用于测试注释的类
*/
常见问题
-
类名和文件名不一致
* 如果类名使用public
修饰,类名必须和文件名一致,
* 如果类名是不是使用public
修饰就可以和文件名一致,但不建议这么做。 -
一个Java中可以存在多个类么
* 如果这两个类都没有使用public
修饰是没有问题的。编译的时候会生成这两个类的文件。
* 如果只有一个类使用public
修饰,这个类名和文件也是可以正常的。
* 如果一个类都用public
进行修饰,这种编译一定报错。
我的疑问
在一个Java程序中,如果声明了若干个类(不同为public),那么,编译的时候会生成两个可执行文件。分别用这若干个类名命名。
就目前而言,在文件首部添加了package
关键字,那么在包里编译文件的时候就找了一次包,这时候再在包里运行编译后的文件,就会报错,找不到主类。但是在文件夹之外,使用 包名.可执行文件
即可执行。
如果是多层包体嵌套,目前还没有解决。