8 categorías y objetos en aquellos días en los que le enseñó a escribir código

¿También tienes un pasado así que se ha guardado en el fondo de tu corazón, ocasionalmente debido a una canción o una línea de película, el sello se afloja y algunas imágenes vienen lentamente a la mente? Puede sentirse arrepentido, molesto y preguntarse por qué no es firme y por qué no es valiente. La vida es así, sólo cuando pierdes puedes entender que lo que tienes es lo más preciado, por eso a menudo escucho una frase: vive el presente y aprecia el presente.

Cuando sonó "Chengdu" de Zhao Lei, la sonrisa en su rostro de repente se volvió un poco rígida. Creo que esta es la canción que abrió el sello de su corazón.

"Algo ha pasado, déjalo ir con el viento." No sé cómo consolar, esta es la única oración reconfortante que puedo pensar en este momento, así que odio mi cáncer masculino heterosexual.

"¿Sabes por qué quiero aprender a escribir programas?", Me preguntó de repente.

“Para tener una habilidad.” Recuerdo que ella dijo esto.

"Este es un aspecto, y lo más importante es que si estás inmerso en el pensamiento racional todo el día, no dañarás la primavera y la tristeza del otoño, y siempre dañarás la primavera y la tristeza del otoño".

“¿Oh?” No esperaba que aprender a escribir programas tuviera tal efecto, su pensamiento es realmente especial.

"Eres realmente una persona especial. Si todo el mundo piensa de esta manera, probablemente eres el único".

"No soy necesariamente solo yo", dijo tranquilamente.

No supe cómo responder a la conversación, y luego la escuché decir: "Está bien, no hablemos de eso. ¿Qué aprenderemos hoy?"

De repente cambió de tema, lo que realmente me sorprendió, pero está bien no hablar de las cosas infelices.

En este caso, aprovecharé la tendencia y recurriré al contenido que se aprenderá hoy: "Hoy comenzamos el verdadero aprendizaje de Java".

"¿De verdad?" Ella estaba un poco sorprendida, "¿No aprendí Java antes?"

"Eso no es cierto, es solo que lo que aprendimos antes es cómo escribir programas. A partir de hoy, aprenderemos a escribir programas Java".

"¿Cual es la diferencia?"

"Por supuesto que es diferente. En primer lugar, tenemos que entender un concepto, que está orientado a objetos, Java es un lenguaje de programación orientado a objetos".

“Aún no entiendo.” Ella negó con la cabeza, obviamente estaba diciendo tonterías de nuevo.

"Orientada a objetos es una idea de programación más avanzada. En comparación con la anterior idea de programación orientada a procesos, está más cerca del mundo real".

Creo que en su opinión, todavía estoy diciendo tonterías, porque sus ojos todavía están confundidos.

"Digámoslo de esta manera, orientado a objetos es ver todo en el mundo desde la perspectiva de Dios, mientras que orientado a procesos es ver las cosas desde la perspectiva de los mortales". Traté de explicar qué es el pensamiento de programación orientado a objetos, debido a que esto es muy importante, esto es Aprender los conceptos básicos de Java.

“¿Entonces Java es un lenguaje de programación más avanzado, solo porque ve las cosas desde la perspectiva de Dios?” Finalmente lo entendió.

"Sí". Afirmé sus pensamientos, pero sabía que ella todavía no entendía qué es la orientación a objetos, así que continué diciendo: "Recuerda, qué tipo de proceso escribiste antes".

"¿Qué tipo de proceso?" Se rascó la cabeza, recordando los programas que había escrito y el proceso de escribir programas desde que aprendió a programar. "Piensa en cómo escribir y luego escríbelo de acuerdo con una idea determinada. Además, para la limpieza del código En un momento dado, parte del código se encapsulará en un método ".

"Sí, esta es la idea de la programación orientada a procesos. En este momento, lo que ha estado pensando es implementar una determinada función y cómo debería verse el flujo del programa".

"Sí, ¿no es esa la forma de escribir programas?"

