¿Qué está orientado a los objetos?
Objeto objeto, o amiga ... orientado, programación de programación
Medios orientados a objetos usando objetos para la programación, abreviado como OOP.
Comparación entre SP y OOP
Tres principios principales de encapsulación orientada a objetos y polimorfismo de herencia
Objeto
Los objetos son la parte central de la programación orientada a objetos, son entidades específicas reales con estados y comportamientos claramente definidos;
Los objetos son en realidad encapsulaciones de "datos" y "funciones", en las cuales:
Los datos representan su propio estado, también conocido como "atributos" o "datos de miembros";
Las funciones representan sus propias funciones, también conocidas como "métodos" o "funciones de miembros".
amable
Para comprender mejor el mundo, las personas dividen las cosas (objetos) en la vida real en categorías;
Las cosas en la misma categoría siempre tienen algunos puntos en común;
Las clases definen entidades con características y comportamientos comunes;
Una clase es una colección de un grupo de objetos con las mismas propiedades y comportamientos.
propiedad
Las características de las cosas están representadas por variables en la clase;
Cada propiedad de cada objeto tiene su valor específico;
El nombre del atributo es compartido por todos los objetos de la clase;
Las características propiedad de objetos o entidades se llaman atributos cuando se representan en una clase
método
Los comportamientos y las acciones de las cosas están representadas por funciones en la clase;
Cada objeto tiene las mismas acciones y comportamientos;
Las acciones realizadas por un objeto se representan como métodos en la clase.
La diferencia entre una clase y un objeto
Las clases son "plantillas" o "prototipos" utilizados para describir entidades;
Los objetos son entidades reales, y cada objeto es una instancia concreta de la clase;
Las clases se utilizan para definir todas las propiedades y métodos de un objeto, y todos los objetos de la misma clase tienen las mismas características y operaciones;
Las clases pueden entenderse como moldes que producen productos, y el objeto es productos producidos en base a este molde.
Clases y estructuras
Paquete
Empaquetar algo juntos y presentarlo en una forma nueva y completa;
La forma de manejar atributos ocultos, métodos o detalles de implementación se llama encapsulación;
La encapsulación en realidad expone o oculta selectivamente cierta información, lo que resuelve los problemas de seguridad de los datos.
heredar
La herencia es una característica de reutilizar las clases existentes para generar nuevas clases;
En términos de Layman, es el proceso de crear una nueva clase (subclase o clase derivada) a partir de una clase existente (es decir, una clase principal o clase base);
En la vida real, la herencia puede lograr el propósito de la reutilización de la propiedad, mientras que en Java, la herencia puede hacer la reutilización del código.
Polimórfico
El polimorfismo se refiere a las diferentes implementaciones de la misma función en diferentes clases;
La ventaja del polimorfismo es que hace que las clases sean más flexibles y más fáciles de expandir.
También hay un "abstracto" del que tengo que hablar aquí.
abstracto
El proceso de clasificación de los mismos objetos o similares en la misma categoría es la abstracción, por lo que la abstracción es un método para analizar problemas;
Los principios básicos de la abstracción:
Solo se preocupan por los problemas principales, no por los problemas secundarios;
Solo se preocupa por la principal contradicción, no por la contradicción secundaria;
Solo se preocupan por las mismas cosas, no las diferentes cosas;
Solo me importa cuál es el problema y qué se puede lograr, pero no cómo lograrlo.
El proceso abstracto es en realidad la idea central de la programación orientada a objetos.
Definición de clases en Java
Crear un objeto en Java
Sintaxis para crear un objeto
Similar a las matrices, los objetos también se refieren a los tipos de datos y solo pueden asignar memoria del montón utilizando el nuevo operador;
Sintaxis general para crear objetos:
Nombre de nombre de clase Nombre de referencia = nuevo nombre de clase ();
Usando clases ya definidas, el proceso de crear objetos en esa clase se llama "instancia".
Operador de miembros "."
Solo instanciando el objeto de la clase primero pueden acceder a los miembros (propiedades y métodos) en la clase;
Use operadores de miembros (.) Para acceder a las propiedades de los miembros o métodos miembros;
La sintaxis general es:
Nombre del objeto. Nombre del miembro como:
std.age = 18; // Asignar un valor al atributo de miembro std.dining (); // Método del miembro llamando
Permisos de acceso: público y privado
Se puede acceder a los miembros de estructuras en el lenguaje C desde cualquier lugar, lo que dejará grandes peligros ocultos a la seguridad de los datos;
Para evitar la corrupción de datos causada por acceder directamente a los miembros de la clase desde fuera de la clase, Java establece restricciones en el acceso a los miembros de la clase;
Las palabras clave públicas y privadas son modificadores de acceso para indicar si se puede acceder a un miembro desde fuera de la clase;
Se puede acceder a los miembros de las modificaciones públicas en cualquier lugar sin ninguna restricción;
Otros miembros solo pueden acceder a los miembros modificados por privado, y no se puede acceder desde fuera de la clase.
No se puede acceder a miembros privados desde fuera de la clase;
Los miembros privados de otras clases también están ocultos de la clase actual.
Ejemplo de permiso de acceso
Estudiante de clase {nombre de cadena privada; // Nombre, privado, privado, privado, privado, privado, privado, privado, privado, privado, privado, privado, directamente acceso desde fuera de la clase; // peso, privado, privado, acceso directo desde fuera de la clase // método de alimentación, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público. público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público. público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público. público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público, público. El método es un miembro interno de la clase, y puede acceder directamente a los miembros privados de esta clase}} prueba de clase pública {public static void main (string [] args) {Student std = new Student (); // instanciar un objeto de estudiante std.age = 18; // Intenta acceder a miembros privados desde fuera de la clase, se informará un error std.dining (); // aceptar el acceso a los miembros públicos}}
Permisos de acceso (continuación)
Agregar modificadores de acceso a veces puede causar inconvenientes para operar datos, pero puede garantizar la seguridad de los datos en gran medida;
En general, declaramos los atributos de los miembros como métodos privados y miembros como público, pero hacerlo no es absoluto;
A veces, es posible que algunos miembros de datos privados deben ser operados fuera de la clase, por lo que se puede agregar un método público, y este método se puede utilizar para operar datos privados para evitar la corrupción de datos causada por la incumplimiento fuera de la clase;
Debido a que el método principal debe ser llamado por una máquina virtual fuera de la clase, el método principal debe declararse público.
Por ejemplo: modificar la clase de estudiante
Estudiante de clase {// Defina el nombre de cadena privada de clase de estudiante; // Nombre, privado privado int Age; // Edad, peso privado flotante privado; // peso, público privado void setname (nombre de cadena) {// método para asignar valores a nombres, public this.name = name; } public void setage (int a) {// método para asignar valores a la edad, edad pública = a; } public void setweight (float w) {// método para asignar valores a peso, public peso = w; } public void display () {// El método para imprimir toda la información es de propiedad pública System.out.println ("Name:" + Name + ", Age:" + Age + ", Weight:" + Weight); } public void Dining () {...} // El método para comer, public, codifica ligeramente public void walk () {...} // El método para caminar, público, codifica ligeramente} prueba de clase pública {public static void main (string [] args) {estudiante std = new student (); // instanciar el objeto de clase de estudiante std.setName ("zhang san"); // Asignar el nombre std.setage (18); // asignar std.setweight (55); // asignar std.dining () al peso; // llamar al método de comer std.display (); // Imprima la información}} Inicialización de objetos
En el ejemplo anterior, solo puede asignar valores a los miembros de datos uno por uno. Si desea inicializar los atributos de los miembros al instancias del objeto, utiliza el método de construcción;
El constructor es un método de miembro especial, que tiene el mismo nombre que la clase y la máquina virtual llama automáticamente cuando el objeto está instanciado;
Tenga en cuenta: el constructor no tiene un tipo de valor de retorno y no puede tener un valor de retorno.
Ejemplo de método de construcción:
/ *Definir la clase ConstructorDemo y probar el método del constructor */ class ConstructorDemo {/ *Constructor, el nombre del método es exactamente el mismo que el nombre de clase, no es necesario especificar el tipo de valor de retorno, ni puede haber un valor de retorno */ public constructorDemo () {System.out.println ("Este es el constructor");; }} /*Clase de prueba, utilizada para acomodar el método principal, generalmente declara la clase que contiene el método principal como public* / public class Test { /*Método principal, entrada de programa* / public static void main (string [] args) { /*Instantiate el objeto de la clase* / constructora CD = new ConstructorDemo ();; }} // emitirá "Este es el método del constructor" Método de construcción
Se debe precisamente a que el método del constructor se llama automáticamente al instancias de instancias del objeto, por lo que el método del constructor generalmente se usa para asignar recursos a los miembros de los datos o inicializar miembros de datos;
Forma general de método de construcción:
Nombre de clase de permiso de acceso (lista de parámetros formales) {
Método Cuerpo
}
Debido a que el constructor es llamado por la máquina virtual, el constructor generalmente debe definirse como público.
Por ejemplo: agregue un constructor a la clase de estudiante
Estudiante de clase {// Defina el nombre de cadena privada de clase de estudiante; // Nombre, privado privado int Age; // Edad, peso privado flotante privado; // peso, privado // método de construcción, asigne valores a los miembros de datos de acuerdo con los parámetros aprobados del alumno público (String n, int a, float w) {// asigne valores iniciales a cada name de miembro de datos = n; edad = a; peso = w; } public void setName (String n) {...} // Asigne valores a nombre, public, codifique ligeramente public void setAge (int a) {...} // Asigne valores a la edad, public, código ligeramente público void setweight (float w) {…} // métodos para asignar peso, publicidad, código ligeramente público void visual {...} // Métodos para comer, public, codifica ligeramente public void walk () {...} // Métodos para caminar, public, codifique ligeramente public void walk () {...} // métodos para caminar, public, codifique la prueba de clase ligeramente pública {public static void main (string [] string [] {// use el método de construcción para especificar el valor inicial para los miembros de los datos de los datos std = new estudiante (nuevo estudiante (neo neo sano (18). std.display (); // imprime la información}}
Método de construcción (continuación)
Cada objeto debe ejecutar un constructor cuando se genera, y solo puede ejecutarse una vez;
Si la llamada del método del constructor falla, el objeto no se puede crear;
El constructor no puede llamarse directamente explícitamente;
Sin un constructor definido, la clase generará automáticamente un constructor predeterminado sin parámetros, que no hace nada;
Una vez que el constructor se define explícitamente, el constructor predeterminado desaparece automáticamente. Por lo tanto, generalmente se definen dos métodos de construcción: no hay parámetros ni parámetros.
Resumir