目录

深入理解 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 命令时传递给所执行的类的参数

java 运行main函数怎么指定运行的端口_java

示例代码: 

Test01.java

//package com.面向对象.Demo20;

public class Test01 {
    /**
     * main 主程序运行的入口
     * 1.main java 虚拟机调用(java 运行在我们 安装的 虚拟机调用) HotSpot(TM)
     * 2.java 虚拟机调用(类)Test01.main main访问权限 public
     * 3.String[] args 方便开发者 在以后运行java程序时 注入参数 到 main 方法中
     *
     * @param args
     */
    public static void main(String[] args) {
        // static 修饰的成员方法、成员属性 静态的 成员方法、成员属性
        /**
         * static 类.访问
         * 不需要 new 对象 直接 类.访问
         */

        // String[] args 字符串数组
        /**
         * 前面使用的 编译运行命令
         * javac Test01.java
         * java Test01 参数1 参数2 参数3
         * 然后就可以从控制台看到结果
         */
        for (int i = 0; i < args.length; i++) {
            System.out.println(i);
        }
    }
}

编译运行(String[] args):

java 运行main函数怎么指定运行的端口_main方法的深入理解_02


idea如何设置main 注入参数

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

step1:先编译运行一下

step2:点击右上角的类名

java 运行main函数怎么指定运行的端口_开发语言_03

step3:Program arguments

java 运行main函数怎么指定运行的端口_java_04

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

java 运行main函数怎么指定运行的端口_main_05

step5:保存后 编译运行

java 运行main函数怎么指定运行的端口_main_06


main 方法的注意事项

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

示例代码:

Test01.java

package com.面向对象.Demo21;

public class Test01 {
    /**
     * main 方法加上 static 关键字修饰的
     * 所以:
     * 1.main 方法中是可以 直接调用到本类中 静态方法
     * 2.main 方法 不能够直接调用非静态方法、访问非静态成员属性 必须通过 new对象 对象.访问。
     *
     * @param args
     */
    private static int staticAge = 30;
    private int age = 20;

    public static void main(String[] args) {
        // mian 方法调用 静态成员方法、静态属性
        staticA(); // <=>Test01.staticA(); ∵ staticA()是在本类,∴ Test01. 可以省略
        
//        b();//报错,静态方法 不可以访问非静态方法,
        //必须先new对象 才可以调用 非静态方法。
        Test01 test01 = new Test01();
        test01.b();

        System.out.println(staticAge);
//        System.out.println(age);//报错,静态方法 不可以访问非静态属性,
        System.out.println(test01.age);//必须先new对象 才可以调用 非静态属性。


    }

    public static void staticA() {

    }

    public void b() {
    }
}