main方法问题

bluejoy345 2010-01-25 02:52:06
为什么Main方法中调用本类中其他方法必须实例化类之后才能调用?
程序是先执行Main方法还是先执行主类的构造方法?
Main方法中的参数(String args[])是什么意思?
谢谢
...全文
238 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leonhe2022 2010-01-28
  • 打赏
  • 举报
回复
为什么Main方法中调用本类中其他方法必须实例化类之后才能调用?
答1:虽然是同一个类里面,调用其他的非静态方法,必须先实例化类;但调用静态方法就不用实例化,能直接调用。
程序是先执行Main方法还是先执行主类的构造方法?

答2:必须明白:一情况下,main方法是程序的入口。要是你在main中调用类的构造方法,那么当然是先main后构造方法;要是你不调用构造方法,那就无所谓先后了,构造方法根本就不执行。。。。
特例:就是在static代码块里面调用该类构造方法,那就不同啦,程序会在执行main之前调用静态代码块里的构造方法。

Main方法中的参数(String args[])是什么意思?

public class Test {

//在代码文件所在目录运行下面2个命令,你就明白args是什么啦。。。。
//javac Test.java
//java Test x y z 1 2 3
public static void main(String[] args) {
System.out.println(args.length);
for (int i=0;i< args.length ; i++) {
System.out.println(args[i]);
}
}
}

zhangfei1988 2010-01-28
  • 打赏
  • 举报
回复
1.main方法中可以直接调用本类的static方法,非static方法必须通过实例来调用
2.先执行main方法
3.这是命令参数
例如:public class Test(){
public static void main(String[] args){
System.out.println(args[0]);
System.out.println(args[1]);

}

}
编译:javac Test.java
运行时 java Test dog cat
运行结果:dog
cat
me old 2010-01-27
  • 打赏
  • 举报
回复
顶4楼。
Shaojianyinghua 2010-01-27
  • 打赏
  • 举报
回复
它有静态变量啊
snowmansh 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yan_pu 的回复:]
因为他是static。。。
[/Quote]
正确。
yan_pu 2010-01-26
  • 打赏
  • 举报
回复
因为他是static。。。
mouer 2010-01-25
  • 打赏
  • 举报
回复
写成 String... args 一样运行....
crazylaa 2010-01-25
  • 打赏
  • 举报
回复
路过
ChDw 2010-01-25
  • 打赏
  • 举报
回复
1、为什么Main方法中调用本类中其他方法必须实例化类之后才能调用?
-----
这个和main没有任何关系,任何static方法(包含main)都必须实例化才可以调用,否则你认为静态方法中看到的this是什么?
public class A {
private int x;
public A(int x) {
this.x = x;
}

public int getX() {
return x;
}

public static void main(String[] args) {
//如果这里可以用getX,你觉得x的值是多少?所以不允许调用任何非静态方法和变量
}



2、程序是先执行Main方法还是先执行主类的构造方法?
---
main方法就是一个静态方法,和你调用Utiliy.xxxx方法一样,不需要构造实例


3、Main方法中的参数(String args[])是什么意思?
你运行java A x y z的时候args 就会是 {"x", "y", "z"}
折腾的生活 2010-01-25
  • 打赏
  • 举报
回复
例如:
java Test 12 23
执行Test类的main方法,参数是String[] ="12","23"
折腾的生活 2010-01-25
  • 打赏
  • 举报
回复
3.从CMD命令行执行程序时,输入的参数用空格隔开,所组成的数组。
折腾的生活 2010-01-25
  • 打赏
  • 举报
回复
为什么?这就是java面向对象的思想啊
main,构造方法是在实例化的时候才被调用执行的,
终端参数

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