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