栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2.2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2.2

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

搞清源文件与类

——————————

声明与定义

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

        以 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    
[lilian@CentOS ~]$ cd javaTest/    
[lilian@CentOS javaTest]$ pwd    
/home/lilian/javaTest
[lilian@CentOS javaTest]$ ls    
[lilian@CentOS javaTest]$ touch main.java    
[lilian@CentOS javaTest]$ ls    
main.java
[lilian@CentOS javaTest]$ 

        创建了源文件 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 {

	
}

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

         且每个 .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]$ 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号