JavaSE - enfoque de clase y objeto

ced485cbb11e458d81a746890b32cf3f.gif

Autor: Rukawa Maple Knock Code

Página de inicio del blog: Blog de Rukawa Kaede

Columna: Aprende java conmigo

Cita: Mantente hambriento, mantente tonto

Si quieres hacer cosas buenas, primero debes afilar tus herramientas. Permíteme presentarte una herramienta súper poderosa para ganar ofertas de grandes fabricantes: Niuke.com

Haga clic para registrarse de forma gratuita y aclarar las preguntas conmigo  

Directorio de artículos

1. Orientado a objetos y orientado a procesos

2. Notas sobre las clases

3. Instanciación de clases

4. esta referencia

5. Constructor

6. Embalaje

7. Bolsas


1. Orientado a objetos y orientado a procesos

Orientado a procesos: analizar los pasos necesarios para resolver un problema y luego implementar esos pasos con muchas funciones

Ventajas: mayor rendimiento que el orientado a objetos , porque es necesario crear instancias de las llamadas de clase, la sobrecarga es relativamente grande y se consumen recursos; por ejemplo, un solo chip, desarrollo integrado, Linux/Unix, etc., generalmente adoptan el desarrollo orientado a procesos y el rendimiento es el factor más importante
Desventajas: no orientado a objetos, fácil de mantener, fácil de reutilizar, fácil de expandir

Orientado a objetos: Descompone la transacción que constituye el problema en varios objetos. El propósito de crear un objeto no es completar un paso, sino describir el comportamiento de algo en todo el paso de resolución del problema.

Ventajas: fácil de mantener, reutilizar y extender.Debido a las características de encapsulación orientada a objetos, herencia y polimorfismo, se puede diseñar un sistema de bajo acoplamiento, lo que hace que el sistema sea más flexible y más fácil de mantener.Desventajas
: menor rendimiento que orientado al proceso

La orientación a objetos es un alto grado de abstracción física y la orientación a procesos es una programación de arriba hacia abajo.

Orientado a objetos es un tipo de idea de resolución de problemas, que se basa principalmente en la interacción entre objetos para completar una cosa. Orientado a procesos es como la forma tradicional de lavar ropa. Todo el proceso no puede resolver este problema sin un enlace. Escribir código de esta manera será más problemático para expandir o mantener en el futuro, mientras que orientado a objetos es más como el lavado moderno. En el proceso de la ropa, podemos abstraer cuatro objetos, a saber: personas, ropa, detergente en polvo y lavadoras. El proceso de lavado de ropa se completa con la interacción entre los cuatro objetos, y las personas no necesitan preocuparse por el proceso. de lavar la ropa.

Orientado a procesos y orientado a objetos no son un lenguaje, sino un método para resolver problemas. No existe tal cosa como bueno o malo, y todos tienen sus propios escenarios de aplicación especiales.

Java es un lenguaje orientado a objetos puro (Object Oriented Program, heredando OOP), en el mundo orientado a objetos, todo es un objeto

2. Notas de clase

Una clase se usa para describir una entidad (objeto), principalmente describiendo qué atributos (tamaño de apariencia, etc.) tiene la entidad (objeto).

Formato de definición de clase:

class ClassName{
    field; //字段(属性)或者成员变量
    method; //行为或者成员方法
}

class es una palabra clave para definir una clase, ClassName es el nombre de la clase y {} es el cuerpo de la clase

Lo que está contenido en una clase se llama miembro de la clase.

Los atributos se usan principalmente para describir clases, llamados atributos de miembro de clase o variables de miembro de clase .

El método describe principalmente qué funciones tiene la clase, lo que se denomina método miembro de la clase.

Precauciones:

Preste atención al uso del caso de camello grande para los nombres de clase

Antes de definir miembros, el método de escritura se unifica como público

Por lo general, solo se define una clase en un archivo

La clase donde se encuentra el método principal generalmente debe modificarse con público (Nota: Eclipse encontrará el método principal en la clase pública modificada de forma predeterminada)

 La clase modificada por public debe tener el mismo nombre que el archivo

No modifique fácilmente el nombre de la clase modificada por público, si desea modificarlo, modifíquelo a través de herramientas de desarrollo.

3. Instanciación de la clase

Reconocer instanciación:

El proceso de creación de un objeto con un tipo de clase se llama instanciación de una clase.En java, se usa la palabra clave new y se instancia el objeto con el nombre de la clase.

La nueva palabra clave se utiliza para crear una instancia de un objeto.

Use .para acceder a propiedades y métodos en objetos

Se pueden crear múltiples instancias de la misma clase.

Descripción de clase y objeto:

1. Una clase es una cosa parecida a un modelo, que se usa para describir una entidad y define qué miembros de la clase son

2. Una clase es un tipo personalizado que se puede usar para definir variables

3. Una clase puede instanciar múltiples objetos.Los objetos instanciados ocupan el espacio físico real y almacenan variables miembro de la clase.

