当前位置:实例文章 » 其他实例» [文章]【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~

【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~

发布人:shili8 发布时间:2025-01-21 19:40 阅读次数:0

**Java基础教程**(十八)包及访问权限篇在 Java 中,包(package)是组织类、接口、枚举等的基本单位。每个类都属于一个包,而包之间可以有依赖关系。在这个教程中,我们将讨论包的概念、访问权限以及相关的修饰符。

### 包的概念和作用在 Java 中,包用于组织类、接口、枚举等,使得它们更容易管理和维护。每个类都属于一个包,而包之间可以有依赖关系。这意味着,如果两个类位于不同的包中,那么它们就不能直接访问彼此的成员。

**示例代码**

java// package com.example;

public class Person {
 private String name;
 public Person(String name) {
 this.name = name;
 }
 public void sayHello() {
 System.out.println("Hello, my name is " + name);
 }
}

在这个例子中,`Person`类属于包 `com.example`。如果我们想访问 `Person`类的成员,我们需要导入该包。

### 访问权限Java 提供了四种访问权限修饰符:public、protected、default(缺省)和 private。

* **public**:任何地方都可以访问。
* **protected**:同一个包内以及子类中都可以访问。
* **default**(缺省):同一个包内都可以访问。
* **private**:只有同一个类内部才能访问。

**示例代码**
java// package com.example;

public class Person {
 private String name;
 public Person(String name) {
 this.name = name;
 }
 public void sayHello() {
 System.out.println("Hello, my name is " + name);
 }
}

class Friend {
 public void sayHello(Person person) {
 person.sayHello(); // OK person.name; // Error: cannot access private member }
}

在这个例子中,`Person`类的 `name`成员是私有的,因此不能在 `Friend`类中直接访问。

### 权限修饰符Java 提供了以下权限修饰符:

* **public**:任何地方都可以访问。
* **protected**:同一个包内以及子类中都可以访问。
* **default**(缺省):同一个包内都可以访问。
* **private**:只有同一个类内部才能访问。

### 单例设计模式单例设计模式是一种常见的设计模式,它确保在整个应用程序中只创建一个实例。这个实例通常是通过静态方法来获取的。

**示例代码**
javapublic class Singleton {
 private static Singleton instance = new Singleton();
 public static Singleton getInstance() {
 return instance;
 }
}

在这个例子中,`Singleton`类只有一个实例,这个实例是通过静态方法 `getInstance()` 来获取的。

### 多例设计模式多例设计模式是一种常见的设计模式,它允许创建多个实例。这个实例通常是通过静态方法来获取的。

**示例代码**
javapublic class MultiSingleton {
 private static Map instances = new HashMap<>();
 public static MultiSingleton getInstance(String key) {
 if (!instances.containsKey(key)) {
 instances.put(key, new MultiSingleton());
 }
 return instances.get(key);
 }
}

在这个例子中,`MultiSingleton`类允许创建多个实例,每个实例都有一个唯一的键。

### 总结包和访问权限是 Java 中非常重要的概念。通过正确使用这些概念,我们可以编写更高质量、更易于维护的代码。在这个教程中,我们讨论了包的概念、访问权限以及相关的修饰符,并提供了示例代码来帮助理解这些概念。

### 参考资料* 《Java语言规范第8 版》
* 《Java编程思想》第三版* 《设计模式:可复用面向对象软件的基础》第四版

其他信息

其他资源

Top