GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo:Introducción a la Programación – Programación Orientada a Objetos

Serie de procedimientos

Esta es la parte 5 de una serie de 5 partes de Introducción a la programación

  1. Introducción a la programación:Primeros pasos
  2. Introducción a la programación:tu primer programa
  3. Introducción a la programación:variables, tipos y manipulación de datos
  4. Introducción a la programación:control de flujo
  5. Introducción a la programación:programación orientada a objetos

Regreso para la lección final

¡Qué bueno verte de nuevo! Estoy feliz de que haya regresado para este artículo final en esta serie de Introducción a la programación en Atlantic.NET. Has aprendido mucho hasta ahora y este artículo no será una excepción.

En este artículo, vamos a explorar la orientación a objetos, que es una metodología de programación en la que construyes objetos que representan las cosas que quieres modelar y luego haces que esos objetos realicen varias tareas.

¿Quieres saber lo mejor? Ya lo has estado haciendo. Ahora solo necesita comprender lo que ha estado haciendo y estará listo para comenzar.

.

Objetos aleatorios

Primero, recuerda que en el artículo anterior terminé dándote dos líneas de código que aún no expliqué. Aquí nuevamente están las dos líneas:

Random random = new Random(); // Object orientation stuff
int answer = random.Next(10) + 1; // Give me a random number less than 10 and add one

La primera línea es la menos familiar para nosotros en este punto. Comenzaremos con la nueva palabra clave, que es, bueno, new . Qué new hace es instanciar un objeto. Instanciar significa crear una instancia de algo y, en este caso, estamos creando una instancia de una clase llamada Random() .

Así que esta primera línea crea un nuevo objeto a partir de Random() class y luego lo asigna a una variable de tipo Random y cuyo nombre es random . ¡Eso es mucha aleatoriedad para una computadora que no es aleatoria en absoluto! Este desglose puede ayudar si encuentra esa explicación confusa.

Primero, tienes el tipo de variable. Hasta ahora hemos usado int y string tipos, así que aquí estamos introduciendo un nuevo tipo, o, en realidad, un tipo de clase, llamado Random .
Segundo, tenemos el nombre de la variable. Al trabajar con variables en artículos anteriores, hemos usado nombres de variables como input y valor . Tenga en cuenta que, en este caso, estamos usando un nombre de variable de aleatorio (lo hemos escrito en minúsculas para ayudarlo a distinguirlo), aunque podría ser casi cualquier cosa que desee, como número o hey_there_human_can_you_get_me_a_cookie_please_kthxbye .
Tercero, y esta es literalmente la parte nueva, es cómo asignamos un valor a la variable. En artículos anteriores, hemos establecido esto en la salida de Console.ReadLine() método o un valor fijo como 8 o "¡Hola mundo!". Ahora, estamos usando un enfoque ligeramente diferente porque estamos creando un nuevo objeto con el new palabra clave.

.

Antes de pasar a la siguiente línea, hagamos un pequeño repaso.
.

Una revisión de clases, objetos, propiedades y métodos

En la orientación a objetos, los dos conceptos más importantes son clases y objetos. Aprendiste sobre esto brevemente en el segundo artículo de esta serie cuando expliqué que puedes pensar en las clases como plantillas y en los objetos como lo que creas a partir de esas plantillas, por ejemplo, un pastel (objeto) de una receta (clase).

Una clase, siendo la plantilla para los objetos, define lo que serán los objetos a través de propiedades y métodos. Cuando creas un objeto usando el new palabra clave, obtiene un objeto único que tiene propiedades y métodos definidos por la clase.

Por ejemplo, es posible que desee crear un nuevo pastel a partir de una receta determinada. Al hacerlo, puede decir que crea una instancia de la receta y obtiene un objeto de pastel. El pastel es único de todos los demás pasteles hechos con esa receta, por lo que los cambios que realice en un pastel no afectarán a ningún otro pastel; poner glaseado en un pastel no pone glaseado en todos los pasteles.

Las propiedades son los valores que definen qué es un objeto. Puede ser más fácil si piensa en una propiedad como una especie de variable que se adjunta a un objeto. Por ejemplo, para un objeto de pastel, el tipo de glaseado o relleno puede ser una propiedad.

