Java基础-package包机制

关于java语言当中的包机制:

1.包又称为package,java中引入package这种语法机制主要是为了方便程序的管理。不同功能的类被分门别类放到不同的软件包当中,查找比较方便,管理比较方便,易维护

2.怎么定义package?

在java源程序的第一行上编写package语句

package只能编写一个语句

语法结构:

package 包名;

3.包名的命名规范:

公司域名倒序 + 项目名 + 模块名 + 功能名;

采用这种方式重名的几率比较低。因为公司域名具有全球唯一性。

例如:

com.bjheima.oa.user.service;

org.apache.tomcat.core;

4.包名要求全部小写,包名也是标识符,必须遵守标识符的命名规则

5.一个包对应一个目录

6.使用了package机制之后,应该怎么解释?怎么运行?

使用了package机制之后,类名不再是Test01了。类名是:com.bjheima.java.newstudy.Test01

编译:javac java源文件路径(在硬盘上生成一个class文件:Test01.class)

手动方式创建目录,将Test01.class字节码文件放到指定的目录下

运行:java com.bjheima.javase.newstudy.Test01

另一种方式编译(编译 + 运行):

编译:

javac -d 编译之后存放路径 java源文件的路径

例如:将F:\Hello.java文件编译之后放到C:\目录下

javac -d C:\ F:\Hello.java

javac -d . *.java

将当前路径中*.java编译之后存放到当前目录下

运行:JVM的类加载器ClassLoader默认从当前路径下加载。

保证Dos命令窗口的路径先切换到com所在的路径,执行:

java com.bjheima.javase.newstudy.Test01

7.import语法格式:

import 类名;

import 包名.*

import语句需要编写到package语句之下,class语句之上。

示例代码01:

package com.bjheima.newstudy.packagetest;

public class Test01{
	
	public static void main(String[] args){
		System.out.println("Test01's main method excute!");
	}
}

示例代码02:

package com.bjheima.newstudy.packagetest;
public class  Test02{
	
	public static void main(String[] args){
		   
		   //完整类名是: com.bjheima.newstudy.packagetest.Test01
		   com.bjheima.newstudy.packagetest.Test01 t = new com.bjheima.newstudy.packagetest.Test01();
		   System.out.println(t);
		   
		   //可以省略包名,因为Test01和Test02在同一个软件包当中
		   Test01 tt = new Test01();
		   System.out.println(tt);
	}
}

运行结果:
在这里插入图片描述
示例代码03:

package com.bjheima;

public class Test03{
	
	public static void main(String[] args){
		
		 /*  
		 创建Test01对象
		 以下代码编译器错误:当省略包名之后,会在当前包下找Test01
		 实际上编译器去找:com.bjheima.Test03了。这个类不存在。
		 Test01 tt = new Test01();
		  System.out.println(tt); */
		  
		  //修改以上的错误
		  //包名不要省略,添加包名
		  com.bjheima.newstudy.packagetest.Test01 tt = new com.bjheima.newstudy.packagetest.Test01();
		  System.out.println(tt);
	}
}

运行结果:
在这里插入图片描述示例代码03:

package org.apache;

//import语句用来完成导入其它类,同一个包下的类不需要导入,不在同一个包下需要手动导入。

import com.bjheima.newstudy.packagetest.Test01;
public class Test04{
	
	public static void main(String[] args){
		
		com.bjheima.newstudy.packagetest.Test01 tt = new com.bjheima.newstudy.packagetest.Test01();
		System.out.println(tt);
		
		Test01 x = new Test01();
		System.out.println(x);
		
		Test01 y = new Test01();
		System.out.println(y);
		
		//java.lang.*;不需要手动导入,系统自动导入
		//lang:language语言包,是java语言的核心类,不需要手动导入
		String s = "abc";
		System.out.println(s);
		
		//直接编写以下代码编译错误,因为Date类没有找到
		Date d = new Date();
		
		java.util.Date d = new java.util.Date();
		
	    //使用import语句之后:import java.util.Date;
		//Date d = new Date();
	}
}

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五度鱼学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值