• 【Java】main方法的深入理解


    目录

    深入理解 main 方法 public static void main(String[] args)

    ​编辑示例代码: 

    编译运行(String[] args):

    main 方法的注意事项

    示例代码:


    深入理解 main 方法 public static void main(String[] args)

    1. main 方法是Java虚拟机在调用
    2. Java 虚拟机需要调用类的 main() 方法,所以该方法的方法权限必须是 public (∵ 调用的时候 Java 虚拟机和 main 方法不在同一个类)
    3. Java 虚拟机执行 main 方法的时候不必创建对象 ∴该方法必须是 static
    4. main 方法接受 String 类型的数组参数,该数组中保存执行Java 命令时传递给所执行的类的参数

    示例代码: 

    Test01.java

    1. //package com.面向对象.Demo20;
    2. public class Test01 {
    3. /**
    4. * main 主程序运行的入口
    5. * 1.main java 虚拟机调用(java 运行在我们 安装的 虚拟机调用) HotSpot(TM)
    6. * 2.java 虚拟机调用(类)Test01.main main访问权限 public
    7. * 3.String[] args 方便开发者 在以后运行java程序时 注入参数 到 main 方法中
    8. *
    9. * @param args
    10. */
    11. public static void main(String[] args) {
    12. // static 修饰的成员方法、成员属性 静态的 成员方法、成员属性
    13. /**
    14. * static 类.访问
    15. * 不需要 new 对象 直接 类.访问
    16. */
    17. // String[] args 字符串数组
    18. /**
    19. * 前面使用的 编译运行命令
    20. * javac Test01.java
    21. * java Test01 参数1 参数2 参数3
    22. * 然后就可以从控制台看到结果
    23. */
    24. for (int i = 0; i < args.length; i++) {
    25. System.out.println(i);
    26. }
    27. }
    28. }

    编译运行(String[] args):


    idea如何设置main 注入参数

    1. for (int i = 0; i < args.length; i++) {
    2. // System.out.println(args[i]); // 使用javac编译
    3. System.out.println("第" + (i + 1) + "参数:" + args[i]); //idea设置main注入参数
    4. }

    step1:先编译运行一下

    step2:点击右上角的类名

    step3:Program arguments

    step4:可以在上面的输入框直接写,或者 右边的箭头点开 即可

    step5:保存后 编译运行


    main 方法的注意事项

    • 可以直接访问本类的静态成员
    • 访问本类的非静态成员,需要先创建对象,再调用即可。

    示例代码

    Test01.java

    1. package com.面向对象.Demo21;
    2. public class Test01 {
    3. /**
    4. * main 方法加上 static 关键字修饰的
    5. * 所以:
    6. * 1.main 方法中是可以 直接调用到本类中 静态方法
    7. * 2.main 方法 不能够直接调用非静态方法、访问非静态成员属性 必须通过 new对象 对象.访问。
    8. *
    9. * @param args
    10. */
    11. private static int staticAge = 30;
    12. private int age = 20;
    13. public static void main(String[] args) {
    14. // mian 方法调用 静态成员方法、静态属性
    15. staticA(); // <=>Test01.staticA(); ∵ staticA()是在本类,∴ Test01. 可以省略
    16. // b();//报错,静态方法 不可以访问非静态方法,
    17. //必须先new对象 才可以调用 非静态方法。
    18. Test01 test01 = new Test01();
    19. test01.b();
    20. System.out.println(staticAge);
    21. // System.out.println(age);//报错,静态方法 不可以访问非静态属性,
    22. System.out.println(test01.age);//必须先new对象 才可以调用 非静态属性。
    23. }
    24. public static void staticA() {
    25. }
    26. public void b() {
    27. }
    28. }

    下一篇文章: 多态

  • 相关阅读:
    一文读懂OSS、NAS、EBS有什么区别
    MySQL:码包安装mysql(5.6.51)
    Python - 一个恶意脚本
    第二天:ALOAM前端讲解【第1部分】
    《SpringBoot篇》10.JPQL超详细介绍与JPA命名规则
    React JSX常用语法总结
    根据GWAS数据估算样本量N和使用千人基因组填充maf的参考文献
    EntityUtils MapStruct BeanCopier 数据实体类转换工具 DO BO VO DTO 附视频
    机器视觉(三):摄像机标定技术
    详解Python安装requests库的实例代码
  • 原文地址:https://blog.csdn.net/qq_57268251/article/details/133541040