解析java中的main方法

解析java中的main方法

1.一个java源文件(.java文件)可以有多个class类

1.1 分析

例如下面代码编译时不会报错,只不过编译后会生成多个对应的class类文件
其中有多少个类就生成class类文件

1.2 示例代码

class B{

}
public class Practice {
    public static void main(String[] args) {
        System.out.println("main方法的一些理解");
    }
}
class A{

}
class C{

}
class D{

}
//编译后,应该会生成A、B、C、D、Practice这五个class文件

1.3 编译后的效果截图

在这里插入图片描述

2.一个java源文件有且只能有一个public class

2.1 分析

原因:如果类被public修饰,编译器会去判断public class修饰的类名是否与java文件名中的类名部分保持一致,
而若有两个public修饰的类,编译器就不知道听谁的了

因此一个java文件有且只能有一个public class修饰的类

2.2 示例代码

class B{

}
public class Practice {
    public static void main(String[] args) {
        System.out.println("main方法的一些理解");
    }
}
public class F{

}
class A{

}
class C{

}
class D{

}

2.3 示例代码运行截图

在这里插入图片描述

3.在一个java源文件里面多个类都可以有自己的main方法,通过java 类名的方式可以进行访问

3.1 分析

在运行阶段,java.exe程序本质上是对.class文件去进行操作,并且是通过class的名字去找到里面的main方法去进行操作,如果操作的class文件没有main方法,那会给出提示,说该类找不出main方法,请将main方法定义成…

总结:java.exe文件本质上去对字节码文件进行相应的操作,并且只能运行带有main方法的class类,没有就会报错

java.exe去执行字节码文件底层是jvm去自动调用里面的字节码文件的main方法,若没有,肯定会报错的

3.2 示例代码

class B{
    public static void main(String[] args) {
        System.out.println("这是B类中的方法");
    }
}
public class Practice {
    public static void main(String[] args) {
        System.out.println("main方法的一些理解");
    }
}

class A{
    public static void main(String[] args) {
        System.out.println("这是A类中的方法");
    }
}
class C{
    public static void main(String[] args) {
        System.out.println("这是C类中的方法");
    }
}
class D{
}

3.3 示例代码运行截图

在这里插入图片描述

4.public class类中的main方法必须按照public static void main(String[] args){}格式来吗

4.1 分析

是的,因为只有这样,jvm才能正常自动调用它,我们唯一可以更改的地方是args,因为这是形参,又是标识符,我们可以自己定义,但是不建议自己定义,因为业内默认就是写成args了

4.2 示例代码

class B{
    public static void main(String[] args) {
        System.out.println("这是B类中的方法");
    }
}
public class Practice {
    public static void main(String[] arguments) {
        //可以看到我改了形参,但是程序还是可以正常运行的
        System.out.println("main方法的一些理解");
    }
}

class A{
    public static void main(String[] args) {
        System.out.println("这是A类中的方法");
    }
}
class C{
    public static void main(String[] args) {
        System.out.println("这是C类中的方法");
    }
}
class D{
}

4.3 示例代码运行截图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值