JAVA(十六)PACKAGE 包

包的概念

我们知道JAVA是由类组成的,其实我们不知道的是JAVA是由包组成的,包里包含了类。

Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名,这才是唯一确定一个类路径的写法,不同包中的类名允许重复。包名推荐使用倒置的域名,例如org.apache

包就是文件夹。

这样我们就对包的作用有了一个较为清晰的认知,因为我们创建文件夹的目的就是管理文件,所以在 Java 中,包就是用来管理不同类和接口的。以及处理同名文件,不同路径中的同名文件不会冲突,在 Java 中,不同包中的同名类也不冲突。与文件中的目录系统一样,Java 中的包使用的也是这种树形的结构。

8f9c7c1438f947a6aad8650016324890.png

8a90f38486a84e45b835459639c3ff51.png

 

//包名
package hello;
 
public class Person {
    // 包作用域:
    public void hello() {
        System.out.println("Hello!");
    }
}

新建一个包,src-new-package com.st.course

包相当于文件夹 com是一个文件夹,st是一个文件夹,course是一个文件夹

在Java中,包主要有以下用途

包允许将类组合成较小的单元 (人呆在房子里),有助于避免命名冲突 (一个房子里的人不重名)

包允许在更广的范围内保护类、数据和方法 (外面的人不能随意访问房间的人)

包可以是类、接口和子包的集合(房子里有房间,房间就是子包)

 

package 包命名;

Java 包的命名规则如下:

1)包名全部由小写字母(多个单词也全部小写)

2)如果包名包含多个层次,每个层次用“.”分割。

3)包名一般由倒置的域名开头,比如 com.baidu,com.company.region.package不要有 www。

4)自定义包不能 java 开头

在idea中 包中创建类,类中就直接带上了包名package;

在一个类文件中的关键字package,import,class出现的顺序是 package import class

不同的包里可以放相同的类

dd5346537c7a479383d4efc547ae83f7.png

控制权限

包与包之间有控制访问权限的,不同包之间,对方法和属性的访问权限,比如类的访问控制,只能是空或者 public

963a3577915b4fed80a8bab64dc15211.png

 包名与路径

包名实际上就是路径,但是中间不使用斜杠或者反斜杠分割,而是使用 . 分隔。

c5f72bf550d54513a9ab80b863824686.png

Import 关键字

 

Java 引入了 import 关键字,import 可以向某个 Java 文件中导入指定包层次下的某个类或全部类。

import 语句位于 package 语句之后,类定义之前。一个 Java 源文件只能包含一个 package 语句,但可以包含多个 import 语句。

导入包中的类 使用import,加包名+类名,import关键字作为Java源文件的第一条非注释性语句,指明该源文件定义的类所有的包。

import com.st.Student;

我们前面学的Arrays.toString我们看到最上面就是导入了包

 int[] a = {1,2,3};

Arrays.toString(a);

ddcc3acbb79e43dea8a756665c8cc504.png

练习使用idea在src下创建一个包,包名为com.st.couse01在该包下新建一个Car 类

在src下创建一个包com.st.test. 在该包下创建一个Test类

在Test类中导入com.st.couse01中的类。在main方法中new Car类

默认导入包
Java 默认为所有源文件导入 java.lang 包下的所有类,因此前面在 Java 程序中使用 String、System 类时都无须使用 import 语句来导入这些类。但对于 Arrays 类,其位于 java.util 包下,则必须使用 import 语句来导入该类。

相同类名处理
在一些极端的情况下,import 语句也帮不了我们,此时只能在源文件中使用类全名。例如,需要在程序中使用 java.sql 包下的类,也需要使用 java.util 包下的类,则可以使用如下两行 import 语句:

import java.util.*;

import java.sql.*;

代码中强制用全路径来声明需要使用的类

java.sql.Date d = new java.sql.Date();

 

系统包

Java SE 提供了一些系统包,其中包含了 Java 开发中常用的基础类。在 Java 语言中,开发人员可以自定义包,也可以使用系统包,常用的系统包

60062ee1954d492cbf0c23051fe3f033.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫1982

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值