JAVA 类定义 class 前为什么必须要有public ?

文件2:<HelloWorldApplet.JAVA>importjava.awt.Graphics;publicclassHelloWorldAppletextends... 文件2: <HelloWorldApplet.JAVA >
import java.awt.Graphics ;

public class HelloWorldApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
g.drawString("Hello world!",5,25 );
}
}
文件1:<ABC.HTML>
<HTML>
<HEAD>
<TITLE>Hello to Everyone!</TITLE>
</HEAD><BODY>
<P>My Java applet says:
<APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>
</BODY>
</HTML>

class 前必须要有PUBLIC,否则报错:
RuntimeException:
java.lang.reflect.InvocationTargetException.

这是为什么呢?
看了大家的答案, 但有谁真实地能试一下,确实是我说的这样,你要不加PUBLIC关键字,肯定是有报错的。

声明本人有编程经验,对MFC比较了解。JAVA没有接触过。

测试方法:
第一步:
将文件2: <HelloWorldApplet.JAVA >,文件1:<ABC.HTML> COPY到同一个目录下,这个目录要在CLASSPATH环境变量中定义,否则JAVA将找不到用户定义的类:HelloWorldApplet..class
第二步:
对文件2HelloWorldApplet.JAVA先进行编译
javac HelloWorldApplet.java ,生成HelloWorldApplet..class
第三步:
用IE打开ABC.HTML,注:控制面板---JAVA---安全,要设置为“低”,否则IE将不执行JAVA APPLET脚本的。

可以试一下,
展开
 我来答
Stale331x
推荐于2017-09-20 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:832万
展开全部
public是一个修饰符,类似的还有default(就是前面什么也没有)、protected、private。。
这些东西,是确定了方法的作用域。
例如,用public声明的类以及方法,则可以被任意的包中使用,其集成的子类也可以使用,
而private则不是,private声明的方法,只有在该类中才能够调用,否则会出错。
这四个修饰符的作用于大小为
public >default >protected>private
第二与第三不太确定。一般我是用public以及pivate比较多。。
一楼的话,你最好就不要相信,因为java的所谓的“接口”,跟他说的相差几百万里
追问
能试一下吗?
追答
你了解 包 这种东西吗?
上述的四个修饰符,跟 包外、包内、类本身、类的继承的关系相关。。
试就不试了。。你不是想了解这几个修饰符的区别吗??
你没有加public,就是默认的为default,即不写任何东西。
当为default的时候,该类只能是在包内可访问。。。
看你配置那么多东西,肯定是包外调用了。
详细你可以看看
http://zhidao.baidu.com/link?url=CuvLLdYjEvYQJVCYtfhIvy731WA4hnrps8PIKOio0_DDjwgfy0u_xqFGJSSHCimDHbSQ5H2GkIA1RpljuRG2iq
感觉还是有些可以参考的
小狂中E
2013-09-24 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1026万
展开全部
class前的修饰符是用来控制访问权限的,public表示在任何包里都可访问,protected表示同一包和子类可访问,package(缺省不写时就是这个)表示在同一包内可访问,private表示只有当前类可访问。
根据以上描述,你这个applet没声明成public,java plugin利用反向机制创建这个applet时会调用它的构造函数不被允许,所以抛出这个异常。这个异常在java plugin不认识class文件版本时也可能抛出,但根据你说声明成public时正常,估计不是这个引起的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lk_js
推荐于2017-09-05 · 超过25用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:33.7万
展开全部
public只是class的一种修饰词,表示公开的类,既所有的类都可引入使用。还有protected,表示受保护的类,子孙类和本类可引入使用
默认不写,表示同包中和本类中可使用
private,表示私人的,只能在本类中使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maikegdl
2013-09-24 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:100%
帮助的人:75万
展开全部
不是必须的, 使用了 public关键字定义的类 文件名必须和类名一致。 没使用public , 文件名可以不和类名一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暴风雪2020
2013-09-24 · TA获得超过177个赞
知道答主
回答量:71
采纳率:100%
帮助的人:23.8万
展开全部
不是必须要,这算是一个公开的级别吧,private是私有的外部不能调用,public是公用的外部可以调用
追问
能试一下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(14)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式