4. Los objetos instanciados por una clase son como construir una casa usando dibujos de diseño arquitectónico en realidad. Una clase es como un dibujo de diseño. Solo diseña lo que se necesita, pero no hay un edificio físico. De manera similar, una clase es solo un diseño, instanciado Solo los objetos exportados pueden almacenar datos, ocupando espacio físico

4. esta referencia

esta variable miembro

esto. acceder a las variables miembro

this(); constructor de acceso

Veamos una pregunta: 

El nombre del parámetro formal es accidentalmente el mismo que el nombre de la variable miembro:

public class Test {
    public int year;
    public int month;
    public int day;
    public void setDay(int year,int month,int day){
        year = year;
        month = month;
        day = day;
    }
    public void printDay(){
        System.out.println(year+"-"+month+"-"+day);
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.setDay(2022,7,25);
        test.printDay();
    }
}

 Se ha llamado al método setDay en el método principal y se le han pasado parámetros, y printDay no imprime la fecha, esto se debe a que la variable local tiene prioridad, pero el parámetro formal se asigna a sí mismo, no a la variable miembro. En este momento usa este

public class Test {
    public int year;
    public int month;
    public int day;
    public void setDay(int year,int month,int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void printDay(){
        System.out.println(year+"-"+month+"-"+day);
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.setDay(2022,7,25);
        test.printDay();
    }
}

500

 esta cita:

Apunta al objeto actual (el objeto que llama al método miembro cuando se ejecuta el método miembro) y se accede a todas las operaciones de variables miembro en el método miembro a través de esta referencia. Es solo que todas las operaciones son transparentes para el usuario, es decir, el usuario no necesita pasarlo y el compilador lo completa automáticamente.

Características a las que hace referencia esto:

1. El tipo de esto: la referencia de tipo de clase correspondiente, es decir, qué objeto se llama es el tipo de referencia de qué objeto

2. esto solo se puede usar en "métodos de miembros"

3. En el "método miembro", esto solo puede referirse al objeto actual y ya no puede referirse a otros objetos

4. este es el primer parámetro oculto del "método miembro", y el compilador lo pasará automáticamente. Cuando se ejecuta el método miembro, el compilador será responsable de pasar la referencia del objeto del método miembro que llama al método miembro, y esto es responsable de recibir, como la imagen:

5. Constructor

Al definir una variable local dentro de un método Java, debe inicializarse, de lo contrario, la compilación fallará

Un constructor (también llamado constructor) es un método de miembro especial cuyo nombre debe ser el mismo que el nombre de la clase. El compilador lo llama automáticamente cuando se crea un objeto y se llama solo una vez en todo el ciclo de vida del objeto.

Nota: la función del constructor es inicializar los miembros en el objeto y no es responsable de abrir espacio para el objeto.

característica:

1. El nombre debe ser el mismo que el nombre de la clase.

2. No hay un tipo de valor de retorno, y configurarlo como nulo no funcionará

3. El compilador lo llama automáticamente cuando se crea el objeto, y se llama solo una vez en el ciclo de vida del objeto (equivalente al nacimiento de una persona, cada persona solo puede nacer una vez)

4. El constructor se puede sobrecargar (los usuarios proporcionan constructores con diferentes parámetros según sus propias necesidades).Los siguientes dos constructores tienen el mismo nombre y diferentes listas de parámetros, por lo que constituyen una sobrecarga de métodos

public class Test {

    public int year;
    public int month;
    public int day;

    //无参构造方法
    public Test(){
        this.year=1900;
        this.month=1;
        this.day=1;
    }
    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
}

5. Si el usuario no lo define explícitamente, el compilador generará un constructor predeterminado y el constructor predeterminado generado no debe tener parámetros.

public class Test {

    public int year;
    public int month;
    public int day;
    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void printDate(){
        System.out.println(year+"-"+month+"-"+day);
    }

    public static void main(String[] args) {
        //报错
        Test t = new Test();
        t.printDate();
    }
}

Nota: Una vez definido por el usuario, el compilador ya no genera

Si el compilador lo genera, el constructor generado no tiene parámetros y el objeto creado aquí también se puede compilar. La situación real es un error, por lo que una vez que el usuario lo define, el compilador ya no generará el constructor predeterminado.

 6. En el constructor, puede llamar a otros constructores a través de este para simplificar el código.

this(); constructor de acceso

public class Test {

    public int year;
    public int month;
    public int day;

    public Test() {
        //调用本类中的其他构造方法        
        this(2022,8,4);
        System.out.println("不带参数的构造方法");
    }

    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        System.out.println("带参数的构造的方法");
        this.year = year;
        this.month = month;
        this.day = day;
    }
    
    public static void main(String[] args) {
        Test t = new Test();

    }
}

 Aviso:

this(...) debe ser la primera declaración en el constructor, y se informará un error en otras líneas

