Resumen de los fundamentos de la programación orientada a objetos de Java





  • Java es un lenguaje de programación orientado a objetos. Programación orientada a objetos, el inglés es programación orientada a objetos, abreviado POO.

¿Qué es la programación orientada a objetos?

La programación orientada a objetos (OOP) es un marco de programación informática. Un principio fundamental de la programación orientada a objetos es que los programas de computadora están compuestos de unidades u objetos individuales que pueden funcionar como subrutinas. La programación orientada a objetos logra tres objetivos principales de la ingeniería de software: reutilización, flexibilidad y extensibilidad. POO = Objeto + Clase + Herencia + Polimorfismo + Mensaje, donde los conceptos centrales son clases y objetos.



Guyu

Guyu
Guyu







Conceptos básicos orientados a objetos



① Método

La sintaxis para definir un método:

Método modificador tipo de retorno nombre del método (lista de parámetros del método) { varias declaraciones de método; valor de retorno del método de retorno; }


El valor de retorno del método se implementa a través de la declaración de retorno. Si no hay un valor de retorno, el tipo de retorno se establece en Void y se puede omitir el retorno.
Un método completo generalmente incluye el nombre del método, el cuerpo del método, los parámetros del método y el tipo de valor de retorno del método.



② Método de construcción

Al crear una instancia, la instancia en realidad se inicializa a través del constructor.

Como los constructores son tan especiales, el nombre del constructor es el nombre de la clase. No hay límite para los parámetros del método de construcción y cualquier declaración también se puede escribir dentro del método. Sin embargo, en comparación con los métodos ordinarios, el método de construcción no tiene valor de retorno (sin valor nulo) y se debe utilizar el nuevo operador para llamar al método de construcción.

Un constructor puede llamar a otros constructores para facilitar la reutilización del código. La sintaxis para llamar a otros constructores es esta(…);



③ Sobrecarga de métodos

Los métodos con el mismo nombre pero con diferentes parámetros se denominan sobrecarga de métodos.
El tipo de retorno de la sobrecarga de métodos suele ser el mismo;



④ Herencia

Java usa la palabra clave extends para implementar la herencia;
una característica de la herencia es que las subclases no pueden acceder a los campos privados o métodos privados de la clase principal.

La herencia es un poderoso método de reutilización de código para la programación orientada a objetos;
Java solo permite la herencia única y la clase raíz final de todas las clases es Objeto;
protegido permite que las subclases accedan a los campos y métodos de la clase principal;

En herencia, si una subclase define un método con la misma firma que el método de la clase principal, se llama Override.
Si las firmas del método son las mismas y el valor de retorno es el mismo, se anula.



⑤ Polimorfismo

Polimorfismo significa: para una llamada a un método de cierto tipo, el método de ejecución real depende del tipo real de método en tiempo de ejecución; la
llamada al método de Java siempre actúa sobre el tipo real del objeto en tiempo de ejecución; este comportamiento se llama polimorfismo.



⑥ clase abstracta

Si el método de la clase principal en sí no necesita implementar ninguna función, solo define la firma del método, el propósito es permitir que la subclase lo anule, entonces el método de la clase principal se puede declarar como un método abstracto (resumen ).
Si una clase define un método, pero no ejecuta específicamente el código, este método es un método abstracto y el método abstracto se modifica con abstracto. Como los métodos abstractos no se pueden ejecutar, esta clase también debe declararse como clase abstracta.

Una clase modificada con resumen es una clase abstracta. No podemos crear una instancia de una clase abstracta.



⑦ interfaz

La llamada interfaz (interfaz): es una interfaz abstracta pura, más abstracta que una clase abstracta, porque ni siquiera puede tener campos. Debido a que todos los métodos definidos por la interfaz son abstractos públicos de forma predeterminada, no es necesario escribir estos dos modificadores (el efecto es el mismo si están escritos o no).
Cuando una clase específica implementa una interfaz, se debe utilizar la palabra clave implements.

En Java, una clase sólo puede heredar de otra clase, no de varias clases. Sin embargo, una clase puede implementar múltiples interfaces.

