Java必学教程:Java main()方法

createh54个月前 (01-07)技术教程40

在Java中,main()方法是Java应用程序的入口方法,程序在运行的时候,第一个执行的方法就是main()方法。main()方法和其他的方法有很大的不同。

下面先来看最简单的一个Java应用程序HelloWorld,我们将通过这个例子讲解Java类中main()方法的奥秘,程序的代码如下:

public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}12345复制代码类型:[java]

其中,使用main()方法时应该注意如下几点:

访问控制权限是公有的(public)。

main()方法是静态的。如果要在main()方法中调用本类中的其他方法,则该方法也必须是静态的,否则需要先创建本类的实例对象,然后再通过对象调用成员方法。

main()方法没有返回值,只能使用void。

main()方法具有一个字符串数组参数,用来接收执行Java程序的命令行参数。命令行参数作为字符串,按照顺序依次对应字符串数组中的元素。

字符串中数组的名字(代码中的args)可以任意设置,但是根据习惯,这个字符串数组的名字一般和Java规范范例中main()参数名保持一致,命名为args,而方法中的其他内容都是固定不变的。

main()方法定义必须是“publicstaticvoidmain(String[]字符串数组参数名)”。

一个类只能有一个main()方法,这是一个常用于对类进行单元测试(对软件中的最小可测试单元进行检查和验证)的技巧。

下面的示例代码演示了如何在main()方法中调用本类的静态和非静态方法。

public class Student {
    public void Speak1() {
        System.out.println("你好!");
    }
    public static void Speak2() {
        System.out.println("Java!");
    }
    public static void main(String[] args) {
        // Speak1();    // 错误调用
        Speak2();    // 可以直接调用静态方法Speak2()
        Student t = new Student();
        t.Speak1();    // 调用非静态方法,需要通过类的对象来调用
    }
}1234567891011121314复制代码类型:[java]

由上面代码可以看出,在main()方法中只能直接调用静态方法,如果想调用非静态方法,需要将当前类实例化,然后通过类的对象来调用。

例1

创建一个Java程序,编写代码实现程序执行时统计传递参数的数量及每个参数值。示例代码如下:

public class TestMain {
    public static void main(String[] args) {
        int n = args.length;    // 获取参数数量
        System.out.println("一共有 "+n+" 个参数");
        if(n > 0) {   
            // 判断参数个数是否大于0
            for(int i = 0;i < n;i++) {
                System.out.println(args[i]);
            }
        }
    }
}123456789101112复制代码类型:[java]

1)将代码保存到TestMain.java文件中(这里把TestMain.java文件放到了D盘的myJava文件夹),然后用如下Java命令对程序进行编译:

javac TestMain.java1复制代码类型:[java]

2)程序编译成功后用如下Java命令执行Test程序:

java TestMain 参数列表    // 多个之间用空格隔开1复制代码类型:[java]

这里使用如下三个语句执行程序:

java TestMain
java TestMain apple banana
java TestMain one two three four five six123复制代码类型:[java]

3)执行结果如下所示:

C:\Users\leovo>d:

D:\myJava>javac TestMain.java

D:\myJava>java TestMain
一共有 0 个参数

D:\myJava>java TestMain apple banana
一共有 2 个参数
apple
banana

D:\myJava>java TestMain one two three four five six
一共有 6 个参数
one
two
three
four
five
six

D:\myJava>12345678910111213141516171819202122复制代码类型:[java]

由此可见,main()方法可以以字符串的形式接收命令行参数,然后在方法体内进行处理。

开课吧广场-人才学习交流平台

相关文章

Java:什么是静态代理?什么是动态代理?二者有何区别?

推荐学习微服务架构秘籍:SpringCloud+SpringCloud Alibaba,全网疯传肝了30天,整出这份[分布式宝典:限流+缓存+通讯],秋招跳槽有望听说你很懂源码?Spring读懂了?还...

详解Java中的静态代理和动态代理

代理是一种设计模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。目的:为其他...

Java基础知识 - 静态代理/JDK动态代理/Cglib动态代理

1)代理的作用是为指定类构建代理类;1、指定类可能不能够直接被访问,所以在外层包一层代理类,让执行代理类方法;2、也有可能想在执行指定类的方法前后,做一些自己的事情,也可以使用代理类;2)使用哪种代理...

「Java基础06」java方法使用

目录1. 方法的定义调用1.1 无参方法1.2 有参方法1.3 有返回值方法1.4 方法的调用1.5 形参和实参2. 方法重载3. 方法的参数传递4. 程序中的关键字方法是将独立的代码块组织成一个成体...

Java错误排行:50种常见bug及如何避免它们(二)

11.“解析时到达文件末尾”当程序缺少右花括号(“}”)时,此错误消息通常在Java中出现。有时可以通过将其放在代码末尾来快速修复。public class mod_MyMod extends Bas...

Java对象中非空属性一键转Map,让你的代码飞起来

哈喽,大家好,我是木头左!引言在日常开发中,经常会遇到需要将一个Java对象中的非空属性提取出来,放到一个Map中的情况。这样的做法有很多好处,比如方便进行属性的查找、修改等操作,同时也能够提升代码的...