Java中的main方法和Javafx中的launch(args)

本文链接:https://blog.csdn.net/qq_43320407/article/details/88756136
关于main的声明:
1.java虚拟机调用的,所以必须为public;

2.当一个类中有main()方法,执行命令“java 类名”则会启动虚拟机执行该类中的main方法。

由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。(类名.main())

3. jvm有限制,不能有返回值,因此返回值类型为void;(似乎是因为拿不到返回值,所以干脆不要了)

4.main函数只能出现在公共类中也就是public class中

除了这个,main方法中的args[]是用来干什么的,我之前就一直好奇。后来查资料才知道:

main()方法中字符串参数数组作用是接收命令行输入参数的,命令行的参数之间用空格隔开。

参数args为程序使用者在命令行状态下与程序交互提供了一种手段。

比如:javac Test1.java

java Test1  60 50 40

接下来遍历args[]数组,

for(int i=0;i<args.length;i++){

        System.out.println(args[i]); 
    } 

结果就是 60 50 40

还有一个问题:Javafx中Application.launch()传入的参数为什么是args

初学javafx的时候就遇到了这个:

public static void main(String[] args) {
launch(args);
}
其实这个传参目的是

用于从控制台传入参数,就像main函数main(String[] args)一样,args是控制台传过来的参数。

有时候需要启动的时候传入参数就会用到这个,比如在控制台执行命令 java Demo abc

,abc便会作为参数args传到main函数。

我们知道传数组名其实就是传地址。Javafx中Application.launch()是static

public static void launch(String… args) {


}
     那么有个问题来了,我们经常用eclipse或者idea这种工具编写java程序然后运行,而不是用javac java这种dos窗口的形式,那么怎么向args数组传递参数呢。

eclipse中可以在运行的时候选择运行参数 : 点击  Run -> Run Configurations  ->  Java Application ,然后选择项目对应的类 Test1 ,再点击 Arguments,在program arguments框中 输入字符串"60 50 40"作为程序运行参数,然后点 Apply  ->  Run
————————————————
版权声明:本文为CSDN博主「水瓶座的鬼才」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43320407/article/details/88756136

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaFX的`KeyFrame`类是一个时间轴上的关键帧,它定义了在某个时间点上要执行的操作。下面是`KeyFrame`类的构造方法: ``` public KeyFrame(Duration time, EventHandler<ActionEvent> onFinished) public KeyFrame(Duration time, String name, EventHandler<ActionEvent> onFinished) ``` 第一个构造方法是最基本的,它需要一个`Duration`类型的时间和一个`EventHandler<ActionEvent>`类型的事件处理器作为参数。当时间轴上的时间达到指定的时间时,`KeyFrame`上的事件处理器就会被触发执行。 第二个构造方法还需要一个字符串类型的名称作为参数,用于标识这个关键帧。这个名称可以在后续的代码用来引用这个关键帧。 下面是一个使用`KeyFrame`类的例子: ``` import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.util.Duration; public class KeyFrameExample extends Application { @Override public void start(Stage primaryStage) { StackPane root = new StackPane(); // 创建一个时间轴,并添加一个关键帧 Timeline timeline = new Timeline(); timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(2), new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello, world!"); } })); // 播放时间轴 timeline.play(); Scene scene = new Scene(root, 300, 250); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这个例子,我们创建了一个时间轴,并在其添加了一个关键帧,当时间轴上的时间达到2秒时,就会执行`handle`方法的代码,输出"Hello, world!"。然后我们启动了时间轴,这样它就开始按照设定的时间轴执行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值