用Java开始一个类,但不同

时间:2017-02-27 11:57:14

标签: java eclipse

在我的计算机科学课中,我们开始使用Java Eclipse中的类:

public class FirstApp extends Applet implements ActionListener, MouseListener, MouseMotionListener 

{

不是我在其他地方看到它的方式:

class FirstApp {
    public static void main(String[] args) {
    ...
}
}

有什么区别?如果我将一段代码更改为第二个代码,会发生什么?

2 个答案:

答案 0 :(得分:2)

不同之处在于您的第一个示例使用了Applet technology,现在已被广泛弃用。浏览器将在它创建的JVM中为您运行它。

  

Java applet是一种特殊的Java程序,支持浏览器   使用Java技术可以从互联网上下载并运行。小程序   通常嵌入在网页中并在a的上下文中运行   浏览器。 applet必须是java.applet.Applet类的子类。   Applet类提供applet之间的标准接口   和浏览器环境。

您的第二个示例是一个旨在由JVM直接调用的Java应用程序。命令行参数将作为String数组传递到main()。即。

java -cp . org.example.FirstApp

答案 1 :(得分:0)

正如Adam在his answer中指出的那样,两个例子之间的区别在于第一个程序是Java Applet,第二个程序是普通的Java应用程序。

小程序

applet在您的浏览器中运行,它将为您启动Java解释器并创建applet。在创建applet之后,Java解释器调用方法init(),初始化时,applet将通过方法start()启动。在第一个示例中,没有运行代码。

要添加一些要执行的代码,您必须实现start()方法,这将使您的applet看起来像这样:

public class FirstApp extends Applet implements ActionListener,
    MouseListener, MouseMotionListener 
{
   public void start() {
      // Code to execute when started
   }
}

实现的接口是事件侦听器,它使applet能够对某些用户事件做出反应。正常的应用程序不一定实现这些,因为命令行应用程序不需要图形事件监听器。

您可以从浏览器或Eclipse启动applet,就像您在计算机科学课程中所做的那样。当通过Eclipse启动applet时,Eclipse负责在自己的窗口中启动和显示applet,因此您不必编写将嵌入applet的网页。

申请

应用程序在您(用户)直接启动的Java解释器中运行。启动时,Java解释器运行main(String[])方法,因此上层示例的等效项将是:

public class FirstApp {
    public static void main(String[] args) {
        // Code to execute when started
    }
}

在您编译之后(通过javac FirstApp.java),可以通过命令行启动正常的应用程序,如下所示:

java FirstApp

当然,也可以通过Eclipse使用" Launch"来启动应用程序(即编译和解释)。按钮。