"Entonces necesitas olvidar, olvidar todo antes, para recibir cosas nuevas y mejores".

Obviamente mi oración fue un juego de palabras, pero ella no pareció escucharlo.

"Descubrí que también eres muy prolijo, por lo que deberías hablar sobre la orientación a objetos".

"Está bien". No tuve más remedio que continuar con la diferencia entre la orientación a procesos y la orientación a objetos. "La razón por la que la orientación a objetos es más avanzada es que cuando encuentra problemas, no debe pensar en cómo diseñar el flujo del programa, pero en lo que debes pensar. Crear una persona o una cosa y dejar que resuelva problemas, esta es la perspectiva de Dios orientada a objetos ".

"Todavía es un poco abstracto, ¿puede ser más específico?"

"Digámoslo de esta manera, la orientación a objetos está cerca del mundo real. Piense en el mundo real".

Habiendo dicho eso, me detuve, la miré y le pedí que pensara en cómo es el mundo real.

"¿Cómo es?", Me preguntó directamente sin siquiera pensarlo.

Me sorprendió un poco, y luego pensé que ella podría pensar que solo estaba preguntando y respondiendo, y solo necesitaba cooperar conmigo, así que continué: "Mira, el mundo real se compone de varias cosas, como el tierra, varias plantas, varios animales, seres humanos, etc., cada una de estas cosas crece y se mueve de acuerdo con sus propias leyes para formar el mundo entero ".

Al escuchar mi descripción, pensó por un momento y dijo: "Es cierto".

"La idea de la programación orientada a objetos es la misma, por lo que todo en Java está compuesto por individuos, y los individuos aquí son objetos".

Ella no habló, un par de hermosos ojos me miraron y me hicieron señas para que continuara, pero le hice una pregunta: "Si eres Dios, ¿cómo crearías este mundo?"

"No lo sé", respondió ella sin rodeos.

"Digámoslo de esta manera, si fueras un Nuwa y quisieras crear un ser humano, ¿qué harías?"

“No lo sé.” Ella todavía respondió simple y directamente.

"Bueno, ¿entonces tienes que pensar en cómo debería ser una persona?"

"Bueno, no lo pienses, la gente es así, una cabeza, dos manos, dos piernas".

"¿No estás pensando en cómo es una persona?"

“¿En serio?” Ella estaba un poco perpleja.

"Bueno, entonces crearemos humanos de acuerdo con sus suposiciones". Ignoré sus dudas y continué: "Primero tenemos que clasificar y definir a las personas, y luego crear individuos de acuerdo con esta definición. Este es el proceso de trabajo de la orientación a objetos programación. Para crear un objeto, primero debe tener la definición de clasificación del objeto. Esta definición de clasificación es la clase ".

“Veamos un ejemplo.” Tomé su computadora portátil y comencé a escribir código antes de que ella pudiera decirle cómo escribir el código.

El primer ejemplo:

Compila y ejecuta:

"Verá, tenemos que crear el objeto de persona. Primero, definimos la clase de persona. La definición de una clase está marcada con la palabra clave clase. El contenido entre paréntesis después de clase es la definición de una clase".

“Bueno, lo entiendo.” Ella asintió mientras miraba el código.

"Hay tres partes opcionales para definir una clase. Son: los atributos que representan las características de las cosas, también llamadas variables miembro; los métodos miembro que representan el comportamiento de las cosas; y los métodos de construcción utilizados para establecer la apariencia inicial de las cosas. . "En este punto, le pregunté. Ella," En la definición de ser humano escribí, ¿cuáles son atributos, cuáles son métodos miembros y cuáles son métodos constructivos? "

"Esto es muy simple, escribiste un comentario". Ella dijo mientras miraba el código: "Las líneas 2 a 7 son atributos, las líneas 9 a 16 son métodos de construcción y las líneas 18 a 21 son métodos de miembros".

"Exactamente correcto", le dije, realmente pensando en ello, una pregunta tan simple, y también escribí un comentario, sería extraño si ella no pudiera decirlo.

