1. java.lang:基本类,如 StringMathObject(默认导入)
  2. java.util:集合框架、日期、工具类
  3. java.io:输入输出相关类
  4. java.net:网络编程相关类
  • 用户自定义包

可以自己创建包,讲类组织起来:

代码语言:javascript

AI代码解释

package myapp.utils;

public class Helper {
    // 辅助方法
}

包的命名规则

  • 通常以的方式命名,如:com.example.project
  • 使用小写字母
  • 避免使用Java的保留字

注意:Java源文件的包名,一定要和文件的目录结构保持一致!!!

假设我写了一个类:

代码语言:javascript

AI代码解释

package com.example.utils;

public class Tool {
    // 工具类
}

那么它的文件就必须放在下面目录结构中:

代码语言:javascript

AI代码解释

项目目录/
└── com/
    └── example/
        └── utils/
            └── Tool.java

当javac Tool.java被编译后的字节码Tool.class也会被放在:

代码语言:javascript

AI代码解释

com/
└── example/
    └── utils/
        └── Tool.class

如果你把上面的 Tool.java 放在根目录下,而它的包名还是 com.example.utils,那么编译时就会报错:

代码语言:javascript

AI代码解释

Tool.java:1: 错误: 程序包 com.example.utils 不存在
package com.example.utils;

除非你自己用命令行指定好 classpath 和目录结构,但一般来说,目录结构必须与包名完全对应。

使用包(import)

  • 导入单个类

代码语言:javascript

AI代码解释

import java.util.ArrayList;
  • 导入整个包

代码语言:javascript

AI代码解释

import java.util.*;
  • 无需导入的包

java.lang 包是默认导入的,比如 String, System, Math 等类可以直接使用。

如何创建和使用自定义的包

在 animals 包中加入一个接口(interface):

代码语言:javascript

AI代码解释

/* 文件名: Animal.java */
package animals;
 
interface Animal {
   public void eat();
   public void travel();
}

在同一个包中加入该接口的实现:

代码语言:javascript

AI代码解释

package animals;
 
/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{
 
   public void eat(){
      System.out.println("Mammal eats");
   }
 
   public void travel(){
      System.out.println("Mammal travels");
   } 
 
   public int noOfLegs(){
      return 0;
   }
 
   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
}

什么是反射?

反射是 Java 提供的一种机制,它允许程序在运行时查看和操作类的结构。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