Los métodos definen lo que un objeto puede hacer. Por ejemplo, un coche puede conducir. Realmente no necesitas saber cómo funciona un motor; simplemente puede decirle al automóvil que arranque, y el automóvil se encargará de lo que debe hacer para acelerar el motor y ponerlo en marcha. Una de las cosas hermosas de la orientación a objetos es que realmente no nos importa el funcionamiento subyacente del método, ni tenemos que hacerlo. Este es el concepto de abstracción que también discutimos anteriormente.

Debido a que ya hemos estado hablando de tortas, podemos imaginar métodos para la torta como AddFilling y WrapInPaper eso agregaría o ajustaría la propiedad de relleno o designaría un pastel como envuelto en papel, por ejemplo.

.

A menudo puede reconocer que está tratando con objetos y clases mediante el uso de puntos o "puntos". Por ejemplo, en la salida de nuestro programa, usamos Console.ReadLine() (hablado como "Console dot ReadLine"). La primera parte antes del punto determina la clase u objeto y la segunda parte después del punto determina las propiedades o métodos que deseamos invocar.

¿Cómo se nota la diferencia entre propiedades y métodos? La mayoría de las veces, los métodos tendrán paréntesis mientras que las propiedades no. Puede decir, por ejemplo, que el comando Console.ReadLine() pregunta la Console clase u objeto para invocar el ReadLine() porque "ReadLine" va seguido de paréntesis.

Para las propiedades, encontrará que interactúa con ellas de la misma manera que lo hace con las variables normales. Puede realizar operaciones matemáticas, asignar valores, leer valores, etc., al igual que con int y string variables De hecho, si quisieras cambiar un poco nuestro código de juego, podrías establecer las propiedades para los colores de primer plano y de fondo de la consola de la siguiente manera:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;

La adición de estas declaraciones hará que el texto se escriba en blanco sobre un fondo azul la próxima vez que genere algo en el programa, como se ve en la Figura 1 a continuación.

Figura 1:Texto de consola blanco sobre azul

Podrías haber esperado que toda la ventana fuera azul, ¿verdad? Obtenemos solo las líneas de salida azules porque no le hemos dicho a la consola que borre cualquier fondo negro que ya esté allí. Podemos lograr este cambio llamando a Clear() método en la consola:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();

Con esta adición, obtenemos algo similar a la Figura 2 a continuación.

Figura 2:Ventana de consola azul

En este ejemplo, usa la orientación a objetos primero para asignar valores a las propiedades en la consola y luego para pedirle a la consola que haga algo. Este patrón es común en la orientación a objetos.

Hay una cosa más con respecto a los métodos que necesita aprender y es el uso de parámetros . Afortunadamente, ya ha utilizado un parámetro al escribir texto en la consola utilizando WriteLine() método.

Los parámetros le permiten configurar cómo debe ejecutarse un método. Por ejemplo, cuando desea que la consola escriba algo, debe decirle qué escribir. Lo hace poniendo uno o más parámetros entre paréntesis después del nombre del método.

Console.WriteLine(“this is a parameter”);

Hasta ahora, solo hemos usado texto fijo para generar algo, pero también podemos pasar variables, propiedades o incluso objetos completos a métodos. Por ejemplo, WriteLine() método, puede recibir un int variable para pasar a la consola muestra el valor de esa variable.

int i = 99;
Console.WriteLine(i);

Exactamente lo que puede hacer con las distintas clases y objetos varía mucho. Debe consultar la documentación de la API para obtener más información sobre las capacidades de los diferentes objetos. Algunas herramientas de desarrollo, como Visual Studio, también pueden ayudarlo enormemente al sugerir valores basados ​​en lo que desean los métodos, o sugerir propiedades y métodos disponibles cuando comienza a escribir un objeto o nombre de clase.

En Visual Studio, por ejemplo, puede ver todas las propiedades de la consola escribiendo Console y "punto". Espere una fracción de segundo y debería ver una lista de propiedades y métodos e incluso documentación sobre lo que hacen las diversas propiedades y métodos, como se muestra en la Figura 3 a continuación.

Figura 3:Indicador de Visual Studio Intellisense

En Visual Studio, esta característica se llama IntelliSense, y si realiza su desarrollo en Visual Studio, será una de las características más útiles que puede usar. Otras herramientas de desarrollo también ofrecen una funcionalidad similar.

Finalmente, hay un tipo especial de método en orientación a objetos llamado constructor . Un constructor es un método llamado cuando creas un objeto con el new palabra clave. Este método le permite realizar tareas como inicializar valores para el objeto y siempre es el primer método llamado en la vida útil de un objeto.

.

Volver a nuestro juego de adivinanzas