La interfaz de Java se refiere específicamente a la definición de interfaz, lo que significa un tipo de interfaz y un conjunto de firmas de métodos, mientras que la interfaz de programación generalmente se refiere a especificaciones de interfaz, como firmas de métodos, formatos de datos, protocolos de red, etc.
Una interfaz puede heredar de otra interfaz. La interfaz hereda de la interfaz y usa extensiones, lo que equivale a extender el método de la interfaz.



⑧ Campos y métodos estáticos

Los campos modificados con estática se denominan campos estáticos. Donde hay campos estáticos, hay métodos estáticos. Un método decorado con estática se llama método estático.
Debido a que el método estático pertenece a la clase y no a la instancia, por lo tanto, dentro del método estático, no se puede acceder ni a esta variable ni al campo de instancia, solo se puede acceder al campo estático.
Los métodos estáticos también se utilizan a menudo en métodos auxiliares. Observe que main(), el punto de entrada del programa Java, también es un método estático.



⑨ paquete

En Java, utilizamos paquetes para resolver conflictos de nombres.
Java define un espacio de nombres llamado paquete: paquete. Una clase siempre pertenece a un determinado paquete, el nombre de la clase (como Persona) es solo una abreviatura, el nombre completo real de la clase es nombre de paquete.nombre de clase.
Cuando se ejecuta la máquina virtual Java, la JVM solo mira el nombre completo de la clase, por lo que mientras el nombre del paquete sea diferente, la clase será diferente. Los paquetes pueden tener varias capas, separados por . Por ejemplo: java.util.

Las clases del mismo paquete pueden acceder a campos y métodos con ámbito de paquete. Los campos y métodos no modificados por public, protected o private son alcances de paquete.



⑩ alcance

público:

Cualquier otra clase puede acceder a las clases e interfaces definidas como públicas;

privado:

Otras clases no pueden acceder a los campos y métodos definidos como privados;

protegido:

Las subclases, así como las subclases de las subclases, pueden acceder a los campos y métodos definidos como protegidos; los actos protegidos sobre las relaciones de herencia.

paquete:

El alcance del paquete se refiere a una clase que permite el acceso al mismo paquete sin una clase modificada pública y privada, y sin campos y métodos públicos, protegidos y privados modificados.
Siempre que estén en el mismo paquete, pueden acceder a la clase, campo y método del permiso del paquete.



⑪ Clase interna

Organiza diferentes clases bajo diferentes paquetes. Para las clases bajo un paquete, están en el mismo nivel y no tienen relación padre-hijo; también hay una clase
que está definida dentro de otra clase, por lo que se llama clase interna (Clase anidada). )



⑫ classpath y jar

classpath es una variable de entorno utilizada por la JVM para indicarle a la JVM cómo buscar clases.
La JVM determina la ruta y el orden de búsqueda de clases a través de la variable de entorno classpath;

El paquete jar es equivalente a un directorio y puede contener muchos archivos .class para facilitar su descarga y uso.



⑬ plantilla

El propósito de los módulos introducidos por Java 9 es gestionar dependencias;
JRE se puede empaquetar bajo demanda mediante el uso de módulos;
los derechos de acceso a las clases se restringen aún más mediante el uso de módulos.



--------------------------



Clases principales de Java



① Cadena y codificación

Cadena

Es un tipo de referencia, que a su vez también es una Clase. Una de sus características importantes es que la cadena es inmutable;
la cadena Java String es un objeto inmutable;
la operación de cadena no cambia el contenido de la cadena original, sino que devuelve una nueva cadena;
operaciones de cadena comunes: extraer subcadena, buscar, reemplazar , conversión de casos, etc.;

En los primeros sistemas informáticos, para codificar caracteres, el Instituto Nacional Estadounidense de Estándares (American National Standard Institute: ANSI) desarrolló un conjunto de codificaciones para letras, números y símbolos comunes en inglés, que ocupan un byte y van de 0 a 127, el El bit más alto es siempre 0, lo que se denomina codificación ASCII.
Por ejemplo, el carácter 'A' está codificado 0x41, que es 65 decimales; el carácter '1' está codificado 0x31, que es 49 decimales.

Java usa codificación Unicode para representar cadenas y caracteres;
la codificación de conversión consiste en convertir cadenas y bytes [], y es necesario especificar la codificación;
al convertir a bytes [], siempre se da prioridad a la codificación UTF-8.



