菜鸟学Java public static void main(String[] args) 是什么意思?

目录 1、经典程序解析2、包里面的多个类2.1 全限定名调用程序2.2 包名的层数2.3 类中main位置的选择2.4 不同包中类的调用 3、void位置返回值4、同一个包内的类调用5、public位置选择6、String[] args类型选择6.1 main方法6.2 非main方法 7、import调用包8、下载第三方库/框架包

1、经典程序解析

这是一个经典的Java程序,它使用了面向对象的编程风格:

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); }}

第一行代码:

public class HelloWorld {

这行代码定义了一个名为HelloWorld的公共类(public class),该类是程序的入口点。Java程序中的每个类都必须以一个公共类来定义。文件名必须与公共类的名称相同,并以.java作为文件扩展名。

注:String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。

public static void main(String[] args)

这行代码定义了一个公共静态方法(public static method)main,它是Java程序的起点。在程序执行时,从main方法开始执行。main方法是程序的入口,可以执行程序中的其他代码。

main方法的参数是一个字符串数组String[] args,它允许在命令行中传递参数给程序。args数组在程序运行时可以用来接收命令行参数。

这是 Java 程序的入口地址,Java 虚拟机运行程序的时候首先找的就是 main 方法。跟 C 语言里面的 main() 函数的作用是一样的。只有有 main() 方法的 Java 程序才能够被 Java 虚拟机运行,可理解为规定的格式。

对于里面的参数及修饰符:

public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样 Java 虚拟机就可以找到 main() 方法,从而来运行 javac 程序。static: 表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候 main() 方法也随着加载到内存中去。void :方法是不需要返回值的。main:约定俗成,规定的。String[] args:从控制台接收参数。

为什么是 String[] args,这个 args 是干嘛的?

String[] args 可以看出来它是一个数组。在命令行中比如运行 Test.class 文件,你可以这样写:

java Test runoob

相当于给数组传入了一个 runoob 字符串。也可以打印出来,可以作为简单的输入。

例如:

public class Test { public static void main(String[] args) { System.out.println(args[0]); }} $ javac Test.java$ java Test runoobrunoob

此处注意,main 是一个程序的入口,一个 java 程序运行必须而且有且仅有一个 main 方法。

args[0] 是你传入的第一个参数,args[1]是传入的第二个参数,以此类推。

String[] args 还有一种等价的写法: String... args

前者为数组形式, 后者为可变参数形式。

前者用得较多, 但是看到后者也应认识。

Java 程序利用 main 函数中 args 参数实现参数的传递(传递空格处理)

public class Test{ public static void main(String []args) { System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); }}

用控制台编译运行:

$ javac Test.java$ java Test aaa bbb ccc aaabbbccc

注意:三个参数之间用空格隔开!

如果要输出空格怎么办?

只需要在包含空格的参数上,使用双引号 "" 即可。

实例运行:

$ java Test aaa "b bb" cccaaab bbccc 2、包里面的多个类

一个包里面可以有多个java类吗?

是的,一个包(package)可以包含多个Java类。在Java中,包是一种组织代码的方式,它可以将相关的类和其他资源放在一起,使代码更有结构和可维护性。

一个包可以包含多个Java类文件,并且这些类可以相互引用和访问。这种组织结构有助于避免类名冲突,并使代码更易于组织和管理。

要在一个包中创建多个Java类,你可以将这些类放在同一个包目录下,并确保每个类的文件名与类名相匹配。例如,假设你有一个名为com.example的包,你可以在该包下创建多个Java类文件,如ClassA.java、ClassB.java等。

com/ example/ ClassA.java ClassB.java

在这个例子中,com.example是包的名称,ClassA.java和ClassB.java是位于该包下的两个Java类文件。

2.1 全限定名调用程序

在Java代码中引用包中的其他类时,你需要使用类的全限定名(fully qualified name),即包名加类名。例如,在ClassA.java中引用ClassB的话,你需要使用com.example.ClassB作为类的名称。

package com.example;public class ClassA { // 引用ClassB com.example.ClassB b = new com.example.ClassB(); // ...}

一个包可以包含多个Java类文件,并且这些类可以相互引用。这种组织方式有助于将相关的类组织在一起,提高代码的可读性和可维护性。

2.2 包名的层数

在上面的结构中,com.example是一个包名,需要限定包名的层数吗?可不可以没有example这一层?

在Java中,包名是按照一定的命名约定来组织和识别代码的。包名通常以域名的倒序形式命名,以确保包名的唯一性和可读性。

对于包的层数并没有硬性的限制要求,你可以根据自己的需要来组织包的层次结构。每个层级在包名中通过.进行分隔。

在你提供的示例中,com.example是一个包名,其中com是顶级包,example是子包。这种层次结构有助于将相关的类组织在一起,并提供更好的可读性和可维护性。当多个开发者共同开发项目时,按照这种约定命名包可以减少类名冲突的可能性。

根据Java的命名约定,建议使用类似域名的包名结构,但并不是强制要求。你可以根据你的项目需求和个人喜好来命名包。

因此,可以有不同的包层级结构,如只有一个层级的包名com、两个层级的包名com.example,或者


比丘资源网 » 菜鸟学Java public static void main(String[] args) 是什么意思?

发表回复

提供最优质的资源集合

立即查看 了解详情