Java

Java编程起步

2019-05-09  本文已影响0人  Miracle001
主要内容
Java编程起步

第一个程序"Hello World"
定义Java程序,通过记事本进行编写
所有Java程序的后缀都是*.java程序,
建立一个目录(d:\fgqjava)保存所有的程序源代码
建立一个Hello.java的源程序(新建一个文件,改名为Hello.java,注意扩展名要改为.java)
使用editplus或者记事本工具进行编写,与Windows兼容,不会出现问题

范例:
第一个程序代码:
public class Hello {
    public static void main(String args[]) {
        System.out.println("Hello World !");
    }
}
注意arg后的符号"[]",放在前面或者后面都可以,如下
public class Hello {
    public static void main(String [] args) {
        System.out.println("Hello World !");
    }
}

Java程序是需要经过两次处理后才可以正常执行的:
    对源代码程序进行编译:javac Hello.java,会出现有一个Hello.class的字节码文件;
        利用JVM进行编译,编译出一套与平台无关的字节码文件(*.class)
    在JVM上进行程序的解释执行:java Hello
        解释的就是字节码文件,字节码文件的后缀是不需要编写的;

---------------------------------------------------------------------------
Windows命令行操作如下:
C:\Users\Administrator>d:

D:\>cd fgqjava

D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  14:48    <DIR>          .
2019/05/09/周四  14:48    <DIR>          ..
2019/05/09/周四  14:48               110 Hello.java
2019/05/09/周四  14:43                 0 Hello.java.bak
               2 个文件            110 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>javac Hello.java

D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  14:48    <DIR>          .
2019/05/09/周四  14:48    <DIR>          ..
2019/05/09/周四  14:48               417 Hello.class
2019/05/09/周四  14:48               110 Hello.java
2019/05/09/周四  14:43                 0 Hello.java.bak
               3 个文件            527 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>java Hello
Hello World !

D:\fgqjava>del Hello.class

主要内容
Java程序的主要结构:针对第一个程序进行完整的解释。
1、在Java程序开发之中最基础的单元是类,所有的程序都必须封装在类中执行,
而类的基本定义语法如下:
[public] class 类名称 {}
在本程序之中定义的类名称为"Hello",而类的定义有两种形式:
"public class 类名称 {}":类名称必须与文件名称保持一致,
    一个*.java文件里面只允许有一个public class定义;
"class 类名称 {}":类名称可以与文件名称不一致,
    但是编译后的*.class名称是class定义的类名称,要求解析的是生成的*.class文件名称。
    在一个*.java文件里面可以有多个class定义,并且编译之后会形成不同的*.class文件;


提示:关于以后源代码定义问题
    在以后进行项目开发的时候,很少会出现一个*.java源代码里面定义有多个class的情况;
    所以对于以后的开发而言,一个*.java文件里面就定义有一个public class 类就够了;
    但在整个课程讲解里面如果要是定义了多个文件会产生混乱,
    所以初期会在一个*.java文件中定义有多个类方便学习。

    Java语言有着明确的命名要求,以后定义类名称的时候要求每一个单词的首字母必须大写,
    例如:HelloWorld、TestDemo等才算是标准。

2、主方法:主方法是所有程序执行的起点,并且一定要定义在类之中,
Java的主方法定义:牢记于心
[public] class 类名称 {
    public static void main(String [] args) {
        程序的代码由此开始执行 .
    }
}
args前面的[]可以放前面或者后面
Java的主方法名称定义非常的长,具体的解释在后续会有所说明。
在以后课程讲解的过程里面,主方法所在的类都统一将其称为"主类",
所有的主类都将采用public class 来定义。主方法就是程序的起点。

3、屏幕打印(系统输出)
可以直接在命令行方式下进行内容的显示,有两类语法形式:
    输出之后追加换行:System.out.println(输出内容);
    输出之后不追加换行:System.out.print(输出内容)、ln(line、换行);

对于输出语法在后面还会对其做进一步的说明。没有想象的那么简单。

下面的代码是解析二者区别的例子
"public class 类名称 {}":类名称必须与文件名称保持一致,