“Parece que lo entiendes, así que puedes escribir uno.” Viéndola ansiosa por intentarlo, continué.

“Tengo esta idea, pero ¿qué debo escribir?” Ella estaba preocupada por qué escribir.

"Entonces puedes crear algunas mujeres", dije, no pensé en nada como un ejemplo, la idea todavía estaba en la creación de personas de Nuwa.

“¿Hay alguna diferencia entre una mujer y una persona? Tú lo escribiste todo, déjame copiar uno?” Ella obviamente no encontró la diferencia entre una persona y una mujer.

"Una mujer tiene un atributo muy importante que es la apariencia", le recordé.

"Eso parece", sonrió, "Entonces depende de mí".

Después de hablar, tomó la computadora y comenzó a escribir el código.

El código que ella escribió:

Compila y ejecuta:

"¿Cómo está?", Dijo feliz.

“¡Sí, no está mal, pero es un poco narcisista, jaja!” Me reí porque noté la belleza de la mujer llamada Xiaohua, ella puso 100 puntos y Xiaohua era su nombre.

“¿No soy hermosa?” Parpadeó, hizo todo lo posible por adoptar una postura encantadora y dijo, mirándome.

"Mei" Incluso la elogié, aunque deliberadamente hizo una mirada superficial, realmente pensé que era hermosa.

"Huh", tarareó, y volvió a su postura normal sentada, y luego dijo: "Hay una pregunta, ¿qué son estos en el método de construcción?"

"Esto se usa para referirse al objeto actual", respondí casualmente.

"No entiendo", dijo, y luego hizo un aire de escucha.

No esperaba que esto fuera un punto de conocimiento de sentido común para un programador de Java, pero ella no lo entendía, pero luego pensé que no era un programador de Java, solo era una novata que comenzó a aprender Java, y es normal no entender. Es un poco anormal cuando lo entiendo, así que le dije con paciencia: "esto representa el objeto que creaste en base a esta clase. Debido a que el objeto de la clase existe solo después de que se crea con la nueva palabra clave, usa esto en la clase. Se refiere al objeto que se creará en el futuro. Por cierto, debes saber, crea un objeto con la palabra clave nuevo, ¿verdad? "

"Bueno, lo adiviné", dijo sin comprender, y supe que estaba pensando en 'esto'.

"Digámoslo de esta manera, cuando creas un objeto, en realidad creas un objeto con valores predeterminados para todos los atributos y luego llamas al constructor. En el constructor, hacemos una cosa, que es asignar el valor del parámetro al atributo correspondiente al objeto, el signo igual que sabes es asignación ".

"En este caso, parece que lo entiendo, pero de hecho, se puede escribir así", dijo, cambiando el código.

El código que cambió:

Compila y ejecuta:

"Puede escribir la asignación de propiedades del objeto después de que se crea el objeto y usar puntos para indicar la afiliación entre el objeto y el atributo. La asignación en el constructor es en realidad la misma que la asignación de atributo después de que se crea el objeto, pero no es posible en la clase. Sé el nombre del objeto que se creará más tarde, así que utilizo este en su lugar ". Después de que el programa se ejecuta normalmente, le dice a su comprensión, y al final también trae una oración:" ¿Soy ¿derecho?"

"Así es", le dije: "Una cosa más, esto se puede omitir, ¿sabes?"

"Oh, lo tengo."

"Entonces sabes, ¿por qué no se omitió esto en la declaración de asignación que escribimos en el constructor antes?"

"Jaja, ¿quieres probarme? Esto no es obvio todavía, porque el nombre del parámetro que definimos es el mismo que el nombre del atributo. Si no escribes esto, se convertirá en un parámetro y lo asignará a sí mismo."

"Bueno, parece que te subestimé."

"He estudiado seriamente el alcance de las variables y los parámetros del método. El método de construcción también es un método. La razón debería ser la misma", dijo con orgullo.

“Eres genial.” No tenía nada que decir, solo podía decir un cumplido.

