Java学习总结——包及访问权限

本文介绍了Java中的包和访问权限,包括包的概念、导入、常见JDK包,以及类成员的访问控制权限(private、default、protected、public)。此外,还讲解了Java的命名规范,jar命令的使用,以及单例和多例设计模式的应用。
摘要由CSDN通过智能技术生成

拾捌——包及访问权限

包是一个文件夹,它是类的一种特殊的性质,可以更合理地管理大量的类文件,设置他人对类成员的访问权等。

在用 Java 开发大型项目时,通常要把类分门别类地存到文件里,再将这些文件一起编译执行,这样的程序代码将更易于维护。同时在将类分割开之后,对于类的使用也就有了相应的访问权限。

一、包的概念及使用

1.包( package )的基本概念

所谓的包( package )指的就是一个文件夹,即在不同的文件夹之中可以保存同名的类文件。

包的使用方法:在类或接口的最上面一行加上 package 的声明。通常包全部用小写字母命名。

package 的声明方法如下。

        package paceage名称[.package名称2.package名称3……];

程序中如果有 package 语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条 package 语句。

经过 package 的声明之后,同一文件内的接口或类就都会被保存在相同的 package 中。

包的名字有层次关系,各层之间以点分隔。包层次必须与 Java 开发系统的文件系统结构相同。

若包声明如下:package java.awt.a,则文件中的接口和类都存放在 …java\awt\a 目录下。

举例:

//package的使用
package demo.java;	//声明package
class Person
{
	public String talk()
	{
		return "Person→talk()";
	}
}

class TestPackage
{
	public static void main(String[] args)
	{
		System.out.println(new Person().talk());
	}
}

2.包的导入

使用包可以将功能相似的若干类保存在一个文件目录之中,但是这样一来就有可能出现包之间的互相访问问题,当一个程序需要其他包中类的时候可以通过 import 完成导入操作。package 导入的方法如下:

        import package 名称.类名称;

若某个类需要被访问时,则必须把这个类公开出来,即此类必须声明成 public。通过 import 命令,可将某个 package 内的整个类导入,后续程序可直接使用类名称,而不用再写上被访问的 package 的名称。

若在不同的 package 中存在相同类名的 public 类,若要访问某个 public 类的成员时,在程序代码内必须明确地知名 “ 被访问package的名称.类名称 ”。

如:

package demo.java.a;    //声明package
public class Person
{
    public String talk()    //类中的方法
    {
        return "Person→talk()";    //返回一串字符串
    }
}
//声明一个 demo.java.b包,并调用demo.java.a中的类方法
package demo.java.b;
import demo.java.a.Person;
//将demo.java.a包中的Person类导入到此包之中
class TestPackage2
{
    public static void main(String[] args)
    {
        //调用demo.java.a中的方法并输出
        System.out.println(new Person().talk());
    }
}

如果说一个项目之中有几百个类时,为了方便导入可以使用 “ 包.* ” 的形式完成。虽然使用的是 “ 包.* ” ,但实际上并不表示此包之中的所有类都会被导入,导入的时候也只能是导入所需要的类,不需要的类是不会有任何加载的,所以分开导入和使用 “ * ” 导入从性能上讲是完全一样的。

另外,上述程序也可写成如下形式:

//包的导入使用
package demo.java.b;
class TestPackage3
{
    public static void main(String[] args)
    {
        //在程序中将写出所用类的具体位置
        System.out.println(new demo.java.a.Person().talk());
    }
}

在程序中没有使用 import 语句,但是在语句中使用 Person 类的时候使用了 “ 包名.类名 ” 的方式,在程序中也可以使用此方法来使用非本类所在的包中的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值