【Java 学习】详细讲解—包和导包、Scanner类、输入源

1. 包

1.1 包的概念

想象一下,你和你的同学们来自不同的家庭,每个家庭都有自己的生活方式和空间。如果这些家庭都住在同一个屋檐下,那么个人的习惯和空间就会相互干扰。同理,在软件开发中,不同的程序也需要有各自的“空间”以保持独立性,这就是包(Package)的作用。包可以被看作是一组文件夹,它们允许在不同的文件夹中存在同名的文件,从而实现隔离。

1.2 包的功能

包(Package)是一种将类和接口组织在一起的机制,具有以下主要功能:

  1. 命名空间管理
    包提供了命名空间管理的功能,避免了类名的冲突。通过将类分配到不同的包中,可以确保每个类名的唯一性。例如,不同的项目中可能都存在名为Logger的类,但通过分配到不同的包中,可以避免命名上的冲突。

  2. 访问控制
    包还提供了访问控制的功能。通过使用不同的访问修饰符(如public、protected、默认(无修饰符)和private),可以控制类、方法和变量的可见性。例如,一个类的成员可以对同一包中的其他类可见,但对其他包中的类则不可见。

  3. 代码组织
    包有助于将相关的类和接口组织在一起,使代码更易于管理和维护。通常,一个包会包含一组功能相似或相关的类和接口。例如,java.util包包含了多种实用工具类,如List、Map、Set等。

1.3 src文件夹

src文件夹(或目录)是“source”的缩写,用于存放项目的源代码文件。这个文件夹是项目的核心部分,包含了所有的业务逻辑、类定义、函数实现等代码文件。

项目的标准目录结构如下:
项目标准目录结构

子文件夹组织:
src文件夹通常会进一步细分为多个子文件夹,以更好地组织代码。例如:

  • main/java:存放主要的Java源代码文件。
  • main/resources:存放资源文件,如配置文件、静态文件等。
  • test/java:存放测试代码文件。
  • test/resources:存放测试资源文件。

1.4 创建包

包是在src文件夹下创建的。
创建包步骤一
接着创建包
创建包步骤二

包名通常是小写的,并且通常使用公司域名的逆序来命名,以确保全局唯一性。

将图片中的package_name更改为:com.example.myapp

这个包名com.examplemyapp是一个文件的名字吗?

我们来看一下src文件夹中是否有com.example.myapp文件。
检查文件存在

src文件夹中只有com文件夹,没有com.example.myapp文件。其实.将包的名字分隔成了三个嵌套的文件夹。
包名分隔
com.example.myapp文件夹中创建Myclass类。
创建类

类创建完成
在Java源文件的顶部,使用package关键字来指定包名。

目前该包的目录结构为:
目录结构

2. 导包

2.1 导包的概念

“导包”指的是使用import语句将一个类或接口从一个包中引入到当前的编译单元中,以便在代码中可以直接使用这些类或接口,而不需要每次都写完整的类名或接口名。

导包的作用包括:

  • 简化代码
    导包可以让你在代码中直接使用类或接口的简单名称,而不是完整的类名或接口名。这使得代码更简洁、易读。例如,java.util.ArrayList可以简化为ArrayList。

  • 避免命名冲突
    当两个不同的包中有同名的类或接口时,通过导包可以明确指定你使用的是哪个包中的类或接口。例如,java.util.Date和java.sql.Date都有Date类,通过导包可以区分它们。

2.2 导包的语法

导入单个类或接口

import package_name.ClassName;

package_name:包的名称。
ClassName:类的名字。

导入整个包中的所有类和接口

import package_name.*;

package_name:包的名称。
*:表示该包下的所有类。

静态导入(Java 5 及以上)
静态导入允许你直接使用类中的静态成员(如静态方法和静态字段),而不需要类

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4523.html

(0)
LomuLomu
上一篇 2024 年 12 月 27 日 下午9:14
下一篇 2024 年 12 月 27 日 下午10:15

相关推荐

  • 2024年最新MacBook苹果电脑安装JDK8、JDK11、JDK17、JDK22教程,配置环境变量 + 快速切换JDK版本

    本帖发布日期:2024年01月26日,全网最新教程整理。 2024年02月01日更新:环境变量新增jdk17配置代码。 2024年05月13日更新:记录解决添加maven后不能自动切换jdk版本。 2024年06月16日更新:友情提醒:如果是m芯片,推荐下载arm版本。 2024年08月08日更新:新增JDK22版本安装。 2024年11月28日更新:更新排…

    2024 年 12 月 31 日
    43200
  • 系统突遇百倍流量冲击?资深架构师的应对策略全解析

    “当你负责的核心系统某天突然面临百倍流量冲击,该如何紧急应对?”——这并非虚构场景,而是某科技公司面试中的真实考题。当候选人回答“简单扩容”时,面试官立即追问:“若资源不足或数据库崩溃呢?”瞬间暴露出技术方案的局限性。这类问题如同技术照妖镜,能精准检验工程师的系统性思维。仅靠“增加服务器”这类条件反射式的回答,往往暴露架构认知的短板。完整的解决方案需融合流量…

    2025 年 5 月 13 日
    5100
  • MySQL高可用架构:打造数据库的”全天候守护系统”

    MySQL高可用架构:打造数据库的”全天候守护系统” 🌐🛡️ 如同现代化城市离不开持续运转的电力网络和应急响应体系,当代应用系统同样需要具备”零中断”特性的数据库支撑…本文将带您深入MySQL的”高可靠”技术领域,揭秘如何为数据存储构建完善的”不间断运行”机制! 高可用性概念解析 🔍 MySQL高可用性代表着一整套系统设计原则与工程技术,其核心目标是保障…

    2025 年 5 月 12 日
    5200
  • JAVA 图形界面编程 AWT篇(1)

    前言 为了应对JAVA课设,小编走上了java的图形界面编程的道路,通过博客分享自己的学习历程,并进行笔记的记录。 AWT(Abstract Window Toolkit)介绍 AWT(抽象窗口工具包)是 Java 最早的图形用户界面(GUI)框架之一,主要用于构建桌面应用程序的图形界面。最初在 JDK 1.0 版本中作为 Java GUI 的核心库引入,旨…

    未分类 2024 年 12 月 30 日
    28100
  • 微服务篇-深入了解索引库与文档 CRUD 操作、使用 RestCliet API 操作索引库与文档 CRUD(Java 客户端连接 Elasticsearch 服务端)

    🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 索引库操作 1.1 Mapping 映射属性 1.2 索引库的 CRUD 1.2.1 创建索引和映射 1.2.2 查询索引库 1.2.3 修改索引库 1.2.4 删除索引库 2.0 文档操作 2.1 新增文档 2.2 查询文档 2.3 删除文档 2.4 修改文档 2.4.…

    2024 年 12 月 27 日
    16300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信