Sin embargo, ignoró mi admiración por ella, y estuvo orgullosa de sí misma por un tiempo, y luego dijo: "¿La clase y el objeto han terminado? ¿No debería ser solo un poco de contenido?"

"Por supuesto que no solo hay un contenido tan pequeño, esto es solo una introducción, ahora eres una introducción".

"Oh, ¿acabas de empezar? Entonces puedes hablar rápido. Ahora tengo sed de conocimiento". Obviamente estaba decepcionada, pero pronto mostró un fuerte deseo de conocimiento.

“Déjame hacerte una pregunta primero, ¿cuál es la relación entre el hombre y la mujer?” Decidí comenzar con una pregunta.

"Las mujeres son un tipo de personas y hay otro tipo de hombres".

"Sí, son relaciones subordinadas. En Java, esta relación se llama relación de herencia, lo que significa que las mujeres se heredan de las personas. Las personas se denominan padres de mujeres y las mujeres hijos de personas. Por supuesto, los hombres también son humanos. Subcategorías ".

“Bueno, déjame pensarlo.” Después de que terminó de hablar, se puso a pensar por un rato, y no la molesté de manera muy interesante.

"Hay muchos ejemplos de esto. Por ejemplo, los animales son los padres de los humanos, y los humanos son los hijos de los animales". De repente levantó la cabeza y dijo.

"Sí, tiene usted razón."

"Jaja." Estaba un poco orgullosa de su inteligencia. Antes de que pudiera decir algo, volvió a plantear su pregunta: "¿Pero qué tiene esto que ver con los programas de escritura?"

"Está relacionado. Podemos expresar este tipo de relación de herencia por programa. Todavía escribiré un ejemplo. Lo puedes entender después de leerlo".

Ejemplo que escribí:

Compila y ejecuta:

"Verá, en realidad es muy simple, solo use la palabra clave se extiende para identificar la relación de herencia", le dije mientras le mostraba.

"Oh, lo recordé." Ella dijo, "Después de heredar, la clase secundaria tendrá las propiedades de la clase principal, ¿verdad?"

"En circunstancias normales, este es el caso". Su capacidad de observación no me decepcionó. No lo dije a propósito. Ella también lo vio. Aquí, los dos subtipos de hombre y mujer heredaron al padre del hombre, por lo que estos dos hijos Hay un atributo de nombre en la clase, y es exactamente de esta manera, puede usar este atributo directamente en la subclase.

"Jaja, esto es bueno, así que no hay necesidad de reescribir tanto código, esta herencia es muy buena". Lamentó la utilidad de la herencia y luego me preguntó sobre la situación general. "Generalmente, la clase padre El atributo se hereda y se usa directamente, entonces, ¿en qué circunstancias no puede? "

"Se trata de los permisos de control de acceso de Java". Dije: "¿Recuerdan los modificadores de control de acceso públicos, protegidos y privados que se mencionan cuando se aprenden métodos?"

"Recuerda, pero no lo entiendo del todo".

“Bueno, primero veamos un formulario.” Luego encontré un formulario en Internet para mostrárselo.

Formularios encontrados en línea:

Después de leer este formulario, levantó la cabeza y me miró sin comprender.

"Bueno, no me importa este formulario, hablemos primero del paquete". Antes de que ella preguntara, sabía lo que estaba perdido. "¿Has notado que en el código que acabo de escribir, la persona definida? La clase usa ¿Persona en lugar de humano? "

"¿Si porque?"

"Debido a que se han utilizado las clases anteriores, y debido a que estas dos clases están en el mismo paquete (ambos son el paquete predeterminado, es decir, el paquete sin nombre), hay un conflicto. Si define una clase con Human, la computadora no sabrá qué definición está utilizando, por lo que con el concepto de paquete, puede definir clases con el mismo nombre en diferentes paquetes. Al igual que no puede colocar archivos con el mismo nombre en la misma carpeta, en diferentes carpetas. Los archivos pueden tener el mismo nombre de archivo. De hecho, la carpeta donde se almacena el archivo de clase también es la misma que el nombre del paquete. Por supuesto, el paquete es el mismo que la carpeta y las categorías se pueden clasificar. Las categorías relacionadas son generalmente colocado debajo de un paquete. Después de tener un paquete, la clase tiene un nombre completo: nombre del paquete. Nombre de la clase. Por ejemplo, el nombre completo de la clase Scanner en el paquete del sistema java.util es java.util.Scanner ".

