目录

1.4-java入口函数Main和package功能

1.4-java入口函数Main和package功能

java入口函数Main和package功能


文章目录


前言

上一节介绍了使用idea编写一个最简单的java程序。

这一节简要介绍:main函数,package的概念


一、Main函数

main函数,是java程序运行的入口函数,main函数的写法为:

public static void main(String[] args) {
//程序代码
}

如果你代码中没有main函数,程序将不能独立的运行起来。

1、在idea中新建工程

https://i-blog.csdnimg.cn/blog_migrate/ea9f27feb294bbba4734abb96ed852df.png

在src目录点右键,新建java class JavaGrammar.java

内容为:

public class JavaGrammar {
    public static void main(String[] args) {
        System.out.println("Hello,你好!");
    }
}

鼠标右键 运行(或者按 ctrl + shift + F10):

https://i-blog.csdnimg.cn/blog_migrate/c207ee7c017751a49ee20d68f97ad2ff.png

能正常运行,打印出:

https://i-blog.csdnimg.cn/blog_migrate/414b59ca7b7ebca322c7b01f5ee27b5f.png

2、没有main函数会是什么样

现在,我们把main改成 xxx,

public class JavaGrammar {
    public static void xxx(String[] args) {
        System.out.println("Hello,你好!");
    }
}

再次鼠标右键,发现,没有 run *** 的选项,这是因为 idea没有找main函数,所以没有提供运行的操作。

打开cmd,进入JavaGrammar.java所在的目录,

执行 :javac JavaGrammar.java

https://i-blog.csdnimg.cn/blog_migrate/0e4426c5b2570a29f7d3f250927b15ef.png

如果出现以上错误(中文字符编码问题),则用记事本打开,另存为,编码选ANSI,覆盖保存。

https://i-blog.csdnimg.cn/blog_migrate/dd5fa0eb61ad3b9f0d87d0cc43aa9996.png

再次执行javac JavaGrammar.java编译这个文件。

然后执行:java JavaGrammar

https://i-blog.csdnimg.cn/blog_migrate/7ab2826ca58432447636df053aa3854c.png

可见,使用java的命令执行没有main函数的程序,是不能成功的,会提示找不到main方法。

到此,相信各位对main函数是java程序运行的入口函数,有一定的体会了。

二、体会package的作用

将上面的JavaGrammar.java文件编码格式用记事本打开,另存为 utf-8格式,删除刚才生成的JavaGrammar.class文件,将刚才修改的xxx,改回main,idea的工程结构如下:

https://i-blog.csdnimg.cn/blog_migrate/d937da9d17d4bdfd095ff1b4587d9f42.png

按 ctrl + shift + F10 运行,

在硬盘上找到JavaGrammar.java,和JavaGrammar.class的位置,分别为:

E:\new\1.4\1.4-JavaGrammar\src
E:\new\1.4\1.4-JavaGrammar\out\production\1.4-JavaGrammar

在idea的src目录,右键-new-package,新建一个包,名称输入com然后按回车,再将JavaGrammar.java拖动到com里,点refactor。

https://i-blog.csdnimg.cn/blog_migrate/4534a35b2eddeda4258b5ddc414faff8.png

https://i-blog.csdnimg.cn/blog_migrate/a352755568f8111cdbbb604f49f98d81.png

package com;

public class JavaGrammar {
    public static void main(String[] args) {
        System.out.println("Hello,你好!");
    }
}

再次按 ctrl + shift + F10 运行(idea会先执行编译,然后再运行),在硬盘上找到JavaGrammar.java,和JavaGrammar.class的位置,分别为:

E:\new\1.4\1.4-JavaGrammar\src\com
E:\new\1.4\1.4-JavaGrammar\out\production\1.4-JavaGrammar\com

可以发现,源代码的位置,和编译后的字节码文件的位置,都根据包名新增了一级目录。

在idea中,再次建一个包,选中src,右键-new-package,

输入:com.my.first 回车

然后将JavaGrammar.java拖到first下,可见第一行的包名发生了变化。

https://i-blog.csdnimg.cn/blog_migrate/ca7bde4f7a6ee6cde77babb02d98c4d3.png

运行程序,再次检查文件在硬盘上的位置,发现 package com.my.first 将产生3个目录层级,

https://i-blog.csdnimg.cn/blog_migrate/c5a847704980cb1f2ecbe58e769b2805.png

https://i-blog.csdnimg.cn/blog_migrate/c03f6ffd160efcdd2ed8e3e853bd8faa.png

做完以上操作,应该能体会到java语言中包的作用:将代码按目录层级进行分类管理。

包的命名通常是根据公司的域名反过来写,再加上功能模块名组成,比如 阿里巴巴数据库连接池工具druid的包命名为:com.alibaba.druid.*