代码改为:
public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World !");
    }
}
保存文件,执行代码后,报错如下:
D:\fgqjava>javac Hello.java
Hello.java:1: 错误: 类 HelloWorld 是公共的, 应在名为 HelloWorld.java 的文件中声明
public class HelloWorld {
       ^
1 个错误
报错原因:使用public class 的类名称必须与文件名称保持一致,
此处的文件名称是Hello.java,类名称是HelloWorld
"class 类名称 {}":类名称可以与文件名称不一致,
    但是编译后的*.class名称是class定义的类名称,要求解析的是生成的*.class文件名称。

代码改为:
class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World !");
    }
}
编译成功,且出现了一个名为HelloWorld.class的文件
表明:class 的类名称可以与文件名称不一致

保存文件,执行代码:
D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  14:58    <DIR>          .
2019/05/09/周四  14:58    <DIR>          ..
2019/05/09/周四  15:10               108 Hello.java
2019/05/09/周四  15:02               115 Hello.java.bak
               2 个文件            223 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>javac Hello.java

D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  15:11    <DIR>          .
2019/05/09/周四  15:11    <DIR>          ..
2019/05/09/周四  15:10               108 Hello.java
2019/05/09/周四  15:02               115 Hello.java.bak
2019/05/09/周四  15:11               422 HelloWorld.class
               3 个文件            645 字节
               2 个目录 217,989,181,440 可用字节
编译后生成的class文件名与class定义的类名称一致

D:\fgqjava>java HelloWorld
Hello World !

D:\fgqjava>del *.class
---------------------------------------------------------------------------
"class 类名称 {}":在一个*.java文件里面可以有多个class定义,并且编译之后会形成不同的*.class文件;

代码改为:
class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World !");
    }
}

class A{}
class B{}
class C{}


执行代码:
D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  15:28    <DIR>          .
2019/05/09/周四  15:28    <DIR>          ..
2019/05/09/周四  15:28               143 Hello.java
2019/05/09/周四  15:10               108 Hello.java.bak
               2 个文件            251 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>javac Hello.java

D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  15:29    <DIR>          .
2019/05/09/周四  15:29    <DIR>          ..
2019/05/09/周四  15:29               180 A.class
2019/05/09/周四  15:29               180 B.class
2019/05/09/周四  15:29               180 C.class
2019/05/09/周四  15:28               143 Hello.java
2019/05/09/周四  15:10               108 Hello.java.bak
2019/05/09/周四  15:29               422 HelloWorld.class
               6 个文件          1,213 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>del *.class

屏幕打印(系统输出)

代码改为:
public class Hello {
    public static void main(String args[]) {
        System.out.println("Hello World !");
        System.out.println("Hello World !");
        System.out.println("Hello World !");
    }
}

命令行执行:
D:\fgqjava>dir
 驱动器 D 中的卷是 本地磁盘
 卷的序列号是 A6E8-533E

 D:\fgqjava 的目录

2019/05/09/周四  16:28    <DIR>          .
2019/05/09/周四  16:28    <DIR>          ..
2019/05/09/周四  16:28               192 Hello.java
2019/05/09/周四  15:28               143 Hello.java.bak
               2 个文件            335 字节
               2 个目录 217,989,181,440 可用字节

D:\fgqjava>javac Hello.java

D:\fgqjava>java Hello
Hello World !
Hello World !
Hello World !

显示都有换行

---------------------------------------------------------------------------

代码改为:
第一个print没有换行,第二个println有换行
public class Hello {
    public static void main(String args[]) {
        System.out.print("Hello ");
        System.out.println("World !");
        System.out.println("Hello World !");
    }
}

命令行执行:
D:\fgqjava>javac Hello.java

D:\fgqjava>java Hello
Hello World !
Hello World !

总结
语法总结:
主方法定义结构
[public] class 类名称 {
    public static void main(String args []) {}
}
两个输出指令
System.out.println(输出内容);
system.out.print(输出内容);
上一篇下一篇

猜你喜欢

热点阅读