• Java基础-package包机制


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

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

    2.怎么定义package?

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

    package只能编写一个语句

    语法结构:
    
    package 包名;
    
    • 1
    • 2
    • 3

    3.包名的命名规范:

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

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

    例如:
    
    com.bjheima.oa.user.service;
    
    org.apache.tomcat.core;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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
    
    • 1
    • 2
    • 3

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

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

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

    java com.bjheima.javase.newstudy.Test01

    7.import语法格式:

    import 类名;
    
    import 包名.*
    
    import语句需要编写到package语句之下,class语句之上。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例代码01:

    package com.bjheima.newstudy.packagetest;
    
    public class Test01{
    	
    	public static void main(String[] args){
    		System.out.println("Test01's main method excute!");
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    示例代码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);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    运行结果:
    在这里插入图片描述
    示例代码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);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    运行结果:
    在这里插入图片描述示例代码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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

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

  • 相关阅读:
    Linux命令(120)之tcpdump
    java架构知识点-中间件(学习笔记)
    Data Analysis With Python
    【C#设计模式】简单工厂模式+实例理解
    【世界历史】第一集——石器时代的人们
    Springboot初步开发网站(不接数据库,简单增删改查实现)
    【Web前端】HTML/CSS一文详解
    提升提测质量之研测共建 | 京东云技术团队
    适合大学生的笔记软件评测:云笔记.离线笔记、手写笔记、写作软件
    使用vim对比两个文件
  • 原文地址:https://blog.csdn.net/qq_46096136/article/details/126149101