Cuando escribimos Random random = new Random(); el Random() parte es el constructor. Al igual que otros métodos, puede aceptar parámetros, que luego el método puede usar para inicializar las propiedades del objeto.

Ahora podemos devolverlo a la segunda línea que agregamos para crear el número entero aleatorio para nuestro juego.

int answer = random.Next(10) + 1;

Es posible que haya notado que cuando comenzó a escribir el texto (a menos que simplemente lo haya copiado, lo cual también está bien; solo mire la Figura 4), IntelliSense de Visual Studio apareció y le dijo cuál era el Next() el método lo hace, como se muestra a continuación.

Figura 4. Aleatorio.Siguiente()

Esta pista te dice que Random.Next() el método necesita un parámetro de tipo int con un valor máximo de “maxValue”. Tenga en cuenta que el nombre indicado no es un tipo sino más bien un descriptor; no necesita llamar a sus valores enteros "maxValue".

A continuación, aprendemos que cuando llamamos a ese método con un int parámetro, el método nos devolverá un número entero aleatorio no negativo. En nuestro juego, asignamos eso en un nombre de variable de respuesta para que podamos consultarlo más tarde.

Sin embargo, la documentación establece que el valor devuelto es menor que el maximo. Entonces, cuando pasamos 10, obtenemos un valor que es menor que eso, por lo que solo puede ser hasta 9. Además, el número devuelto por Next() no es negativo, lo que significa que puede ser 0, y necesitamos un número entre 1 y 10, inclusive.

Lo que obtenemos, en otras palabras, cuando llamamos a random.Next(10) es cualquier número del 0 al 9. Agregar 1 a ese número significa que se convertirá en un número entre 1 y 10 antes de que lo asignemos a respuesta .

Si ahora revisamos esas dos líneas, debería tener más sentido lo que sucede:

Random random = new Random();  
int answer = random.Next(10) + 1; 

Primero, creamos un nuevo objeto basado en el Random clase, a la que llamamos random . Luego, le pedimos que random invoca su Next() y pase el valor 10 a ese método. Luego, cuando ese método se haya ejecutado, agregamos 1 al resultado y luego almacenamos el valor en un int llamada respuesta .

¡Eso es todo! ¡Ya terminaste! Ahora, cada vez que ejecute este programa, su usuario tendrá que adivinar un valor aleatorio que le indicó a la computadora que generara.

.

Mira lo lejos que has llegado

Has creado y entendido, con suerte, todos los aspectos de un juego de consola simple. A lo largo de esta serie, ha aprendido muchos aspectos de la programación, desde cómo se ejecutan los programas, cómo crear aplicaciones, cómo escribir código, qué código escribir, variables, bucles, ramas, objetos, clases.

Sin embargo, lo que debe saber es que lo que ha aprendido ahora es simplemente la base de lo que necesita saber como programador. Ya sea que desee iniciar un camino como desarrollador o simplemente quiera aprender lo suficiente para impresionar a sus amigos, las lecciones de estos artículos deberían ser un buen punto de partida.

Espero que hayas disfrutado de esta serie y si estás interesado en explorar más. Asegúrese de consultar también los otros artículos de la comunidad de Atlantic. Dondequiera que te lleve esta serie desde aquí, ¡disfruta de su programación! Asegúrese de consultar las soluciones de alojamiento de VPS líderes en el mercado de Atlantic.Net.

Serie de procedimientos

Esta es la parte 5 de una serie de 5 partes de Introducción a la programación

  1. Introducción a la programación:Primeros pasos
  2. Introducción a la programación:tu primer programa
  3. Introducción a la programación:variables, tipos y manipulación de datos
  4. Introducción a la programación:control de flujo
  5. Introducción a la programación:programación orientada a objetos

Linux
  1. Lenguaje de programación C - Introducción

  2. Cómo empezar a aprender un lenguaje de programación

  3. Cómo generar una contraseña aleatoria en Linux usando /dev/random

  4. Cómo instalar el lenguaje de programación R en Fedora 35

  5. Cómo:Programación de sockets en Python

Cómo:Introducción a la programación:variables, tipos y manipulación de datos

Cómo:programación orientada a objetos:constructores y herencia

Cómo instalar el lenguaje de programación Go en Ubuntu 20.04

Cómo instalar el lenguaje de programación Rust en AlmaLinux 8

Cómo instalar el lenguaje de programación Rust en Linux

Cómo instalar GoLang (lenguaje de programación Go) en Linux