当前位置:首页 » 编程软件 » 编译单元可以不带public类

编译单元可以不带public类

发布时间: 2022-07-14 00:16:29

A. 为什么java文件中只能含有一个Public类

每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息。

一个Java源文件中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。

(1)编译单元可以不带public类扩展阅读

JAVA类中主要包含属性、方法、构造方法、块以及内部类。

属性用来定义对象的数据;

方法用来定义对象的行为;

构造方法可以用来创建对象;

块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;

内部类作为类的一个成员存在,能够访问外部类的属性和方法。

类是对象的模板,使用类往往都需要首先对类进行实例化,即创建对象。要创建对象必须使用new关键字调用构造方法(constructor)才能完成,构造方法中往往对属性进行实例化,也可以实现其他必要的功能,如读取属性文件等。

构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。

B. JAVA 关于封装的这个问题 为什么会报错

首先,建议题主直接把代码贴出来;

其次,一个".java"源文件中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。

在java编程思想(第四版)一书中有这样3段话(6.4 类的访问权限):

1.每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息。

2.public类的名称必须完全与含有该编译单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。

3.虽然不是很常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。

C. 一个java源文件中可以有多个类,但只能有一个类是public的吗

是的。

java程序是从一个public类的main函数开始执行的,就像C程序是从main()函数开始执行一样。只能有一个public是为了给类装载器提供方便。 一个public只能定义在以它的类名为文件名的文件中。

D. 程序中的主类如果不用public修饰,编译能通过吗

可以的。有关类的public修饰,有一个规定,就是一个.java文件里面,最多只能有一个public类(当然可以少于一个,就是0个了),否则编译不通过。

另外一个约定是,运行入口的main方法必须放到与文件名同名的类里面,比如T.java,里面main方法只能放到class T里面,否则不会被执行,但这只是约定,不会影响编译,也就是说你放到别的类,比如class T2里面也可以,但是不会通过java T命令来执行。

E. 浅谈为什么一个java源文件中只能有一个public类

1、每个编译单元(文件)只能有一个public 类。这么做的意思是,每个编
译单元只能有一个公开的接口,而这个接口就由其public 类来表示。
你可以根据需要,往这个文件里面添加任意多个提供辅助功能的package 权限的类。但是如果这个编译单元里面有两个或两个以上的public 类的话,编译器就会报错。
2. public 类的名字必须和这个编译单元的文件名完全相同,包括大小
写。所以对Widget 类,文件名必须是Widget.java,不能是widget.java 或WIDGET.java。如果你不遵守,编译器又要报错
了。
3. 编译单元里面可以没有public 类,虽然这种情况不常见,但却是可以
的。这时,你就能随意为文件起名字了。

热点内容
cryengine源码 发布:2025-02-08 09:50:58 浏览:389
aardio可以反编译吗 发布:2025-02-08 09:50:53 浏览:480
公司营业执照密码是什么 发布:2025-02-08 09:47:56 浏览:852
体验脚本 发布:2025-02-08 09:46:15 浏览:688
医学生需要什么配置的笔记本 发布:2025-02-08 09:45:34 浏览:770
骚扰电话数据库 发布:2025-02-08 09:45:34 浏览:177
u盘文件加密器 发布:2025-02-08 09:40:35 浏览:769
plc数据存储app 发布:2025-02-08 09:37:17 浏览:708
服务器的峰值高低有什么区别 发布:2025-02-08 09:35:46 浏览:689
maven预编译 发布:2025-02-08 09:20:34 浏览:755