• 【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. }

    下一篇文章: 多态

  • 相关阅读:
    Python(乱学)
    [机缘参悟-38]:鬼谷子-第五飞箝篇 - 警示之一:有一种杀称为“捧杀”
    苹果Mac电脑L2TP连接公司内部网络失败解决方案
    中石油大学22春季《大学英语(四)#》第一阶段在线作业
    Spring Boot项目的搭建和运行
    【MySQL】子查询详解
    观察者模式 行为型设计模式之七
    2022.08.30 Servlet
    Spring - 注解整理
    正则表达式练习
  • 原文地址:https://blog.csdn.net/qq_57268251/article/details/133541040