② Constructor de cadenas

Es un objeto mutable, que se utiliza para concatenar cadenas de manera eficiente;
para concatenar cadenas de manera eficiente, la biblioteca estándar de Java proporciona StringBuilder, que es un objeto mutable que puede preasignar buffers. De esta manera, al agregar caracteres a StringBuilder, no Se crea un nuevo objeto temporal.
StringBuilder puede admitir operaciones en cadena, y la clave para realizar operaciones en cadena es devolver la instancia en sí;
StringBuffer es una versión segura para subprocesos de StringBuilder, que rara vez se usa ahora.



③ Unión de cadenas

Es más conveniente usar StringJoiner o String.join() al unir matrices de cadenas con un delimitador específico;
cuando se usa StringJoiner para unir cadenas, se pueden agregar un "principio" y un "final" adicionales.



④ Tipo de embalaje

Para convertir el tipo básico int en un tipo de referencia, podemos definir una clase Integer, que solo contiene un campo de instancia int, de modo que la clase Integer pueda considerarse como una clase contenedora para int.



⑤ JavaBean

Si el método de lectura y escritura cumple con la siguiente convención de nomenclatura (método get/set), entonces esta clase se llama JavaBean.

// Método de lectura:
public Type getXyz() { }
// Método de escritura:
public void setXyz(Type value) { }

La función principal de JavaBean es transferir datos, es decir, combinar un conjunto de datos en un JavaBean para facilitar la transmisión.



⑥ clase de enumeración

Para que el compilador verifique automáticamente que un determinado valor esté en el conjunto de enumeración, y las enumeraciones para diferentes propósitos deben marcarse con diferentes tipos y no pueden mezclarse, podemos usar enum para definir la clase de enumeración.

Java usa enum para definir el tipo de enumeración, que el compilador compila en la clase final Xxx extiende Enum {...};
obtiene la cadena definida por la constante a través de name(), tenga cuidado de no usar toString();
devuelve el orden de la definición constante a través de ordinal() (Sin significado sustancial);
puede escribir constructores, campos y métodos para enum.
El constructor de enum debe declararse como privado y se recomienda encarecidamente declarar los campos como finales;
enum es adecuado para su uso en declaraciones de cambio.



⑦ Clase de registro

Utilice Record para definir clases invariantes;
puede escribir Compact Constructor para verificar parámetros;
puede definir métodos estáticos.



⑧ Entero Grande

java.math.BigInteger se utiliza para representar números enteros de cualquier tamaño.
BigInteger es una clase inmutable y hereda de Number;
se pueden utilizar métodos como longValueExact() para garantizar resultados precisos al convertir BigInteger a tipos básicos.



⑨ Gran Decimal

Al igual que BigInteger, BigDecimal puede representar un número de punto flotante de cualquier tamaño con total precisión.
BigDecimal se usa para representar decimales precisos y se usa a menudo en cálculos financieros;
para comparar si los valores de BigDecimal son iguales, debe usar compareTo() en lugar de equals().



⑩ Herramientas comunes

Matemáticas

La clase Math se utiliza para cálculos matemáticos y proporciona una gran cantidad de métodos estáticos para facilitar nuestra implementación de cálculos matemáticos.

aleatorio

Random se utiliza para crear números pseudoaleatorios. El llamado número pseudoaleatorio significa que siempre que se proporcione una semilla inicial, la secuencia de números aleatorios generada es exactamente la misma.

SeguroAleatorio

SecureRandom se utiliza para crear números aleatorios seguros.









Nota:
Me gusta, comentarios y reimpresiones son bienvenidos. Proporcione el enlace al texto original en un lugar obvio en la página del artículo
. Aquellos que saben, gracias por leer mi artículo entre la gran multitud. ¿
Dónde está la firma sin personalidad?
Para obtener más información, sígueme y
continúa actualizando.

¡Escanea para tener una sorpresa!
© 2021 04 - Guyu.com | 【Copyright Todos los derechos reservados】

Supongo que te gusta

Origin blog.csdn.net/weixin_49770443/article/details/115199723
Recomendado
Clasificación