面向对象 - Java包

返回目录

Java包(package)

    • java包:包机制是Java中管理类的重要手段,开发中会遇到大量同名的类,通过包可以很容易解决类重名的问题,也可以实现对类的有效管理,包对于类,相当于Windows中文件夹对于文件的作用。
      // package命名格式举例
      // 由于java的开源性,为了防止与他人包冲突,可以将域名倒着写,再加上项目名、模块名等易识别且不冲突d的命名方式
      // 例如我的域名 hzyis.me,开发一个java游戏项目test
      package me.hzyis.game.test;
        
      // package通常是类的第一句非注释性语句
      package me.hzyis.game.test;
      public class Test {
        public static void main(String[] args){
          System.out.println("测试包");
        }
      }
      

      me.hzyis和me.hzyis.game,这两个包没有包含关系,是两个完全独立的包,只是逻辑上看起来后者是前者的一部分。

 

JDK常用包

    • jdk常用包:Jdk中本身包含了很多包,不同的包中有许多类,可以随时导入调用
      包名称 说明
      java.ang 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能
      java.awt 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
      java.net 包含执行与网络相关的操作的类
      java.io 包含能提供多种输入/输出功能的类
      javautil 包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数

导入类(import)

    • 导入类:如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。
      Java会默认导入java.lang包下所有的类,因此这些类可以直接使用。
      如果导入两个同名的类,只能用包名+类名来显示调用相关类:

      java.util.Date date = new java.util.Date();
      // 导入其他包的类
      package me.hzyis.test;
      import me.hzyis.test2.Test2; //导入me.hzyis.test2包中的Test2类
      public class Test {
        public static void main(String[] args){
          Test2 t = new Test2();
          t.abc(); //调用me.hzyis.test2.Test2类中的方法abc
        }
      }
       
      ================================= 分割线 =================================
      
      package me.hzyis.test2;
      // 导入java.util包中所有类,也可以使用import java.util.Scanner只导入Scanner
      import java.util.*; //导入所有类会降低编译速度
      public class Test2 {
        public void abc() {
          Scanner s = new Scanner(System.in);
          System.out.println("请输入姓名:");
          String name = s.nextLine();
          System.out.println("你的姓名:"+name);
        }
      }
      
    • 静态导入(static import):静态导入是在JDK1.5新增加的功能,其作用是用于导入指定类的静态属性,这样可以直接使用静态属性。
      package me.hzyis.test;
      import static java.lang.Math.PI; //导入Math类的PI属性
      public class Test{
        public static void main(String [] args){
          System.out.println(PI);
        }
      }