【Java】包package的概念和理解以及访问权限

本文详细介绍了Java中的包(package)概念,包括如何创建和声明包,使用import关键字导入,以及包的调用方式。包的主要作用是组织类,避免命名冲突,并提供访问权限控制。此外,还讲解了不同访问权限修饰符如public和private的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 包(package)

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

如何创建包

创建包的时候,你需要为这个包取一个合适的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。

包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。

如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中。

如何实现包

通过 package 关键字可以声明一个包,例如:

package edu.xalead;

必须将 package 语句放在所有语句的前面,例如:

package p1.p2;

public class Test {
	public static void main(String[] args) {
		
		System.out.println("大家好!");
		
	}
}

表明 Test 类位于 p1.p2 包中。

import 关键字

为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 "import" 语句可完成此功能。

在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:

import package1.package2….classname*;

类文件中可以包含任意数量的 import 声明。import 声明必须在包声明之后,类声明之前。

包的调用

在Java中,调用其他包中的类共有两种方式。

设置一个公共包:

package p0;
public class Animal {
	private String name;  
    public Animal(String Name) { 
        this.name = Name; 
    } 
    public void eat(){ 
        System.out.println(name+"正在吃饭"); 
    }
    public void sleep(){
        System.out.println(name+"正在睡觉");
    }
}

1) 在每个类名前面加上完整的包名

package p1.p2;

public class Test {
	public static void main(String[] args) {
		p0.Animal s = new p0.Animal("大黄狗");
		s.eat();
		s.sleep();
	}
}

 

2) 通过 import 语句引入包中的类

程序举例:

package p1.p2;

import p0.Animal;

public class Test {
	public static void main(String[] args) {
	    Animal s = new Animal("大黄狗");
		s.eat();
		s.sleep();
	}
}

包的作用

  • 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  • 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

包的访问权限

被声明为 public 的类、方法或成员变量,可以被任何包下的任何类使用,而声明为 private 的类、方法或成员变量,只能被本类使用。

权限修饰符

 publicprotected默认private

同一类中

   ★

   ★  ★  ★

同一包子类,其他类

   ★   ★  ★ 
不同包子类   ★   ★  
不同包其他类   ★   

没有任何修饰符的类、方法和成员变量,只能被本包中的所有类访问,在包以外任何类都无法访问它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值