问题详情

下面的代码实现一个简单的Applet: import java.applet.Applet; import java.awt.*; public class Sample extends Applet { private String text="Hello World"; public void init() { add(new Label(text)); } public Sample(String string) { text=string; } } 通过下面的HTML文件访问: <html> <title>Sample Applet</title> <body> <applet code="Sample.class"width=200 height=200></applet> </body> </html> 当编译和运行该小程序时会出现什么结果,请选择正确的答案。( )


A、将会出现“Hello World"

B、将会产生一个运行时错误

C、什么都没有

D、产生一个编译时错误

时间:2022-03-03 08:37 关键词:

答案解析

D
解析:该题考查对Applet具体编程的理解。实际上就是考查APplet编程与 Application编程的区别。在应用程序编程中,通常由主类的构造函数和main()方法,在主类的构造函数里面进行一些一次性的初始化工作。而在小程序的编程中,也有主类,既然有类也就有相应的构造函数。但是要知道,Applet是在浏览器或者是通过专门的工具运行的,在创建Applet时,不能通过任何手段给Applet传递参数,所以构造函数应该是不能有参数的。但是,这种错误在编译时并不报错,因为它并没有任何的语法错误,只是会在运行时出错,系统会告诉你无法实例化小程序。注意,本题如果将构造函数改成下面的形式,则编译与运行时都不会出错。public Sample (String string){text="aaaaa";}它的效果与将语句text="aaaaa"放在init()函数里的效果是—样的。也就是说,创建Applet时的初始化工作能放在构造函数里实现的,完全可以放到init()函数里实现。但是,反之,能在init()函数里实现的代码却不一定能在构造函数里实现。这也就是为什么在小程序编程中不用构造函数的原因。故本题答案是D。