Java基础-编写问候语-“Hello World”
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.编写“Hello World”程序
1>.编写源代码
任何文本编辑起都可以编写Java源代码。Java代码的文件的命名格式规定是以“*.java”结尾。
2>.编译
编译时使用javac命令。用法:javac + 源文件
3>.运行
运行时使用Java命令。Java后面跟的是类名或是字节码文件的文件名。
二.“Hello World”程序说明
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
EMAIL:y1053419035@qq.com
*/ class Hello{
public static void main(String[]args){
System.out.println("Hello World!");
}
}
1>.Java程序都必须定义在类中,编写Java程序的过程就是不断定义类的过程;
2>.使用class来定义一个类;
3>.Hello是程序员气的一个类名;
4>.类中的内容需要使用一对大括号括起来;
5>.程序要运行,必须编写main方法,并且main方法的写法是固定的;
6>.pubic表示公共的;
7>.static表示静态的;
8>.void表示main方法没有返回值;
9>.main是一个方法名;
10>.main后面的小括号是方法的参数;
11>.string[]args 是定义了一个字符串类型的数组;
12>.main方法的方法体也需要使用一对大括号括起来;
13>.“System.out.println("Hello World!");”是一条语句,Java语句使用英文半角分好结束;
14>.上一条语句的作用是在屏幕上打印一行信息,就是双引号引起来的内容会打印到屏幕上;
15>.System是sun公司定义的一个类,表示系统类;
16>. System.out 代表的是系统的标准输出设备,默认为显示器;
17>.println() 是一个方法,其作用就是在屏幕上打印一行信息;
注意:在Java中的符号都是英文半角!!!
三.Java源文件与类
1>.定义的类必须存储在Java源文件中。
2>.一般情况下,Java源文件名与类名相同。
3>.如果类名与源文件名不同:
a>.javac编译时,跟的是源文件名;
b>.生成的字节码文件,字节码文件名与类名相同。
4>.一般情况下,一个Java源文件中只定义一个类。
5>.在Java源文件中可以定义多个类:
a>.编译后,每个类都会生成一个对应的字节码文件
6>.同一个源文件中不同的类,都可以有main方法:
a>.一个类是否需要定义main方法,根据这个类是否需要被运行来决定
7>.类可以使用public修饰为公共类:
a>.你可能会问为什么要定义公共类,这就不得步说一下包的概念,包是用来管理类的,如果A包中的类想要使用B保重的类,在B包中被使用的类必须定义为public公共类;
b>.公共类的类名必须和文件名一致;
四.Java编码规范
1>.存储规范
a>.Java源文件的路径中尽量不要含有空格(dos命令行默认是以空格区分命令与参数)和中文(可以避免字符编码导致的问题)。
b>.Java源文件名不能有空格,尽量不要有中文。
2>.命名规范
程序源在开发程序时,会给类,变量,方法,常量起一些名字,在起名时要符合命名规范,常见的命名规范如下:
a>.类名一般每个单词首字母都大写;
b>.变量名,是名词,第一个单词小写,其它每个单词的首字母大写;
c>.方法名,是动词,第一个单词小写,其它每个单词的首字母大写;
d>.final常量名,一般每个字母都大写;
D:\.Java\JavaSE\Day1>dir
驱动器 D 中的卷是 学习资料
卷的序列号是 -071A D:\.Java\JavaSE\Day1 的目录 // 周二 上午 : <DIR> .
// 周二 上午 : <DIR> ..
// 周二 上午 : Demo01.java
// 周一 下午 : Hello.class
// 周一 下午 : Hello.java
个文件 字节
个目录 ,,, 可用字节 D:\.Java\JavaSE\Day1>
D:\.Java\JavaSE\Day1>type Demo01.java
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ class MyClass{
final double PI = 3.14; //final常量每个字母都大写
public static void main(String[] args){
int dogAge = ; //定义一个变量,dogAge是一个变量名
System.out.println("尹正杰");
} public static int getYear(){ //getYear()是方法名
return ;
}
}
D:\.Java\JavaSE\Day1>javac Demo01.java D:\.Java\JavaSE\Day1>dir
驱动器 D 中的卷是 学习资料
卷的序列号是 -071A D:\.Java\JavaSE\Day1 的目录 // 周二 上午 : <DIR> .
// 周二 上午 : <DIR> ..
// 周二 上午 : Demo01.java
// 周一 下午 : Hello.class
// 周一 下午 : Hello.java
// 周二 上午 : MyClass.class
个文件 , 字节
个目录 ,,, 可用字节 D:\.Java\JavaSE\Day1>java MyClass
尹正杰 D:\.Java\JavaSE\Day1>
D:\.Java\JavaSE\Day1>
DOS命令行案例展示
3>.书写规范
在编写代码时,要进行适当的换行与缩进。
4>.注释规范
a>.什么是注释
注释是对代码进行解释说明;
注释是给人看的,不参与编码,不影响程序的结构;
注释的作用就是为了提高代码的可读性;
b>.Java文档中的注释分类
单行注释,使用"//"(双斜杠)开始的注释
多行注释,使用"/**/"标识的注释
文档注释,使用“/** 文档注释*/”进行的注释,文档注释可以生成相应的文档。
五.文档注释的生成
1>.文档注释一般用来注释类,方法,成员变量
即在类的前面,在方面的前面,在成员变量的前面可以有文档注释。
2>.类必须使用public修饰为公共的才可以生成相应的文档
方法,变量可以使用public修饰,也可以使用protected修饰。
3>.工具类说明书的制作
a>.写一个完整的工具类,类要用public修饰;
b>.类名上加author(指定作者,可以用中文),version(指定发行版本,如1.0版本)标签;
c>.方法上加param(对形参列表进行说明的关键字),return(对返回值的类型进行说明)标签;
d>.注意,方法上标签中不用加类型;
4>.文档注释可以使用javadoc命令生成相应的文档
命令行常用编译参数说:
a>.“-author”,表示包含包含 @author 段。
b>.“-version”,表示包含 @version 段。
c>.“encoding”,指定源文件的编码格式。
如果想要了解更多参数可以查看帮助信息:“javadoc -help”。
D:\10.Java\JavaSE\Java\DAY1>
D:\10.Java\JavaSE\Java\DAY1>type Demo.java
/**
@author 尹正杰
@version 1.0
*/ public class Demo{
/**
文档注释对成员变量进行注释时,可以使用public/protected修饰。
*/
protected int password = 123; //成员变量 /**
* 文档注释,对方法进行注释,方法需要使用public/protected修饰。
*
* @param args main 方法的参数是一个字符串数组
*/
public static void main(String[] args){
int age = 18; //定义一个变量保存一个人的年龄。
System.out.println("yinzhengjie");
}
}
D:\10.Java\JavaSE\Java\DAY1>
D:\10.Java\JavaSE\Java\DAY1>javadoc -d ./mydoc -author -version Demo.java
正在加载源文件Demo.java...
正在构造 Javadoc 信息...
正在创建目标目录: "./mydoc\"
标准 Doclet 版本 9.0.4
正在构建所有程序包和类的树...
正在生成.\mydoc\Demo.html...
正在生成.\mydoc\package-frame.html...
正在生成.\mydoc\package-summary.html...
正在生成.\mydoc\package-tree.html...
正在生成.\mydoc\constant-values.html...
正在构建所有程序包和类的索引...
正在生成.\mydoc\overview-tree.html...
正在生成.\mydoc\index-all.html...
正在生成.\mydoc\deprecated-list.html...
正在构建所有类的索引...
正在生成.\mydoc\allclasses-frame.html...
正在生成.\mydoc\allclasses-frame.html...
正在生成.\mydoc\allclasses-noframe.html...
正在生成.\mydoc\allclasses-noframe.html...
正在生成.\mydoc\index.html...
正在生成.\mydoc\help-doc.html... D:\10.Java\JavaSE\Java\DAY1>
javadoc -d ./mydoc -author -version -encoding GBK Demo.java
六.反编译操作
D:\.Java\JavaSE\Day1>dir
驱动器 D 中的卷是 学习资料
卷的序列号是 -071A D:\.Java\JavaSE\Day1 的目录 // 周二 上午 : <DIR> .
// 周二 上午 : <DIR> ..
// 周二 上午 : Demo01.java
// 周二 上午 : Demo02.java
// 周二 上午 : Demo03.java
// 周二 上午 : <DIR> doc
// 周二 上午 : Dome04.java
// 周一 下午 : Hello.java
个文件 , 字节
个目录 ,,, 可用字节 D:\.Java\JavaSE\Day1>
D:\.Java\JavaSE\Day1>javac Dome04.java D:\.Java\JavaSE\Day1>dir
驱动器 D 中的卷是 学习资料
卷的序列号是 -071A D:\.Java\JavaSE\Day1 的目录 // 周二 上午 : <DIR> .
// 周二 上午 : <DIR> ..
// 周二 上午 : Demo01.java
// 周二 上午 : Demo02.java
// 周二 上午 : Demo03.java
// 周二 上午 : <DIR> doc
// 周二 上午 : Dome04.class
// 周二 上午 : Dome04.java
// 周一 下午 : Hello.java
个文件 , 字节
个目录 ,,, 可用字节 D:\.Java\JavaSE\Day1>
D:\.Java\JavaSE\Day1>javap -c Dome04
Compiled from "Dome04.java"
public class Dome04 {
protected int password; public Dome04();
Code:
: aload_0
: invokespecial # // Method java/lang/Object."<init>":
()V
: aload_0
: bipush
: putfield # // Field password:I
: return public static void main(java.lang.String[]);
Code:
: bipush
: istore_1
: getstatic # // Field java/lang/System.out:Ljava/
io/PrintStream;
: ldc # // String yinzhengjie
: invokevirtual # // Method java/io/PrintStream.printl
n:(Ljava/lang/String;)V
: return
} D:\.Java\JavaSE\Day1>
D:\.Java\JavaSE\Day1>
反编译操作:“javap -c Dome04”