Red de conocimiento informático - Consumibles informáticos - ¿Cuál es la diferencia entre programación orientada a procesos y programación orientada a objetos?

¿Cuál es la diferencia entre programación orientada a procesos y programación orientada a objetos?

Orientado a objetos 1. La diferencia entre orientado a procesos y orientado a objetos: el primero es una relación entre predicado y objeto; el segundo es una relación entre sujeto y predicado. 2. Tres características de la orientación a objetos: ?Encapsulación? ?Herencia Polimorfismo 3. Clases y objetos: Los objetos también se llaman instancias, que son todos los individuos de este tipo de cosas que realmente existen. Una clase es una descripción de un determinado tipo de cosa, una definición abstracta y conceptual. *El enfoque del diseño orientado a objetos es el diseño de clases. 4. Comparación de objetos: 1. La diferencia entre el operador "==" y el método igual (): el primero identifica si la sustancia es igual; el segundo identifica si la apariencia es igual; 5. Implementar la encapsulación de clases: 1. No permita que clases externas modifiquen las variables miembro de una clase a voluntad 2. Al definir miembros de una clase (incluidas variables y métodos), use la palabra clave privada para indicar los derechos de acceso de; este miembro solo puede ser modificado por Se llaman otros métodos miembros de esta clase, pero no pueden ser llamados por métodos de otras clases. 3. Para lograr la encapsulación, las variables miembro de la clase a menudo se declaran como privadas y luego las variables se declaran; acceder a través de métodos públicos. Las operaciones en una variable generalmente incluyen operaciones de lectura y asignación. Generalmente definimos dos métodos para implementar estas dos operaciones, a saber: getXxx() y setXxx() 4. Una clase es un módulo y debemos permitir que el módulo solo revele lo que debe; ser conocido por el mundo exterior y ocultar todo lo demás. Al diseñar programas, debe intentar evitar que un módulo modifique u opere directamente los datos de otro módulo. El diseño del módulo persigue una fuerte cohesión (muchas funciones deben completarse de forma independiente dentro de la clase tanto como sea posible, sin intervención externa) y un acoplamiento débil (. proporcionado al exterior). El menor número posible de llamadas a métodos). 6. Definición y función del constructor: 1. Características: ? El nombre es el mismo que el de la clase; Sí, se agregó void al definir el constructor. Como resultado, este método ya no se llama automáticamente. 2 Función: cuando se genera por primera vez un objeto de instancia de una clase, se llamará automáticamente al método constructor de esta clase. Podemos agregar código para completar el trabajo de inicialización en este método. 7. Si se ha definido un constructor en la clase, el compilador ya no generará automáticamente un constructor como public Person(){ }. 8. Aplicación de este identificador de referencia: 1. Cuando el nombre de miembro de la clase y la variable de parámetro formal del método miembro al que está asignada tienen el mismo nombre, utilícelo para facilitar la comprensión. 2. Supongamos que tenemos una clase contenedora; y una clase de componente, en la clase contenedor Se crea un objeto de instancia de la clase componente en un método y el constructor de la clase componente recibe un parámetro que representa el contenedor en el que se encuentra. 3. El sistema Java llama automáticamente al método constructor cuando se genera un objeto. No podemos llamar al método constructor en el programa como otros métodos. En lugar de utilizar el nombre del constructor, utilice la forma this para seleccionar el constructor correspondiente según la lista de parámetros. 9. Análisis del proceso de recolección de basura: el método finalize () en java; la función de System.gc. La llamada a Finalize() ocurre antes de que se recicle el objeto inútil. 10. Método estático estático: 1. En un método estático, solo puede llamar directamente a otros miembros estáticos de la misma clase, pero no puede acceder directamente a miembros no estáticos de la clase. La razón es que los métodos y variables no estáticos necesitan crear un objeto de instancia de la clase antes de poder usarse, mientras que los métodos estáticos no necesitan crear ningún objeto antes de su uso. 2. Los métodos estáticos no pueden hacer referencia a las palabras clave this y super en; de cualquier manera; 3. El método main () es estático. Por lo tanto, la JVM no crea un objeto de instancia de la clase donde se encuentra el método principal al ejecutar el método principal. Por lo tanto, no podemos crearlo directamente en el método main (). acceda a miembros no estáticos de la clase y debe crear el objeto. Solo después de obtener un objeto de instancia de la clase puede acceder a los miembros no estáticos de la clase a través de este objeto.

11. Cuando se ejecuta el programa, la JVM solo carga esta clase y la inicializa cuando llama a otras clases (es decir, carga e inicializa el constructor y las variables estáticas). 12. Patrón de diseño monomórfico: adopte ciertos métodos para garantizar En todo el sistema de software , solo puede haber una instancia de objeto para una determinada clase, y la clase solo puede producir métodos que obtengan estrictamente sus instancias de objeto. Si queremos que la clase produzca solo un objeto en una máquina virtual, primero debemos hacerlo. El permiso del constructor de la clase debe establecerse en privado. De esta manera, el nuevo operador no se puede utilizar para generar objetos de la clase fuera de la clase, pero los objetos de la clase aún se pueden generar dentro de la clase. : 1. ¿Clases internas definidas directamente en una clase? * Una clase anidada puede acceder directamente a los miembros de la clase en la que está anidada, incluidos los miembros privados, pero la clase en la que está anidada no puede acceder directamente a los miembros de la clase anidada. está anidado; * Internamente El objeto de clase almacena una referencia al objeto de clase externa Cuando se accede a una variable en un método miembro de la clase interna, si la variable no está definida en el método o en la clase interna, la referencia a esto en. se pasará la clase interna. Una referencia al objeto de clase externa. * Si usa estática para modificar una clase externa, esta clase es equivalente a una clase definida externamente, por lo que los miembros estáticos se pueden declarar en una clase interna estática, pero los miembros se pueden declarar. en clases internas no estáticas no puede Si se declara como estática, la clase interna estática ya no puede usar las variables miembro no estáticas de la clase encapsulada externa. Por ejemplo: si las variables locales de la función, las variables miembro de la clase interna. , y las variables miembro de la clase externa tienen el mismo nombre, deben ser las siguientes. El método utilizado por el código del programa para indicar claramente la variable a la que realmente queremos acceder public class Outer { private int size; int size; public void doStuff(int size) { size; // Aplicar los parámetros formales de la función doStuff. // Hacer referencia a las variables miembro de la clase interna Outer.this.size; de la clase externa} } } 2. Clases internas definidas en métodos: Las clases internas definidas en métodos solo pueden acceder a métodos La variable local del tipo final en el tipo final es equivalente a una constante y su ciclo de vida excede el ciclo de vida de el método en ejecución 3. El método en la clase interna puede acceder a las variables miembro de la clase externa y las variables miembro de la clase externa. El método no puede acceder directamente a las variables miembro de la clase interna. debe definir otro constructor en la clase interna. Los parámetros de este constructor son la clase externa. 14. El compilador puede acceder a las variables locales definidas en una clase. La inicializa, pero para las variables locales definidas en un método, el compilador no inicializa. él. Los más utilizados ahora son ASP.Net (C#) y JSP (Java)