为什么JAVA文件中只能含有一个Public类?

能详细解答下吗?... 能详细解答下吗? 展开
 我来答
丿MarsHan
2018-12-18 · TA获得超过4921个赞
知道答主
回答量:79
采纳率:0%
帮助的人:43.1万
展开全部

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

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

扩展资料

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

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

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

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

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

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

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

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

参考资料:

百度百科——Java的Public类

香料魔法
2018-12-14 · TA获得超过2.2万个赞
知道答主
回答量:218
采纳率:60%
帮助的人:22.1万
展开全部

因为java程序是从一个public类的main( )函数开始执行的,编译器在编译时,针对一个java源代码文件(编译单元)只会接受一个public类。

每个编译单元只有单一的公共接口,用public类来表现,如果很多PUBLIC 类,那程序从何运行?这个单一的公共接口可以包含多个支持包访问权限的类。如果有一个以上的public 类,编译器就会报错。同时,public类的名称必须完全与含有该编译单元的文件名完全一致。如果不一致,也会导致将编译错误。

不过,虽然不是很常用,但编译单元内完全不带public类也是可能的。

扩展资料

java源文件中只能有一个public类验证

class Test1

{

int i = 1;

}

class Test2

{

int i = 2;

public static void main(String[] args)

{

System.out.println("main method");

}

}

C:/javatest>javac Test3.java

C:/javatest>java Test2

main method

这样编译不会出错,运行的Test2 因为没有Test3.class文件生成。

如果运行Test3则报错,找不到该类

C:/javatest>java Test3

Exception in thread "main" java.lang.NoClassDefFoundError: Test3

Caused by: java.lang.ClassNotFoundException: Test3

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

Could not find the main class: Test3.  Program will exit.

JVM中的类加载器找不到Test3.class

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大时代暑
2010-04-20 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4111
采纳率:0%
帮助的人:4826万
展开全部
java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样。 只能有一个public类是为了给类装载器提供方便。 一个public 类只能定义在以它的类名为文件名的文件中。

每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public 类,编译器就会报错。 并且public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有public类。

在一个源文件.JAVA文件中可以有很多类,只有一个PUBLIC类其他的都不能是.
在PUBLIC类中找程序的入口 main函数 你想想如果很多PUBLIC 类,那程序从何运行呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式