Así es como entiendo la orientación a objetos
Pregunta 1: ¿Qué significa orientado a objetos? La forma humana de resolver problemas es dividir y conquistar. Por lo tanto, ya sea orientado a objetos o a procesos, esencialmente está descomponiendo el problema. La diferencia es que la orientación a procesos descompone el problema en una serie de pasos y luego descompone estos pasos hasta que pueda implementarlo fácilmente, lo que equivale a la descomposición del algoritmo. La orientación a objetos descompone el problema en una serie de objetos cooperantes, y estos objetos se descomponen aún más. Cada objeto en el sistema representa una entidad relacionada con el problema o con la implementación. Aquellos objetos relacionados con el problema son componentes del problema, mientras que los objetos relacionados con la implementación son entidades auxiliares utilizadas por la implementación específica y no tienen relación directa con ella. el problema en sí. La cooperación mutua y la cooperación de todos los objetos del sistema realizan las funciones de todo el sistema. Todos los objetos del sistema y las relaciones entre ellos constituyen la estructura componente del sistema. Las comúnmente denominadas abstracción, encapsulación, modularización y estructura jerárquica describen y clasifican objetos. Las jerarquías de clases se pueden obtener combinando elementos como abstracción, encapsulación, herencia, polimorfismo, etc. La jerarquía de clases y la jerarquía de componentes se denominan arquitectura de sistemas orientados a objetos. Por lo tanto, la orientación a objetos se trata principalmente de establecer la estructura de objetos y la jerarquía de clases, mientras que la orientación a procesos se trata de establecer la estructura jerárquica del "algoritmo" (proceso). La capa inferior de la orientación a objetos debe estar orientada a procesos, pero para lugares de alto nivel, la orientación a procesos no se puede utilizar, por lo que la orientación a objetos tiene un nivel de abstracción más alto que la orientada a procesos.
Por ejemplo, podemos considerar la fabricación de automóviles desde dos aspectos: 1. Podemos pensar que la fabricación de automóviles es producto de una serie de procesos, y cada proceso contiene subprocesos, dadas las condiciones adecuadas. El material se procesa a través de una serie de pasos para finalmente producir un automóvil. 2. También podemos pensar que la fabricación de automóviles la completan diferentes fábricas que cooperan entre sí. Cada fábrica tiene sus propios trabajadores y máquinas, cada trabajador, cada máquina y cada fábrica realiza sus propias tareas y, en última instancia, completa un vehículo. Fabricación de automóviles. A través de la observación, encontraremos que hay algunos trabajadores que son muy similares (por ejemplo, todos usan la misma ropa de trabajo y producen las mismas piezas). En este momento, crearemos una clase para describir la similitud entre ellos (resumen). ) y Definir una interfaz para especificar sus responsabilidades (encapsulación también a través de la observación, encontramos que incluso si son clases diferentes (como trabajadores que producen diferentes piezas), tienen ciertas similitudes (como que todos producen piezas de la misma manera); fábrica), pero hay diferencias en lugares similares (diferentes tipos de trabajadores producen diferentes piezas), luego usamos clases base (herencia) para describir las similitudes y usamos funciones virtuales (polimorfismo) para describir las diferencias en las similitudes. A través del análisis anterior, establecimos la composición y jerarquía de clases, y describimos la fabricación de automóviles utilizando un método orientado a objetos.
Pregunta 2: ¿Qué significa orientado a objetos? Hay Controladores Loli, Controladores Royal Sister y Controladores Queen en el mundo, por eso hay un dicho que dice que todo es controlable
Lo mismo ocurre con la orientación a objetos, todo es un objeto
Puedes usar la palabra objeto Entiéndelo como un término general, por ejemplo, hombres y mujeres se llaman personas, velas, látigos de cuero y tacones altos son accesorios, por lo que el significado original de orientado a objetos es "todos los llamados objetos". , pero la traducción no es el significado original. Por tanto, una casa es un objeto y un avión es un objeto, los gatos son objetos, los árboles son objetos, las novias también son objetos, y los objetos son únicos: tu casa pertenece a tu familia. , no la mía, y las bellezas que ves en el extranjero no son las bellezas que veo en casa Tú El número de identificación es diferente al mío
Entonces, ¿qué hay en una casa? Hay computadoras, CD de películas de acción, cintas de películas de guerra, revistas de arte corporal... Ahora estas "incluyen" Las cosas de la casa no son cosas, sino que se llaman "propiedades"...
Ahora que hay objetos y propiedades, el resto es el método El método también es fácil de entender. Significa que quieres obtener un resultado determinado, debes usar métodos específicos, por ejemplo, cuando tu novia está enojada, debes persuadirla cuando no esté contenta. debería hacerla feliz. "Persuadir" y "bromear" son los métodos para hacer que tu novia muera... y así sucesivamente. Descubrí que una chica hermosa debería usar el método de "perseguir" cuando conoces a una chica hermosa mientras compras con tu. novia, debes usar el método de "espiar", y cuando te enamores, debes usar el método de "hablar"...
——El objeto es un concepto, llama a todas las cosas "objetos" ( no hay nada que no sea un objeto) - los atributos son los componentes de la cosa, y todas las partes que pueden incluirse se llaman "atributos" (no hay objetos sin atributos) - El método es la forma de lograr el objetivo, y todo los comportamientos factibles se convierten en métodos (no hay objetos ni atributos sin métodos, pero puedes elegir qué métodos usar)
Por lo tanto, debemos establecer los objetos correctos al diseñar: nosotros Lo que buscas es una chica , no un dinosaurio Si creas el "objeto" de la hermana Furong, es obvio que ella no es una persona normal. Una vez que hayas decidido el objeto correcto, debes descubrir su temperamento*** OK, el atributo. del objeto es: altura 165cm, peso 45kg, medidas 84cm, 66cm, 86cm Si eres soltero, debes utilizar el método correcto para perseguirlo, chatear (los parámetros son moda, belleza, etc...), ver películas. (películas románticas, películas de terror, kimchi coreano), envía Flores (3, 11, 999)
Ahora es el momento de aclarar las definiciones de objetos, propiedades y métodos
Luego hay son encapsulación, herencia y polimorfismo
La encapsulación es para proteger a tu novia y no dejarte seducir por los demás, porque tienes que hacer que ella "sólo" te crea con palabras dulces. No le presentes chicos guapos. otros antes de que los atrapes, por lo tanto, tu esposa es tuya y no te la pueden dar. Para otros, esto es "encapsulación privada". Para otro ejemplo, tu cuenta, este objeto, tiene dinero, con el que ganaste 100 millones. Este atributo, y sus familiares y amigos le piden que preste dinero. Cree que sus familiares están hablando de eso, así que pida prestado, este dinero es "encapsulación local". Si gana 10 mil millones en la lotería. En todas partes, esto es "encapsulación global": la encapsulación es para determinar el alcance de uso del objeto. Por supuesto, quieres que te ayude a gastarlo. Tampoco me importa ayudarte.
Herencia, si no donas tus bienes familiares, entonces tu hijo será el heredero natural. Esto se llama herencia única. Tus 7 u 8 hijos se dividirán los bienes familiares. Esto se llama herencia múltiple. no escribes al beneficiario de la lesión accidental como de otra persona, otros no pueden heredarlo... - La herencia es determinar qué objeto pueden ser utilizados los atributos y métodos del objeto.
Polimorfismo, por ejemplo Eres bueno preparando comida china, tu hijo es bueno preparando comida occidental y tu hija es buena haciendo dim sum. Ahora tienes un amigo cercano que viene a tu casa a cenar. Si comes (comida china) en tu casa, puedes probar el estofado de cerdo. Para los fideos, si usas tu casa, puedes comer filete (comida occidental), y si usas tu casa, puedes probar los fideos (dim sum). es el polimorfismo del método de "comer", porque no puede limitar el consumo de un solo tipo de alimento, como abrir la puerta y abrirla.
También puede usar llaves, tarjetas magnéticas, control remoto, etc. - el polimorfismo es el mismo método en diferentes modos de operación
Jaja, estoy de buen humor durante el Año Nuevo chino y he escrito tantas palabras sin darme cuenta~~ Bueno, bueno, mucha sensación de logro~~
Pregunta 3: ¿Qué es el pensamiento orientado a objetos? ¡No te arrepientas!
Prólogo:
Organizar esto El propósito de esta información es ayudar a los amigos a comprender la programación orientada a objetos de manera más intuitiva. Dejemos que los que llegan tarde tomen menos desvíos. Sin embargo, inevitablemente hay muchas lagunas y errores. También pedimos a nuestros mayores que brinden sugerencias valiosas para los cambios. Después de todo, la comunicación nos ayudará a lograr un progreso continuo.
La tecnología cambia cada día que pasa, y no se hará esperar a tu crecimiento. La tecnología debe usarse para comunicarse con los demás. El aprendizaje por uno mismo se basa en su propia comprensión subjetiva. ¡Existe el bien y el mal! La comunicación hace que el progreso sea más rápido. Creo que si la arquitectura de la computadora no sufre cambios revolucionarios, ¡los lenguajes de programación que usamos ahora no serán extraños! ¿Qué aprendes sobre programación? ¡Pensamiento! Después de dominar un lenguaje de programación (preferiblemente un lenguaje orientado a objetos) y luego probar otros lenguajes de programación, descubrirá que el proceso es muy sencillo. ¿Por qué? Una vez que dominas la idea de programar, aprender otras cosas no es más que aprender un nuevo formato de sintaxis.
No estoy aquí para discutir con usted cómo usar C o JAVA, ni para discutir con usted cómo aprenderlos. Lo que quiero discutir con usted es cómo entender la orientación a objetos. Implica principalmente "clases, objetos, herencia, atributos, métodos, estática, sobrecarga, ocultación, refactorización, declaración, definición, inicialización, asignación, etc. Hay muchas tecnologías relacionadas que solo revisaré en una generación, por lo que los comprende bien. He logrado mi objetivo al visitar este lugar. Para obtener información técnica interna más detallada, consulte otros libros relacionados para un estudio en profundidad. ¡Porque estoy discutiendo contigo cómo comprender mejor la orientación a objetos!
¿Cómo mejorar la eficiencia? Reutiliza recursos, toma cosas de otras personas y úsalas. ¡Esta es una muy buena idea! ¡Para ti, los mayores recursos son la confianza y la positividad! Bien, anímate, ¡vamos a explorar juntos la programación orientada a objetos!
Nota: Escribí todos los ejemplos de programas en el artículo usando JAVA. Por supuesto, son similares en C. ¡Señalaré las diferencias!
Nota: El texto principal del artículo está en negro, el texto de descripción está en azul, el texto de énfasis está en naranja y el texto de corrección está en rojo.
Texto:
1. Conceptos básicos:
1.1 Una exploración preliminar de clases y objetos
Si me preguntas, si es un lenguaje orientado a procesos o un lenguaje orientado a objetos, lo primero que quiero decirle es ¡Son clases y objetos! -------- "¿De qué está hecho este mundo?" Si le pides a diferentes personas que respondan esta pregunta, obtendrás diferentes respuestas. Si es químico, es posible que le diga: "¿Por qué molestarse en preguntar? El mundo está formado por sustancias químicas como moléculas, átomos, iones, etc." ¿Y si eres pintor? Podría decirte: "El mundo está hecho de diferentes colores". ...Jaja, ¡hay diferentes opiniones! Pero sería mucho más interesante si dejaras que un taxónomo piense en el problema. Él te dirá que "el mundo está formado por diferentes tipos de cosas y ¡Bien!". Como programadores orientados a objetos, ¡debemos considerar el problema desde la perspectiva de un taxónomo! Sí, este mundo está formado por animales, plantas, etc. Los animales se dividen a su vez en animales unicelulares, animales multicelulares, mamíferos, etc. Los mamíferos se dividen a su vez en humanos, elefantes, tigres... ¡y así sucesivamente!
Ahora, desde una perspectiva abstracta, ¡definamos “clase”! Quiero decir, desde un punto de vista abstracto, usted me responde "¿Qué es un ser humano?" Primero echemos un vistazo a algunas de las características de los seres humanos. Esta característica incluye atributos (algunos parámetros, valores) y métodos (algunos comportamientos). , otro ¡Qué puedes hacer tú!). Todo el mundo tiene atributos como altura, peso, edad, tipo de sangre, etc.
Las personas pueden trabajar, pueden caminar erguidas, pueden usar sus propias mentes para crear herramientas, ¡y así sucesivamente! La razón por la que los humanos se pueden distinguir de otros tipos de animales es que cada uno tiene los atributos y métodos del grupo humano. ¡La "humanidad" es sólo un concepto abstracto, es sólo un concepto, es una entidad inexistente! ¡Pero todos los objetos con los atributos y métodos del grupo "humano" se llaman personas! ¡Este objeto "persona" es una entidad real! Cada uno es un objeto del grupo de personas. ¿Por qué los tigres no son humanos? ¡Porque no tiene los atributos y métodos del grupo humano, los tigres no pueden caminar erguidos, no pueden utilizar herramientas, etc.! ¡Entonces los tigres no son humanos!
Se puede observar que una clase describe un grupo de objetos con las mismas características (propiedades) y el mismo comportamiento (métodos). ¡En los programas, las clases son en realidad tipos de datos! Por ejemplo: números enteros, decimales, etc. Los números enteros también tienen un conjunto de propiedades y comportamientos. Lenguaje orientado a procesos... gt; gt;
Pregunta 4: ¿Qué significa orientado a objetos? gt es un puntero, jaja, también soy un principiante, jaja, te lo diré en lengua vernácula. Bueno, así es como entiendo un objeto como una casa con una mesa dentro. El televisor es como un método en el objeto. Luego, cuando encuentras la casa, es como si inicializaras tu objeto. bb{} Luego inicializa tu objeto como $aa=new bb. Después de encontrar esta casa, quieres usar la tabla dentro de este objeto, como la función cc{}. en esta casa. Puedes usarlo como $aa-gt; cc(). $aa es el objeto que acabas de inicializar. Es como si encontraras esta casa, y cc() es lo que está en esta casa. De alguna manera, si quieres tomar una silla, y la silla tiene la función oo{}, entonces es $aa-gt;oo(), no sé si te ayudará Jaja
. Pregunta 5: ¿Qué es la orientación a objetos? No puedo entender el significado de la enciclopedia (explícalo con palabras que entiendas). Había una vez dos personas, una llamada Xiao Ming y la otra llamada Da Ming. Sus estilos de vida eran. completamente diferente. Tomemos como ejemplo el consumo de café.
Xiao Ming es una persona tradicional. La forma en que bebe café es primero comprar granos de café en el supermercado, sacar la batidora de mano, verterlos en la licuadora, mezclar manualmente los granos de café hasta convertirlos en polvo y luego. Luego los vertió en una taza de café, luego puso a hervir una olla con agua y vertió el agua hirviendo para hacer café. Después de media hora, Xiao Ming bebió un fragante café hecho a mano.
Daming es un hombre vago al que le gusta usar herramientas. Compró granos de café, los arrojó a la nueva máquina de café, vertió agua, encendió el interruptor y esperó en silencio a que se preparara el café. Durante todo el proceso, Daming simplemente compró granos de café y vertió agua, e ignoró el resto del molido. procesos. Después de jugar una ronda, Daming también tomó café.
En este proceso, Xiao Ming está orientado a procesos y Da Ming está orientado a objetos. Cuando Xiao Ming bebe café, tiene que hacerlo paso a paso de principio a fin, mientras que Da Ming deja algunos de los pasos intermedios a la máquina de café (moler, hervir agua, preparar). Para Daming, la máquina de café es un objeto responsable de moler, hervir agua y preparar café. Da Ming no necesita preocuparse por qué tan duro se deben moler los granos para que tengan el mejor sabor, ni necesita considerar qué tan caliente debe estar el agua para preparar el café más fragante. Daming solo necesita saber una cosa: quiero. para tomar café. No es necesario conocer el método de funcionamiento interno de la máquina de café. Esto refleja la idea de encapsulación orientada a objetos. Siempre que el resultado sea suficiente, no es necesario comprender el proceso.
En otras palabras, para hacer algo, llame a un objeto para hacerlo. Este objeto tiene ciertas capacidades de procesamiento y puede ayudarlo a proteger algunos detalles que no necesita. Garantiza que pueda obtener lo que desea. . Sólo quiero el resultado.
Esto es muy conveniente de hacer.
Pregunta 6: Entrevista---¿Qué entiendes sobre la orientación a objetos? ¡sudor!
Recuerdo que durante mis entrevistas anteriores, ¡esta pregunta básicamente se hizo mal!
En primer lugar, si asumes que todo es un objeto, tiene sus propios atributos y su propio comportamiento.
Por ejemplo, una persona tiene su propio nombre, sexo y edad. El comportamiento es comer y caminar. algo.
Entonces debemos hablar de pensamiento orientado a objetos, encapsulación, polimorfismo y herencia, ¡y podrás superarlo!
Pregunta 7: ¿Qué significa programación orientada a objetos? La orientación a objetos es un método de programación emergente, o es un nuevo paradigma de programación. Su idea básica es utilizar conceptos básicos como objetos, clases, herencia, encapsulación y mensajes para diseñar programas.
Construye sistemas de software basados en cosas objetivamente existentes (es decir, objetos) en el mundo real, y utiliza métodos de pensamiento natural humano tanto como sea posible en la construcción del sistema, enfatizando el uso directo del dominio del problema (mundo real). ) Pensar y comprender problemas centrados en las cosas del sistema y representarlos de manera abstracta como objetos del sistema basándose en las características esenciales de estas cosas, como las unidades constituyentes básicas del sistema (en lugar de usar algunas comparaciones relacionadas con las cosas del sistema). el mundo real) muy lejos, y no hay otros conceptos correspondientes para construir el sistema). Esto permite que el sistema mapee directamente el dominio del problema y mantenga la apariencia original de las cosas y sus interrelaciones en el dominio del problema.
Desde una perspectiva de programación, los lenguajes de programación orientados a objetos deben tener componentes de lenguaje que describan los objetos y sus relaciones. Estos lenguajes de programación se pueden resumir en las siguientes categorías: todo en el sistema es un objeto; los objetos son encapsulaciones de atributos y operaciones; los objetos se pueden dividir en clases según sus propiedades, y los objetos se convierten en instancias de relaciones de instancia y clases; las relaciones de herencia son relaciones estáticas entre objetos; el paso de mensajes es la única forma de conexión dinámica entre objetos y la única forma de método de cálculo son secuencias de mensajes;
Pregunta 8: Es muy simple Durante la entrevista, el examinador le preguntó qué es la orientación a objetos. . ¿Cómo respondemos a eso? Enfrentar objetos significa:
Reunir datos y métodos de operación de datos como un todo interdependiente: un objeto. Abstraer la unicidad de objetos similares para formar una clase. La mayoría de los datos de la clase solo se pueden procesar utilizando los métodos de esta clase. La clase se comunica con el mundo exterior a través de una interfaz externa simple y los objetos se comunican a través de mensajes. El flujo del programa lo determina el usuario durante su uso.
Pregunta 9: En JAVA, ¿cómo entiendes la orientación a objetos y las clases? Por favor dé un ejemplo popular para explicar: Este es mi entendimiento solo como referencia:
Las clases son como hombres y mujeres entre las personas; vacas, ovejas, perros, gatos, etc. entre los animales y aquí Las personas mencionadas; son de un tipo, y los animales son de otro tipo; no podemos contar a personas y animales como del mismo tipo (por supuesto, no animales de alto nivel y los objetos son los hombres, las mujeres y, entre los animales, las vacas y las ovejas); , perro, gato, etc.; cada uno de ellos cuenta como un objeto. Realmente existe; el orientado a objetos es un programa escrito con estos objetos como centro. No importa qué función escribas, debe haber un objeto para operar esta función, tal como creas un automóvil. Alguien tiene que conducirlo, ¿verdad? Si nadie conduce el coche, es un desperdicio. Nunca se moverá. No sé si entiendes lo que digo.