Encapsulación y empaquetado de clases (JAVA)

Tabla de contenido

encapsulación

En el mismo paquete:

Bolsa

paquete personalizado

En diferentes paquetes:


encapsulación

Todos los lenguajes POO tendrán tres características:

  1. encapsulación
  2. Herencia (haga clic para saltar)
  3. Polimorfismo (haga clic para saltar)

Este artículo le brindará conocimientos sobre el embalaje.

En nuestra vida diaria, podemos ver que el televisor tiene sólo unos pocos botones (interruptores, menús...) y algunas interfaces, y podemos realizar nuestras necesidades a través de estas cosas sin profundizar en su estructura. Y algunas de sus estructuras internas (CPU,…) los fabricantes utilizarán un shell para empaquetarlas para evitar que veamos directamente el contenido del interior.

La encapsulación en el lenguaje OOP es: combinar orgánicamente datos y métodos de manipulación de datos, ocultar las propiedades y detalles de implementación de los objetos y exponer solo interfaces y métodos para interactuar con los objetos.

Entonces surge la pregunta: sabemos que podemos usar el operador '.' fuera de la clase para acceder a sus propiedades internas, entonces, ¿cómo debería ocultar las propiedades y los detalles de implementación?

En Java, la encapsulación se logra principalmente a través de clases y derechos de acceso : las clases pueden combinar datos y métodos para encapsular datos, lo que está más en línea con la percepción humana de las cosas, y los derechos de acceso se utilizan para controlar si los métodos o campos pueden estar directamente fuera del uso de clase.

alcance privado

       por defecto

(no escribas nada)

protegido público
misma clase en el mismo paquete Poder Poder Poder Poder
diferentes clases en el mismo paquete Poder Poder Poder
subclases en diferentes paquetes Poder Poder
No subclases en diferentes paquetes. Poder
  • público: puede entenderse como las características de apariencia de una persona, que cualquiera puede ver;
  • privado: solo tu lo sabes, los demás no lo saben 

En este punto, podemos restringir el acceso de los miembros de la clase desde el mundo exterior a través de calificadores de acceso.

Se puede ver en la tabla que su alcance son tanto paquetes como clases, por lo que sabemos qué es una clase y qué es un paquete. Por el momento, puedes ignorar la introducción más adelante en el artículo.

En el mismo paquete:

En este punto, no tiene que preocuparse por cuál es el paquete, porque generalmente escribimos código en el mismo paquete durante la etapa de aprendizaje.

 

En este punto podemos ver que aunque hay un atributo de nombre en la clase, debido a que su permiso es privado, el sistema informará un error cuando accedamos a él fuera de la clase. El permiso de edad es el predeterminado y pueden acceder a él diferentes clases en el mismo paquete. 

Entonces, ¿qué debemos hacer si queremos modificar el nombre? Debido a que está modificado por privado y solo los miembros de la clase pueden acceder a él, en este momento podemos escribir un método para modificar el nombre o el método más simple y grosero para modificar directamente el privado.

class Student{
    private String name;
    int age;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Main {
    public static void main(String[] args) {
        Student a = new Student();
        a.setName("zhangsan");
        System.out.println(a.getName());
        System.out.println(a.age);
    }
}

Bolsa

El concepto de paquete:

        Para administrar mejor las clases, se reúnen varias clases en un grupo llamado paquete.

Nota: Se permiten clases con el mismo nombre en el mismo proyecto, siempre que estén en paquetes diferentes.
De hecho, puedes entender un paquete simplemente como una carpeta .

 En Java, puede importar clases en un paquete mediante la declaración de importación.

Así es, la declaración similar al archivo de encabezado en lenguaje C escrita en la primera línea del código cuando normalmente ingresamos y generamos es en realidad la clase en el paquete de importación. Por ejemplo:

importar java.util.Scanner;

paquete personalizado

Reglas básicas para paquetes personalizados: 

  1. Agregue una declaración de paquete en la parte superior del archivo para especificar en qué paquete se encuentra el código;
  2. El nombre del paquete debe especificarse como un nombre único tanto como sea posible, generalmente en la forma invertida del nombre de dominio de la empresa (por ejemplo: com.baidu.www);
  3. El nombre del paquete debe coincidir con la ruta del código. Por ejemplo, si crea un paquete com.baidu.www, habrá una ruta correspondiente com/baidu/www para almacenar el código;
  4. Si una clase no tiene una declaración de paquete, la clase se coloca en un paquete predeterminado.

Primero, cómo creamos un paquete:

El proceso de creación de un paquete en IDEA es el siguiente, primero haga clic derecho en src y luego coloque el mouse en nuevo y luego haga clic en paquete;

Luego haga clic derecho en el paquete que creó para crear una clase:

 En este punto, puede ver que IDEA ha creado un archivo en esta ruta:

En este momento, podemos ver que hay una declaración adicional sobre la clase creada.

Y solíamos ser el paquete predeterminado del sistema, por lo que no existe.

En diferentes paquetes:

 En este momento, debido a que las dos clases no forman una relación entre padres e hijos, solo el sexo no informa un error.

De la siguiente manera, solo se puede acceder a los modificadores públicos y protegidos en subclases de diferentes paquetes.

Supongo que te gusta

Origin blog.csdn.net/2302_76339343/article/details/132025189
Recomendado
Clasificación