Dije muchas teorías de una vez, y por la mirada en sus ojos, pude ver que todavía era un poco comprensiva, así que decidí escribir algunos ejemplos para que ella pudiera entender.

"Escribo algunos ejemplos y lo entenderás", dije, y comencé a escribir el código en la computadora.

Estructura del directorio de archivos de código:

Código:

com / luoye / Human.java:

com / luoye / Man.java:

com / luoye / Woman.java:

com / luoye / HumanWorld.java:

com / xh / Man.java :

com / xh / Woman.java :

com / xh / HumanWorld.java :

Compila y ejecuta:

Recopilación de ejemplos de errores:

"Sí, se informó un error".

"Sí, ¿sabes qué salió mal?"

"Déjame ver", dijo, mirando el código con seriedad.

Después de un rato, me preguntó: "¿Qué hace ese super?"

Me sorprendió su salto de pensamiento, pero también me gustó su personalidad de preguntarle si no entendía, así que dije: "Eso se refiere al objeto principal, que es algo similar a esto".

"Oh", dijo ella.

Por esta palabra no sabría decir si ella la entendió o no, pero esta pregunta parece ser más útil que las palabras, así que ya no pienso en cómo explicárselo, creo que al final lo entenderá. .

“¿Ha encontrado el problema con el error del programa?” Decidí volver al error del programa.

"Bueno, no reportó un error diciendo que los atributos de Human no son públicos. Debería ser suficiente con cambiarlo a público".

"Entonces cámbialo y verás."

El humano que ella cambió:

Compila y ejecuta:

"Efectivamente", dijo con un poco de entusiasmo después de que el programa se estaba ejecutando.

"Entonces, a través de estos ejemplos, ¿entiendes el párrafo largo que acabo de decir en un instante?", Le pregunté, creo que puede entender a través de estos pocos ejemplos.

"Bueno, probablemente lo entiendo", pensó por un momento y dijo.

"La declaración de declaración de paquete solo se puede escribir al principio del archivo de clase, y solo puede haber una declaración de declaración de paquete en un archivo de clase, y solo una clase cuya autoridad de control de acceso es pública. Cuando se usa una clase que no está definida por este paquete, debe usar la palabra clave import para importar una clase. Puede importar una clase, o usar * para indicar la importación de todas las clases en ese paquete. Por supuesto, si hay un conflicto de nombre, también podemos usar el nombre completo de la clase para evitarlo. "Me temo que ella no pudo ver estos puntos de conocimiento ocultos, así que enfatizó.

"entendido."

"Está bien, entiendo el concepto de paquetes, entonces esta tabla de autoridad de control de acceso también debería entenderse". Apagué la tabla que Baidu acaba de salir y dijo.

"Bueno, casi lo entiendo."

"Jaja, inteligente."

"No me elogien, mi cabeza está a punto de estallar ahora. Recibo tanto conocimiento a la vez. Tengo que digerirlo bien. Hablemos de ello hoy".

"Obviamente, yo ..." Quería decir mi dama reina, pero de repente sentí que estas palabras parecían un poco frívolas cuando las dije, así que me tragué las siguientes palabras con vida.

Sin embargo, a ella no pareció importarle lo que dije, pensando y escribiendo código por su cuenta.

 

 

PD:

Varios puntos clave en esta sección: orientado a objetos, clase, objeto, herencia, paquete, permisos de control de acceso

 

Supongo que te gusta

Origin blog.csdn.net/m0_46455711/article/details/106096422
Recomendado
Clasificación