Java基础教程之包(package)

Java基础教程之包(package)

在 Java 中,包(package)是一种用于组织及管理类、接口及其他资源的机制。包可以看成是文件夹,类则是文件,利用类放在包中,可以更好地组织和访问代码。

包的定义

在 Java 中,一个包是一组相互关联的 Java 类的集合。

当需要用到某个类时,可以指定其完全限定名(包括包名称和类名)来引用该类,例如:

java.util.ArrayList myList = new java.util.ArrayList();

可以看到,类 ArrayList 必须包含在 java.util 包中,否则编译器会无法找到它。

类似于文件夹一样,Java 包是树状结构的。包名就是文件夹名,可以包含多层子包。

声明包名

Java 编译器要求每个源文件必须属于一个包。可以使用 package 声明来指定包名,放在源文件的第一行,例如:

package com.example.mypackage;

文件名必须和类名相同,例如 MyClass 类所在的源文件名必须是 MyClass.java。

如果一个类没有包名,这个类默认属于一个无名的默认包,不利于代码管理和重用,因此我们平时编写的类都应该有所属的包。

导入包

要使用其他包的类,必须在该类文件开头使用 import 语句导入所需包。例如:

import java.util.ArrayList;

这个语句表示我们需要在代码中使用 ArrayList 类,它属于 java.util 包。可以同时导入多个类:

import java.util.ArrayList;
import java.util.Collections;

可以使用 * 通配符导入整个包(注意通配符只能用于类名,不能用于包名),例如:

import java.util.*;

这个语句表示我们需要使用 java.util 包下的所有类。

示例一

以下示例演示了如何创建一个名为 com.example.hello 的包,以及如何导入 java.util 包下的 ArrayList 和 Date 两个类。

package com.example.hello;

import java.util.ArrayList;
import java.util.Date;

public class HelloWorld {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Hello");
        list.add("World");
        System.out.println(list + " " + new Date());
    }
}

以上代码中,我们创建了一个 HelloWorld 类并使用了 ArrayList 和 Date 两个类。需要注意的是,在这里 ArrayList 和 Date 类都没有使用全限定名,因为它们已经被导入到类文件中,可以直接使用。

示例二

以下示例演示了如何在包内部创建子包,并使用子包内的类。

在 com.example.hello 包中创建一个名为 utils 的子包,HelloWorld 类使用该子包下的 StringUtils 类。

package com.example.hello;

import com.example.hello.utils.StringUtils;

public class HelloWorld {
    public static void main(String[] args) {
        String s = "Hello World";
        System.out.println(StringUtils.reverse(s));
    }
}

然后我们还需要创建 com.example.hello.utils 包,并在其中创建 StringUtils 类实现字符串翻转的功能。实现代码如下:

package com.example.hello.utils;

public class StringUtils {
    public static String reverse(String s) {
        return new StringBuilder(s).reverse().toString();
    }
}

在 HelloWorld 类中,我们使用 import com.example.hello.utils.StringUtils; 导入了字符串翻转的方法。其实,完全限定名是 com.example.hello.utils.StringUtils,也可以这样使用:

String s = "Hello World";
System.out.println(com.example.hello.utils.StringUtils.reverse(s));

总结

包是 Java 编程中重要的组织和管理机制。定义包,需要使用 package 关键字。使用包,需要使用 import 关键字。包名的命名规范遵循域名反转的原则。当一个包需要被访问时,需要在包级别上设置访问权限。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础教程之包(package) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 浅谈Java(SpringBoot)基于zookeeper的分布式锁实现

    浅谈Java(SpringBoot)基于zookeeper的分布式锁实现 分布式系统中的一个关键问题就是确保同一时刻只有一个进程对共享资源进行访问,否则就会导致数据一致性问题。为了解决这个问题,一种常见的解决方案是使用分布式锁。本文将介绍如何基于zookeeper实现分布式锁。 使用场景 如下场景需要使用分布式锁: 数据库事务锁的资源互斥访问 限流器计数器 …

    Java 2023年5月19日
    00
  • springboot拦截器过滤token,并返回结果及异常处理操作

    下面我将为你详细讲解如何使用Spring Boot实现拦截器过滤Token并返回结果及异常处理操作。 什么是拦截器及Token认证 在Spring Boot中,拦截器是一种非常常用的组件,它可以拦截请求,进行一些处理,并执行相应的操作。Token认证是指在用户登录成功后,服务器会生成一个Token并返回给客户端,客户端在以后的请求中携带这个Token用于鉴权…

    Java 2023年5月19日
    00
  • java基础之数组常用操作总结(必看篇)

    Java基础之数组常用操作总结(必看篇) 一、什么是数组 数组是一种容器,用于存储固定大小的同类型元素序列。在Java中,数组是用连续的内存空间来存储相同类型的数据。 二、数组的定义 Java中使用[]来声明一个数组类型,且数组必须被初始化为一定数量的元素。数组的长度是不可变的。 dataType[] arrayName; // 声明数组 arrayName…

    Java 2023年5月26日
    00
  • SpringBoot浅析安全管理之Spring Security配置

    让我来详细讲解一下“SpringBoot浅析安全管理之Spring Security配置”的完整攻略。 概述 Spring Security是一个功能强大且灵活的框架,它为我们提供了许多功能,包括身份验证,授权,安全性配置等。本篇文章将介绍如何在Spring Boot项目中配置Spring Security。 依赖项 首先,请确保您已经添加了Spring S…

    Java 2023年5月20日
    00
  • 二十分钟 教你Ruby快速入门 图文教程第1/4页

    下面进行对“二十分钟 教你Ruby快速入门 图文教程第1/4页”的完整攻略的详细讲解。 攻略内容 1. 环境搭建 首先,你需要在自己的电脑中安装 Ruby 程序,可以到 Ruby官网 下载相应的安装包,根据自己电脑的操作系统选择适合自己的安装程序。 安装完成后,可通过命令行工具输入 ruby -v 进行检查,若返回了相应版本号则说明安装成功。 2. Hell…

    Java 2023年5月26日
    00
  • 浅谈java中定义泛型类和定义泛型方法的写法

    下面是“浅谈Java中定义泛型类和定义泛型方法的写法”的完整攻略。 一、泛型类的定义和使用 1.1 什么是泛型 在Java中,泛型就是参数化类型,即在定义类、接口或方法时使用类型形参,这些类型形参在使用时才被具体化。使用泛型能够使代码更加通用,安全,简单和易于维护。 1.2 如何定义泛型类 使用尖括号定义类型形参,如<T>。在类的定义中将类型形参…

    Java 2023年5月20日
    00
  • 解决spring security中遇到的问题

    解决 Spring Security 中遇到的问题攻略 Spring Security是Spring框架中应用广泛的安全框架,但在使用中经常会遇到一些问题。本攻略将从常见问题入手,为你提供解决方案。 问题一:认证授权失败 在使用Spring Security的过程中,经常会遇到认证授权失败的问题。处理这类问题需要对 Spring Security 的认证流程…

    Java 2023年6月3日
    00
  • Scala小程序详解及实例代码

    Scala小程序详解及实例代码 简介 Scala是一种基于JVM的多范式编程语言,可以进行面向对象编程和函数式编程,具有简洁、优雅、高效的特性。 我们将在本文中介绍Scala小程序的基本概念以及实例代码。 程序结构 Scala小程序的程序结构如下: // 单行注释 /* * 多行注释 */ object HelloWorld { /* 这是我的第一个 Sca…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部