No se puede formar un timbre, la llamada en bucle informará un error

public Date(){
    this(1900,1,1);
}
public Date(intyear,intmonth,intday){
    this();
}
/*无参构造器调用三个参数的构造器,而三个参数构造器有调用无参的构造器
形成构造器的递归调用编译报错:Error:(19,12)java: 递归构造器调用*/

7. En la mayoría de los casos, use public para modificar, y en casos especiales, será modificado por private

Nota: Después de compilar el código, el compilador agregará todas estas declaraciones para la inicialización de miembros a cada constructor.

6. Embalaje

Los programas orientados a objetos tienen tres características principales: encapsulación, herencia y polimorfismo. La fase de clase y objeto, la principal investigación son las características de encapsulación . ¿Qué es la encapsulación? En pocas palabras, son los detalles de blindaje de la carcasa.

El concepto de encapsulación: combine datos y métodos de manipulación de datos de forma orgánica, oculte los atributos y los detalles de implementación de los objetos y exponga únicamente las interfaces para interactuar con los objetos.

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 de encapsulación de datos, lo que está más en línea con la cognición humana de las cosas, y los derechos de acceso se usan para controlar si los métodos o campos se pueden usar directamente fuera la clase.

Hay cuatro calificadores de acceso disponibles en Java:

No

alcance privado defecto protegido público
1 misma clase en el mismo paquete  ✔
2 Diferentes clases en el mismo paquete.
3 Subclases en diferentes paquetes
4 No subclases en diferentes paquetes

public (público): tiene los mayores derechos de acceso y puede acceder a cualquier clase, interfaz, excepción, etc. bajo CLASSPATH. Suele utilizarse en situaciones externas, es decir, en forma de interfaz externa de un objeto o clase.

predeterminado (predeterminado): el permiso predeterminado cuando no se escribe nada, cualquier clase, interfaz, excepción, etc. bajo este paquete puede acceder entre sí

protected (protegido): modificador protected, su función principal es proteger subclases

Private (privado): los derechos de acceso están limitados al interior de la clase, lo cual es una manifestación de encapsulación. Por ejemplo, la mayoría de las variables miembro están decoradas con private y no quieren que otras clases externas accedan a ellas.

Después del nombre de modificación privada, solo se puede llamar a la misma clase en el mismo paquete; de ​​lo contrario, se informará un error

Si desea llamarlo en otras clases, debe configurar el método, use el método

public class Person {
    private String name;
    public int age;
    public void setName(String name){
        this.name = name;
    }

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("hahaha");
    }
}

Nota: En general, las variables de miembro se establecen en privado y los métodos de miembro se establecen en público

 Los métodos get, set pueden ser generados automáticamente por el compilador:

7. Bolsas

Para administrar mejor las clases, varias clases se recopilan juntas en un grupo llamado paquete. Algo así como un directorio. Por ejemplo, para administrar mejor las canciones en la computadora, una buena manera es poner las canciones con los mismos atributos en un mismo archivo, y también puedes clasificar la música en una determinada carpeta con más detalle.

Un paquete es la encarnación del mecanismo de encapsulación para clases, interfaces, etc. Es una buena manera de organizar clases o interfaces. Por ejemplo, las clases en un paquete no quieren ser utilizadas por clases en otros paquetes. Los paquetes también tienen un papel importante: las clases con el mismo nombre pueden existir en el mismo proyecto, siempre que estén en paquetes diferentes.

 Paquete personalizado:

1. Cree un nuevo paquete en IDEA: haga clic con el botón derecho en src -> Nuevo -> Paquete

2. Ingrese el nombre del paquete en el cuadro de diálogo emergente

3. Cree una clase en el paquete, haga clic con el botón derecho en el nombre del paquete -> Nuevo -> Clase y luego ingrese el nombre de la clase

4. En este punto, puede ver que la estructura de directorios en nuestro disco ha sido creada automáticamente por IDEA

5. Al mismo tiempo, también vemos que en la parte superior del archivo Test.java recién creado, aparece una declaración de paquete

 paquete común

1. java.lang: Clases básicas de uso común (String, Object) del sistema, este paquete se importa automáticamente de JDK1.1

2. java.lang.reflect: paquete de programación de reflexión java

3. java.net: kit de desarrollo de programación de red

4. java.sql: paquete de soporte para el desarrollo de bases de datos

5. java.util: Es un paquete de herramientas (colección de clases, etc.) proporcionado por java, es muy importante

6. java.io: kit de desarrollo de programación de E/S

¡Feliz Tanabata a todos! ! ¡Y yo y Xiao Wang también estamos felices!

 "El intercambio de este problema está aquí, recuerda darle al blogger un enlace de tres, ¡tu apoyo es la mayor fuerza impulsora para mi creación!

ced485cbb11e458d81a746890b32cf3f.gif

Supongo que te gusta

Origin blog.csdn.net/chenchenchencl/article/details/126159789
Recomendado
Clasificación