2.2_Java 源文件与类

##################################################

目录

搞清源文件与类

声明与定义

声明一个公开类

CentOS 工作目录

类的三个问题

编写 Java 程序需知


##################################################

搞清源文件与类

——————————

声明与定义

        在说类之前 先搞明白声明是什么 定义又是什么?

        以 C 语言来举例说明

        声明/declaration 和 定义/definition 是两个容易混淆的概念

        声明只是给 变量、函数、结构体、联合体 命名
        表明程序有该 变量、函数、结构体、联合体

        定义是具体给变量分配存储空间、给出函数的具体实现、指明结构体和联合体成员

        如果程序中仅仅有声明,缺少定义实现

        最终无法生成可执行的程序,因为信息不完整,无法完成编译全过程。

        声明可以出现多次 而定义有且只能出现一次

        定义必须有,且只能出现一次

        声明和定义可以同时出现

    抽象图:
声明函数类型以及标识符 (参数数量类型) {

    /* 定义就是具体的实现 */
}

——————————

声明一个公开类

%%%%%

        死记:

一个 Java 源文件中只能有一个 public 修饰类且 Java 源文件中若只有一个类则源文件名必须与该类名一致

%%%%%
        首先我们这个程序文件

main.java

        是一个文件

        第一句:

public class main { }

        字面翻译一下:

公开的 类 自定义类名 { 代码块 }

        很显然 就是说我定义了一个公开的 main 类

        我们在这个文件中声明了一个 main类:

        如何声明的?语法格式是:

类型修饰符 关键字 类名 { }

        现在 我们这样说:

文件 main.java 中
有一个 main 类

        一般来说 都是这种情况 一个文件一个类

        而且类名绝对不能随便命名 要见名知意

%%%%%

        Java 中的所有程序代码都必须存在于一个类中

        用 class 关键字定义类

        在 class 前面可以有一些修饰符

        格式如下:

修饰符 class 类名 {
    /* 程序代码 */
}

——————————

CentOS 工作目录

[lilian@CentOS ~]$ mkdir javaTest    /* 建立目录 javaTest */
[lilian@CentOS ~]$ cd javaTest/    /* 进入工作目录 */
[lilian@CentOS javaTest]$ pwd    /* 查看当前路径 */
/home/lilian/javaTest
[lilian@CentOS javaTest]$ ls    /* 查看目录内容 */
[lilian@CentOS javaTest]$ touch main.java    /* 创建 main.java 空文件 */
[lilian@CentOS javaTest]$ ls    /* 再次查看目录内容 */
main.java
[lilian@CentOS javaTest]$ 

        创建了源文件 main.java

main.java

——————————

类的三个问题

        根据上面死记的准则:

一个 Java 源文件中可以定义多个类
同一个源文件中定义的类最多只能有一个类可以被 public 关键字修饰
若源文件中有被 public 修饰所修饰的类那么源文件名必须与 public 所修饰的类同名

        可以提出以下问题:

源文件中如果没有 public 所修饰的类,源文件该如何命名?
一个源文件中如果定义了多个类,编译之后会形成几个 .class 字节码文件?
main() 这个主方法必须定义在 public 类当中吗?

%%%%%

        源文件中如果没有 public 所修饰的类,源文件该如何命名?

        如果源文件中没有任何一个类被 public 关键字所修饰

        那么我们可以用任意名称来命名这个源文件

        只要源文件的名称符合命名规范就可以了!

%%%%%

        一个源文件中如果定义了多个类,编译之后会形成几个 .class 字节码文件?

源文件与编译后的字节码文件的名称和数量其实没有一一对应关系

字节码文件的名称和数量其实是由源文件中类的名称和数量决定的

    main.java code:
public class main {

	/* 空类 */
}

class first {

	public static void main ( String[] args ) {

		System.out.println ( "你好,世界!" );
	}
}

class second {

	/* 空类 */
}

main.java

        编译之后发现产生了三个字节码文件:

三个字节码文件

三个 .class 文件

         且每个 .class 字节码文件的命名与源文件中的每个类名相对应

%%%%%

        main() 这个主方法必须定义在 public 类当中吗?

        有一种说法,认为主方法必须被定义到 public 类当中才能运行,其实这也是一种讹传

        可以试试上面那个例子 主方法并没有被定义到 public 类当中 但是我们照样能通过相应的命令执行这个主方法:

执行成功

[lilian@CentOS javaTest]$ ls
first.class  main.class  main.java  second.class
[lilian@CentOS javaTest]$ java first
你好,世界!
[lilian@CentOS javaTest]$ 

##################################################

编写 Java 程序需知

——————————
        Java 中的程序可分为结构定义语句和功能执行语句

        其中结构定义语句用于声明一个类或方法

        功能执行语句用于实现具体的功能

        每条功能执行语句的结尾都必须用英文分号

;

        结束 如果误写成中文的分号编译器会报告

Invalid Character/无效字符

        错误信息

——————————

        Java 语言是严格区分大小写的

        大写和小写标识符 是两个完全不同的符号

——————————

        Java 程序中一个连续的字符串不能分开在两行中书写

        例如下面这条语句在编译时将会出错:

System.out.println ( "你好
        世界!" );

        如果为了便于阅读想将一个太长的字符串分开在两行中书写

        可以先将这个字符串分成两个字符串然后用加号将这两个字符串连起来

        在加号处断行

        上面的语句可以修改成如下形式:

System.out.println ( "你好" +
        "世界!" );

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燃吹

呜呜呜没钱钱吃饭了……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值