JS++ | Métodos virtuales

Como mencionamos en la sección anterior, si queremos polimorfismo en tiempo de ejecución, el uso de conversiones puede conducir a un código sucio. A modo de ejemplo, cambiemos nuestro código main.jspp para que todos nuestros animales estén dentro de una array. A partir de ahí, recorreremos la array para renderizar el animal. Abra main.jspp y … Continue reading «JS++ | Métodos virtuales»

JS++ | Campos y Métodos

Crear y renderizar un animal Abra ‘src/Animals/Cat.jspp’ e ingrese el siguiente código: external $; module Animals { class Cat { void render() { var $element = $( «»» <div class=»animal»> <i class=»icofont icofont-animal-cat»></i> </div> «»» ); $(«#content»).append($element); } } } Una cosa que puede notar de inmediato es la string de varias líneas («»»…»»»). Cuando … Continue reading «JS++ | Campos y Métodos»

JS++ | Funciones

Una función es una sección de código que contiene un conjunto de instrucciones, donde las instrucciones describen cómo se debe realizar una tarea en particular. Las funciones se declaran y luego se pueden llamar una o más veces. Declarar una función implica especificar las instrucciones que contendrá la función. Cuando se llama a una función, … Continue reading «JS++ | Funciones»

JS++ | Interfaces

Como aprendimos en el capítulo sobre polimorfismo de subtipos, una operación definida para un supertipo puede sustituirse con seguridad por sus subtipos. Como resultado, las operaciones definidas para los objetos ‘Animal’ pueden aceptar con seguridad objetos ‘Gato’ o ‘Perro’. Además, mencionamos que no debe confundir subtipado con herencia. La subtipificación describe relaciones entre tipos, mientras … Continue reading «JS++ | Interfaces»

JS++ | Herencia

Hasta ahora, el único tipo de animal que hemos definido es un gato (a través de la clase ‘Gato’). Nuestra clase ‘Gato’ también requiere que nombremos a nuestros gatos. Finalmente, nuestra clase ‘Cat’ realiza la representación en la página web. Sin embargo, ¿y si quisiéramos introducir otros animales? ¿Cómo deberíamos implementar perros, pandas y rinocerontes? … Continue reading «JS++ | Herencia»

JS++ | El modificador ‘final’

En el contexto de los métodos virtuales discutidos en la sección anterior, el modificador ‘final’ nos permite formar una especificación aún más correcta. Cuando se aplica a métodos anulados, el modificador ‘final’ nos permite especificar que este método anulado es el último y no puede anularse más. Esto evita que las subclases anulen aún más … Continue reading «JS++ | El modificador ‘final’»

JS++ | Constructores

En nuestro ejemplo de gato, pudimos crear una instancia de nuestro gato y proporcionarle un nombre por separado. Sin embargo, puede ser deseable requerir que el gato sea nombrado en la instanciación para que no olvidemos accidentalmente nombrar un gato. Los constructores nos permiten controlar la instanciación. De forma predeterminada, JS ++ proporciona un constructor … Continue reading «JS++ | Constructores»

JS++ | Clases, programación orientada a objetos y tipos definidos por el usuario

Hasta ahora, hemos estado declarando variables, recorriendo datos y escribiendo ‘si’ y otras declaraciones condicionales. Estas operaciones comprenden el paradigma de «programación imperativa» en el que describimos «cómo» funciona un programa paso a paso (o, más específicamente, declaración por declaración). A menudo, en la programación del mundo real, queremos poder describir objetos del mundo real. … Continue reading «JS++ | Clases, programación orientada a objetos y tipos definidos por el usuario»

JS++ | Bucles

A menudo sucede en la programación de computadoras que desea que una pieza de código se ejecute más de una vez. Los bucles son declaraciones de programación que le permiten manejar tales casos. JS++ contiene bucles de varios tipos, y veremos varios de ellos en este tutorial. Sin embargo, comenzaremos examinando dos expresiones que se … Continue reading «JS++ | Bucles»

JS++ | Sistema de tipo

RGBtoHex: Usando JavaScript de JS++ Vamos a crear dos archivos, un archivo JavaScript y un archivo JS++, para presentar cómo interactúan entre sí. Vamos a usar el ejemplo clásico ‘rgbToHex’ para entender las garantías de tipo JS++. Primero, cree un archivo llamado rgbtohex.js (JavaScript) e ingrese el siguiente código: (No se preocupe por tratar de … Continue reading «JS++ | Sistema de tipo»