Java基础-编写问候语-“Hello World”

时间:2021-11-17 08:50:34

                 Java基础-编写问候语-“Hello World”

                                    作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.编写“Hello World”程序

1>.编写源代码

  任何文本编辑起都可以编写Java源代码。Java代码的文件的命名格式规定是以“*.java”结尾。

Java基础-编写问候语-“Hello World”

2>.编译

  编译时使用javac命令。用法:javac + 源文件

Java基础-编写问候语-“Hello World”

3>.运行

  运行时使用Java命令。Java后面跟的是类名或是字节码文件的文件名。

Java基础-编写问候语-“Hello World”

 二.“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常量名,一般每个字母都大写;

Java基础-编写问候语-“Hello World”

 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>.书写规范

  在编写代码时,要进行适当的换行与缩进。

Java基础-编写问候语-“Hello World”

4>.注释规范

  a>.什么是注释

    注释是对代码进行解释说明;

    注释是给人看的,不参与编码,不影响程序的结构;

    注释的作用就是为了提高代码的可读性;

  b>.Java文档中的注释分类

    单行注释,使用"//"(双斜杠)开始的注释

    多行注释,使用"/**/"标识的注释

    文档注释,使用“/** 文档注释*/”进行的注释,文档注释可以生成相应的文档。

Java基础-编写问候语-“Hello World”

五.文档注释的生成

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”