thedark123
Usuario (Venezuela)

Hola amigos hoy les traigo este post informativo para todos xD espero que les guste Bueno Taringueros Enpezemos! ¿Las Caricaturas? Una caricatura es un retrato que exagera o distorsiona la apariencia física de una persona o varias, en ocasiones un estrato de la sociedad reconocible, para crear un parecido fácilmente identificable y, generalmente, humorístico. También puede tratarse de alegorías. Su técnica usual se basa en recoger los rasgos más marcados de una persona (labios, cejas, etc.) y exagerarlos para causar comicidad o para representar un defecto moral a través de la deformación de los rasgos. La caricatura política nace propiamente en Francia, tras las ilustraciones alusivas a temas controvertidos y de personajes como Napoleón III y Luis Felipe, que ponían en tela de juicio su credibilidad ante la opinión pública. Estas ilustraciones fueron impulsadas gracias a la difusión de la litografía que permitió la fundación de periódicos ilustrados en un mayor número. La caricatura política es desde entonces un sistema de lucha dirigido con virulencia contra personajes de la vida pública, con el ánimo de ridiculizarlos para resaltar sus errores. Además aporta una visión no formal a la opinión pública, permitiendo revivir el pasado gracias a la facultad del hombre de integrar elementos heterogéneos a la visión histórica. Darwin caricaturizado en 1870 por John Tenniel. Autorretrato caricaturesco de Francisco de Goya, dibujado en una de sus cartas a Martín Zapater. En él se presenta chato,como se describe a sí mismo en su epistolario. Caracteristicas: La caricatura como género artístico suele ser un retrato, u otra representación humorística que exagera los rasgos físicos o faciales, la vestimenta, o bien aspectos comportamentales o los modales característicos de un individuo, con el fin de producir un efecto grotesco. La caricatura puede ser también el medio de ridiculizar situaciones e instituciones políticas, sociales o religiosas, y los actos de grupos o clases sociales. En este caso, suele tener una intención satírica más que humorística, con el fin de alentar el cambio político o social. La forma más común de las caricaturas políticas y sociales es la viñeta. Si bien el término caricatura es extensible a las exageraciones por medio de la descripción verbal, su uso queda generalmente restringido a las representaciones gráficas. Existen caricaturistas de muy distintas índoles, temas y estilos, ya que la caricatura, con muy pocas palabras (en algunos casos, sin palabra alguna) permite también hacer comentarios políticos en clave de humor verdaderos chistes visuales, y por ello casi todos los diarios del mundo suelen incluir una o más caricaturas en su sección de opinión, también suelen observarse caricaturas exentas en otros mass media, por ejemplo en ciertas revista de comics, generalmente de índole satírica. Historia: La caricatura, en su sentido moderno, nació en Bolonia a finales del siglo XVI, en la escuela de arte fundada por una familia de pintores, los Carracci. Los estudiantes de esta academia se divertían haciendo retratos de los visitantes bajo la apariencia de animales u objetos inanimados, esto llegó a ser compartido por Gianlorenzo Bernini. El grabador Pier Leone Ghezzi, que trabajaba en Roma, continuó esa tradición y, por un módico precio, caricaturizaba a los turistas. Lo que estos artistas italianos hacían eran retratos humorísticos para uso privado y casi nunca resultaban satíricos o maliciosos, en este sentido Giandomenico Tiepolo también incursionó en el género de la caricatura. En España ciertos trabajos de Goya tienen visos de fuerte caricatura. A pesar de que sus principales iniciadores de la caricatura española no se mostrarian hasta hace más de un siglo. Sus decanos fueron Tomás Padró Pedret, Francisco Ortego Vereda (1833-81) y José Luis Pellicer, el segundo fue un excelente cronista humorístico de los tipos de su época y autor de sátiras políticas en el periódico El Fisgón. Sigue la pléyade de humoristas de las publicaciones del último momento del reinado de Isabel II y de las etapas sucesivas (La Gorda, La Flaca, Gil Blas), en los que la intención política, evidente, priva sobre la entidad artística del dibujo. Ya a comienzos de nuestro siglo, el gran caricaturista madrileño es Ramón Cilla (1859-1937), de indudable estilo. Después, se abre en la prensa española, diaria o semanal, toda una rica etapa de caricaturistas. Ya que es en la primera mitad del siglo XX en la que se consolida una especie de escuela española de caricatura teniendo entre sus exponentes a Luis Bagaría, éste trabajó junto a Opisso y Junceda en la célebre revista Cu-cut!. En tanto género la caricatura política nace en Inglaterra; la sátira impresa evidenció las luchas entre el Papado y Lutero, e incluso Luis XIV fue víctima de tempranas caricaturas. Sin embargo, el género de caricatura política sólo se estableció hasta 1770, cuando en Inglaterra se tomó como un arma de defensa contra quienes manejaban asuntos de Estado. El pintor William Hogarth entre los siglos XVII y XVIII realizó ilustraciones burlonas de crítica social, decididamente dedicados a la caricatura estuvieron George Cruikshank (siglo XVIII/XIX), James Gillray ( siglos XVIII-XIX) y su coetáneo Thomas Rowlandson, Max Beerbohm (siglo XIX), Henry Mayo Bateman y el célebre John Tenniel quien, a más de hacerse mundialmente conocido por las ilustraciones dedicadas a Alicia en el País de las Maravillas fue uno de los más destacados caricaturistas de la revista "Punch". Posiblemente el caricaturista político estadounidense más notable del siglo XIX fue Thomas Nast, creador de los símbolos de los partidos Republicano y Demócrata, el elefante y el asno,respectivamente. En ese siglo también destacaron Joseph Keppler, fundador (en 1826) y editor del semanario humorístico "Puck", y su socio Bernhard Gillam, quienes atacaron la corrupción de los dirigentes políticos, así como a los muchos empresarios adinerados de la época, a estos se sumó el también estadounidense Garry Trudeau, en el siglo XX se destacaron David Levine,Sam Viviano y Al Hirschfeld Sin dudas el máximo exponente de la caricatura ha sido el francés decimonónico Honoré Daumier quien trabajó junto a Achille Devéria, Raffet y Gerard este último más conocido por su pseudónimo Grandville en las revistas Le Silhoutte y Le Charivari; la maestría genial de Daumier es alcanzada también por Gustave Doré, siendo dignos de mencionar Gavarni (Guillaume Sulpice Chevalier), André Gill y sus trabajos en la revista Le Père Duchêne ilustré". Tanto en Toulouse-Lautrec como en Juan Gris, que actuaron en las revistas Le Rire y L´Assiette au Beurre, respectivamente, encontramos también elementos de caricatura, mientras el crítico y escritor Jules Husson Champfleury escribía la primera Historia de la caricatura. En la Italia de la primera mitad de siglo XX el pintor Ottone Rosai recurrió a formas caricaturescas, y cabe destacar los nombres de Umberto Tirelli, Galantara y Scalarini, así como la sátira de Mario Sironi ya entrado el siglo. En la Austria de fines de la Belle Époque,sobresalieron los ilustradores de la revista satírica Simplicissimus. La caricatura literaria: En el ámbito literario también es frecuente hablar de "caricatura" y, en tal sentido "caricaturas literarias" son en cierto aspecto las obras de Cervantes, Alonso Jerónimo de Salas Barbadillo o las del chileno contemporáneo Jenaro Prieto Caricatura de Gustave Eiffel. Caricatura de Lenin, 1920. Caricatura de Hitler, Franco y Mussolini. Bueno Unas Caricaturas Animadas Y Otras! Ahora Caricaturas De Famosos! Bueno Este Es Todo Comenta! Y PUNTOS II IIII IIIIII IIIIIIIIII IIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII II
Hola y bienvenidos a mi nuevo post Comentarios fuera del tema serán eliminados Usuario que forme FOROBARDO sera bloqueado y su comentario eliminado. Las singulares supersticiones japonesas. El temor a sucesos que están fuera de nuestro entendimiento ha desarrollado en todas las culturas del mundo particulares formas de actuación. En Japón, la mayoría tiene raíces muy antiguas, con tradiciones basadas en el respeto a la naturaleza que se cree contienen energías o espíritus. Así, muchas supersticiones japonesas implican la creencia de animales, números de mala suerte o incluso palabras homófonas basadas en la escritura tradicional o Kanji. A continuación una lista de las más representativas que incluso hoy en día tienen influencia: 1) No se debe pintar el nombre de nadie en rojo, es como marcar a la persona señalando que va a morir. Se cree que trae mala suerte. 2) Si un coche fúnebre pasa, se debe ocultar el pulgar dentro del puño, sino, tus padres morirán. Aunque no tenga mucho sentido, pulgar en japonés se traduce literalmente como “dedo padre” y guardarlo en el puño es considerado como un signo de protección a los progenitores. 3) Si se estrenan zapatos nuevos y por cualquier razón se mojan en un día lluvioso, cada vez que se vuelvan a calzar también volverá a llover. 4) Hay que evitar tomar fotografías a las tumbas para no perturbar el descanso de los difuntos. 5) Si se cruza la mirada con la de un cuervo, es que algo malo pasará. 6) En caso de acudirse a un funeral se debe echar sal sobre uno mismo, pues se cree que esto purifica. 7) Cuando se está nervioso, se escribe con el dedo “persona”, en japonés (”hito”), en la palma de la mano tres veces y haz como que te lo tragas. Esto, según, ayuda a tranquilizarse. 8) El 4 y 9 traen mala fortuna. Una de las pronunciaciones de 4 es “shi”, que también significa muerte, y “ku” que significa sufrimiento. 9) Si es vista una araña de mañana, significa buena suerte; pero si es vista por la noche, significa que se tendrá mala suerte. 10) No se deben estrenar zapatos nuevos por la noche, ya que ello atrae la mala suerte. 11) Los palillos no deben clavarse en la comida, especialmente en el arroz. Los palillos sólo se clavan en el arroz dentro del bol que se coloca en el altar en los funerales. 12) La comida no debe pasarse de palillos a palillos pues esto forma parte también del ritual funerario donde los restos incinerados de la persona, junto con algunos fragmentos de los huesos, se pasan a la urna con los palillos. 13) Cortarte las uñas por la noche trae malos presagios. De hacerse así, se dice que no yacerás con tus padres en su lecho de muerte. 14) Si un zapato de alguien que se ha escapado o ha huido es puesto en el horno de la cocina, éste volverá por su propio pie. GRACIAS POR PASARTE POR MI POST

LEER....... Hola a todos y bienvenidos/as a mi nuevo en este les mostrare unas cuantas curiosidades de Bart Simpson de la serie Los Simpson bueno enpezemos: CURIOSIDADES DE BART SIMPSON 1. Curiosidad En varios capítulos podemos ver que Bart escribe con la mano zurda, por lo que deducimos que es zurdo. 2. Curiosidad Bart sabe hablar francés ya que aprendió en The Crepes of Wrath. También, en Blame it on Lisa, igualmente Bar sabe hablar Español 3. Curiosidad Bart brindo su apoyo a South Park tras las amenazas que ellos recibieron de parte de los islamistas. 4. Curiosidad Bart sigue siendo un niño dentro de la serie pero en realidad ya tiene 33 años. 5. Curiosidad El cabello de Bart siempre tiene 9 puntas. 6. Curiosidad la revista norteamericano TV Guide le otorgó el undécimo lugar (junto a Lisa) en la lista de los "50 mejores personajes de dibujos animados de todos los tiempos 7. Curiosidad La revista Time consideró a Bart como el cuadragésimo sexto personaje (de cien) más influyente del siglo XX. 8. Curiosidad Bart nació el 17 de diciembre de 1979, aunque el creador Matt Groening afirma que ellos no crecen. 9. Curiosidad El nombre de Bart proviene del Anagrama de Brat, en referencia del mismo Matt Groening. Sin embargo este mismo personaje se encuentra basado en Mark Groening, hermano de Matt. 10. Curiosidad Algunas de las cosas que Bart ha escrito en la pizarra: No volveré a patinar por los pasillos (La odisea de Homer0) No instigaré a la revolución (La depresión de Lisa). No debo eructar en clase (Una familia modelo). No dibujaré mujeres desnudas en clase (La llamada de los Simpson) No derrocharé la tiza (Bart es un genio). 11. Curiosidad Bart adquirió su segundo nombre en un doblaje, ya que Nancy Cartwright (que hace la voz de Bart) tenía que leer una línea de dialogo que decía “…o mi nombre no es Bartholomew J. Simpson”. Le preguntaron qué significa la J. y ella contesta Jo-Jo riéndose. 12. Curiosidad Durante las primeras temporadas, Bart era el personaje principal y rebelde que normalmente se solía librar de recibir castigo alguno por sus travesuras, cosa que llevó a padres y conservadores a describirlo como un pobre modelo para los niños.35 36 En su tiempo, el presidente vigente George H. W. Bush dijo que "seguiría intentando reforzar el modelo de familia americana, haciendo que se parezca mucho más a los Dalton y mucho menos a los Simpson".37 Algunos colegios estadounidenses llegaron a prohibir que los niños llevaran camisetas de Los Simpson en especial una en la que salía Bart acompañado de un titular que pregonaba "Underachiever... And proud of it, man!" ("Persona que no rinde...¡y orgulloso de ello, tío!".37 A pesar de la prohibición, los productos comerciales de Los Simpson se vendieron muy bien generando hasta dos billones de dólares americanos durante los primeros catorce meses que salieron al mercado 13. Curiosidad Debido a su carácter y constantes problemas a Bart Simpson se le cataloga como un Anti Magical Girl a pesar de no ser Anime 14. Curiosidad La camisa de Bart siempre es roja, aunque en algunas mercancías (Como en la “Guía de la Vida”) usa camisa azul. Igualmente Homero piensa que utiliza una camisa azul. 15. Curiosidad Entertainment Weekly nombró a Bart el "artista del año" en 1990 16. Curiosidad Bar ha usado su camisa roja durante 5 años, como no los hace saber cuándo se enamora de la hija del Reverendo Alegría, pero esta lo corta entonces Bart le pregunta a Lisa si es porque tiene 5 años usando la misma ropa. Aunque en los cortos de The Tracey Ullman Show usa una camisa azul. 17. Curiosidad Bart es un niño de once años travieso, simpático, desenfadado y con una gran energía. En la escuela, discrimina a los niños más inteligentes que él y se junta con los más gamberros, cosa que le provoca numerosos castigos. Esto le suele causar dilemas cuando se ve forzado a defender a su hermana "cerebrito" en público. GRACIAS POR TU VISITA MIS OTROS POST:

Bueno Amigos A Qui Les Traigo Unas Imagenes Que Contienen Unos Chistes !Buenos! ] ] ] ] ] Esto Es Todo Espero Les Guste! Y SI Quieren Dejan Unos Puntitos! SI! Y COMENTARIO UN PUNTITO NO ES NADA

Hola y bienvenidos a mi nuevo post. ¿Por que a mi mascota no le gusta comer su concentrado? Hola todos estuvo buscando en internet alguna informacion de "Por que a mi mascota no le gusta comer su concentrado" y encontre en Yahoo Respuetas esta informacion muy buena, pondre todas las respuestas que pusieron los usuarios en el tema: Primero la pregunta: La pregunta la hiso un usuario de Yahoo Respuestas aqui esta: ¿Por que a mi mascota no le gusta comer su concentrado? Hola, tengo un perro al cual lo alimento con pastillas para perros pero no las come y ya no se que darle, por otro lado no se si darles huesos sea lo apropiado pienso que quizás les haga daño, quisiera que me den algunos consejos de como alimentar a mi mascota, plis !! Gracias. Ahora las respuestas de los usuarios. La mejor respuestas fue esta: Mejor respuesta - Elegida por la comunidad Yo les he dado pollo sin hueso calentado en olla 17 minutos y picado a todos los perros que he tenido y me duran 15 años =D yo estoy en contra de darles croquetas por que les causa cáncer en el recto (enserio) es triste por que lo que hacen las croquetas es hacer su popó dura y eso los lastima bien gacho lamentablemente muchas personas les gusta darles croquetas para ebitarse el trabajo de picarles pollo (por no desir flojera) o cuando les lansan namas las sobras de un pollo eso esta peor pues se les puede atorar los cartilagos o los huesos pequeños de los muslos........asi que pues espero que tu nos eas de esos =( Suerte Aqui otra: Dependiendo de la raza hay alimentos preparados para ellos que tienen todos los nutrientes que necesitan. Al principio se rehusan a comerlos, pero con el tiempo se acostumbran y lo comen con facilidad. No hay que cambiárselos muy seguido porque se familiarizan con los gustos o las marcas y no quieren otro. Además no hay que darles restos de comida porque si no no quieren el balanceado. Y otra mas: pues yo te recomiendo que le des comida casera con croquetas asi vas a ver q si se lo come mi mama les da mollejas con higados tortillas y mis perros estan sanos fuertes y se lo devoran jajaja espero q te sirva mi respuesta suerte SOLO NO LE DES CHOCOLATE O HUESOS X Q MI PERRO SE MURIO POR DARLE UN HUESO DE POLLO Y la ultima así ha de ser la marca de las pastillas que le das. prueba las tu a ver a que saben a ver si ati te gustan Espero que les sirva GRACIAS POR TU VISITA MIS OTROS POST: SIGUEME Y TE SEGUIRE
Programación orientada a objetos fácil de entender. En este post les enseñare como aprender a programar orientado a objetos es muy fácil: Comencemos por reconocer que para quienes venimos de la programación funcional es bastante difícil digerir los nuevos conceptos, por la sencilla razón de que estamos acostumbrados a la idea de que las entidades del mundo real que tratamos de modelar en nuestros programas son representadas por un conjunto de datos relacionados con las características de estas entidades (relevantes para nuestras aplicaciones), y simplemente escribimos instrucciones que actúan sobre estos datos para realizar cálculos, ordenaciones, almacenamiento/recuperación, etc. Resumiendo podríamos decir que un programa es algo representado en esta pequeña ecuación: Para ilustrar esta idea me remonto a la época en la que programábamos en BASIC. Uno de los primeros programas que escribimos debe haber sido algo tan simple como esto: En este pequeño programa, que calcula el Area de un Triángulo cualquiera, podemos ver: Los datos (modelos de las características que nos interesan del Triángulo) son las variables H, B (dimensiones) y A (área). La instrucción que realiza el cálculo es: LET A = (H * B) / 2. Adentrándonos más en el conocimiento de aquella versión de este lenguaje aprendimos que era posible crear subrutinas que hacían algún trabajo especial sobre los datos, dentro de una comunidad donde todo el mundo se conocía (datos y rutinas), y se esperaba que todas estos conjuntos de instrucciones tuvieran siempre el mejor comportamiento, y que futuras modificaciones no crearan problemas en lo anteriormente desarrollado (pero el tiempo demostró que los problemas sí surgieron y el código se complicó muchas veces hasta extremos intolerables). Por otro lado, podemos ver que aun cuando el programa hace el trabajo de calcular correctamente el área, el concepto de Triángulo realmente no existe en el mismo. Sólo suponemos que estamos calculando el Area de un Triańgulo cualquiera dadas su Altura y su Base. - o - Si avanzamos un poco en el conocimiento de los lenguajes de programación de alto nivel tenemos a Pascal. Una de las herramientas que nos proveía este lenguaje era la de los datos estructurados, entre los cuales había un elemento que permitía crear un conjunto de datos asociados a un concepto (un record o registro), elevando el nivel de modelado de la realidad. Así, mediante su uso, nos sería posible mejorar un tanto este pequeño programa de cálculo de promedio de Area, introduciendo (al menos en lo que respecta a datos) el concepto de lo que es un Triángulo. El código (en Pascal) podría ser: En el inicio de este segundo programa podemos ver la definición del tipo TTriangulo, type TTriangulo = record altura : real; base : real; end; que tiene asociadas las características relevantes de un triángulo, para efectos de nuestra aplicación: Altura y Base. Ahora podemos crear una variable Triangulo, del tipo TTriangulo anteriormente definido, además de otra variable Area para almacenar el resultado del cálculo. var Triangulo : TTriangulo; Area : real; Seguidamente tenemos una rutina que tomando nuestro triángulo solicita al usuario del programa la altura y la base para poder calcular el área. procedure LeerDatos(var triang : TTriangulo); Luego tenemos la rutina que, tomando nuestro triángulo, calcula el área dadas la altura y la base, y devuelve el valor calculado function CalcularArea(var triang : TTriangulo) : real; Finalmente tenemos el cuerpo principal del programa, que llama las rutinas LeerDatos y CalcularArea, y les envía el triángulo para que realicen su trabajo LeerDatos(Triangulo); Area := CalcularArea(Triangulo); Si comparamos este código con el del programa en aquella vieja versión de BASIC, podemos ver que en Pascal es posible colocar en el programa el concepto de Triángulo (al menos en lo que respecta a datos). No obstante, aún tenemos que escribir rutinas externas con respecto al concepto, pero que pueden trabajar sobre el mismo para capturar los datos esenciales y realizar el cálculo para el que ha sido diseñado el programa. Esto nos permitiría elaborar una nueva ecuación, parecida a la que vimos al inicio, pero con un nuevo nivel de abstracción: Yendo un poco más allá en este paradigma, la idea era crear montones de rutinas de carácter más o menos general que pudieran incluso ser reutilizadas en otras aplicaciones que desarrolláramos a futuro. Estas constituirían librerías de rutinas atesoradas en nuestros “cofres” de programadores. Por otro lado, los conceptos apoyados en el uso de los records (un Triángulo en este caso) proveían una forma de proteger los datos decidiendo cómo y cuándo pasarlos a las rutinas para que actuaran sobre ellos. - o - La experiencia con el mundo de los objetos llegó a través de Visual Basic, pero no acerca de crear objetos sino de utilizarlos. Con Visual Basic empezamos a notar las grandes ventajas que ofrecía el uso de propiedades y métodos de objetos como formularios, botones, cajas de texto, etc. Sin embargo, aún no entendíamos los conceptos básicos de la programación orientada a objetos, ni para qué realmente servía. Lecturas iban y venían, indecisiones sobre lenguajes (si C++ o Java), pero el camino de Pascal llevó a Object Pascal, y a Delphi. Entonces decidimos trabajar de acuerdo a la ecuación que acabamos de ver (programa = datos estructurados + rutinas), usando punteros también; pero las otras estructuras de datos asociadas a los elementos visuales (treeviews, listboxes, combos, etc.) forzaban el cambio de paradigma al mundo de los objetos, y, por supuesto, había que crear objetos. Llegado a este punto (no pudiendo resistir más los vientos de cambio) nos adentramos en el estudio del tema de los objetos: encapsulación, herencia, polimorfismo, patrones, y un largo etc. Entonces, ¿qué son objetos? Como hemos venido viendo en esta breve evolución, en la prehistoria -de la programación de alto nivel-, con BASIC, los datos y las instrucciones estaban “sueltos” en el programa (aunque en nuestra mente formaran una unidad); luego en la Edad Media, con Pascal, vimos que era posible incluir conceptos en los programas que, al menos en datos, formaban elementos que modelaban mejor sus contra-partes del mundo real, pero aún escribíamos rutinas externas que actuaban sobre y/o con los datos. Asimismo vimos cómo pasamos de tener un “campo abierto”, sin fronteras que protegieran a los datos de instrucciones que crearan problemas, a un nivel básico de protección con el uso de tipos record. Bien, en la Edad Moderna los objetos, esencialmente constituyen la unión de datos y rutinas dentro de un concepto, en un nivel de abstracción más elevado. Un objeto representa de manera bastante fiel a un elemento del mundo real (físico o no), conteniendo en sí mismo los datos correspondientes a las características relevantes de tal elemento y a las rutinas que actúan sobre estos datos para realizar el trabajo encomendado al programa. Adicionalmente a esto, los datos asociados al concepto generalmente están protegidos dentro del mismo, y es posible definir formas de acceso a estos de manera que sean leídos y/o modificados sus valores. Se dice entonces que los datos están encapsulados dentro del objeto y que los accesos constituyen la interfaz del mismo, para efectos de comunicación con el exterior. En esta ilustración vemos que el Objeto contiene los datos dato1, dato2 y dato3, que están ocultos dentro del mismo. Sin embargo, ofrece los accesos a estos datos Acceso a dato1 (que sólo permite leer el valor de dato1), Acceso a dato2 (que permite leer y/o modificar el valor de dato2), y Acceso a dato3 (poco común, pero posible, sólo permite escribir el valor del dato3 sin poder leerlo). Asimismo podemos ver que el Objeto tiene una interfaz pública que permite a cualquier código cliente sacar provecho de las potencialidades del mismo, y que la implementación (código del objeto), de las operaciones que es capaz de realizar y de los datos que maneja, está oculta dentro del mismo, siendo éste una especie de caja negra cuyo contenido no es visible. La comunicación entonces del código cliente con el objeto se da gracias al paso de mensajes, que es simplemente la invocación de los elementos que ofrece la interfaz (métodos de acceso, propiedades y operaciones o métodos de comportamiento). Comparando esta idea con un reproductor de video, la interfaz pública está constituida por los botones en la carcasa del aparato, y en el control remoto, a través de los cuales nos es posible iniciar o parar la reproducción, adelantar o atrasar segmentos, etc, sin tener en ningún momento que tocar cables o circuitos (la implementación). Ahora bien, ¿qué es elaborar un programa orientado a objetos?, o, ¿cómo creamos los objetos que necesitamos para modelar el mundo real? Acá entra el concepto de Clase. Cuando escribimos un programa orientado a objetos en lenguajes como Object Pascal, C++, Java, C#, etc., diseñamos y definimos clases que permiten crear luego los objetos, que son instancias (ejemplos) de esas clases. Una clase es una especie de molde del cual podemos extraer objetos que tendrán por supuesto la forma del molde (características o datos, y operaciones) pero que serán distintos unos de otros, con su propia identidad. De hecho, un Objeto tiene un Estado el cual es simplemente el conjunto de valores de sus características (datos). Por ejemplo, en la Clase L de la ilustración habríamos definido una característica llamada Color, la cual tendría el valor “amarillo” en el primer Objeto L; y, “azul” en el segundo. Una operación (o método de comportamiento) podría ser CambiarColor, la cual, por ejemplo, nos mostraría una forma de seleccionar el nuevo color. Ahora veamos todo esto en acción en la versión orientada a objetos de nuestro programa que calcula el área de un triángulo: En este código (escrito en C#, el lenguaje de programación creado por el mismo autor principal de Turbo Pascal y Delphi) encontramos primero la definición de la Clase Triángulo, la cual comienza con la palabra clave class seguida del nombre de la clase, es decir Triangulo. class Triangulo { Seguidamente está la lista de datos que modela las características relevantes del elemento Triangulo de la vida real. Esto es sus dimensiones y su área private double ancho; private double altura; private double area; La palabra private indica que los datos son privados, es decir que están protegidos dentro del objeto y no es posible tener acceso a ellos desde el código cliente. Sin embargo, luego viene la definición de los métodos de acceso a estos datos, a través de las Propiedades correspondientes: Altura, Ancho y Area. public double Altura { get { return this.altura; } set { altura = value; } } public double Ancho { get { return this.ancho; } set { ancho = value; } } En el caso de Altura y Ancho los elementos get y set indican cómo es posible leer y escribir los datos protegidos. La sección get contiene la instrucción return this.altura / return this.ancho, la cual indica que devuelve el valor del dato altura/ancho del elemento this, que es la palabra que identifica a un objeto cualquiera de la clase que estamos programando (en este caso Triangulo). Por otro lado, la sección set contiene la instrucción altura = value / ancho = value, siendo el elemento value la representación del valor que escribimos en el dato altura/ancho. Entonces si escribimos, por ejemplo, una sentencia a = unTriangulo.Altura, realmente se ejecutará dentro del código de la clase la instrucción return this.altura, que nos devolverá el valor de la altura del Triangulo y lo asignará a la variable a. Por otro lado, si la sentencia es unTriangulo.Altura = 5, el valor 5 será asignado a la variable value, la cual a su vez lo asignará al dato altura dentro de la clase a través de la instrucción altura = value. public double Area { get { return this.area; } } Para el dato area la definición de la propiedad Area (en C++, Java y C# los nombres son sensibles a mayúsculas y minúsculas, por lo tanto area no es lo mismo que Area) solamente tiene la sección get, lo cual indica que sólo es posible leer el valor del dato más no modificarlo. public void CalcularArea() { this.area = (this.ancho * this.altura) / 2; } El valor del dato area es obtenido mediante la llamada a la operación CalcularArea. Esta operación, o Método de la clase Triangulo, actúa tomando los valores de las dimensiones ancho y altura, multiplicándolos y dividiéndolos entre 2, como hemos visto en las versiones BASIC y Pascal de este mismo programa, pero con la salvedad de que no se trata de una rutina externa al concepto de triángulo sino que pertenece a la representación de este concepto, es parte de nuestra definición del concepto dentro del programa. Finalmente tenemos la clase principal del programa, class MainClass, que tiene dos rutinas o métodos: LeerDatos(Triangulo triang) y Main (string[] args). El primero toma el objeto Triangulo y solicita al usuario las dimensiones del mismo (parecido a la rutina que vimos en la versión en Pascal, sólo que aquella no pertenecía a clase alguna sino que era un elemento “suelto” dentro del programa principal). El segundo método (Main) es el inicio de la aplicación. Lo primero que hace es crear una instancia de la clase Triangulo sobre la cual trabajar. Esto lo realiza mediante la sentencia Triangulo unTriangulo = new Triangulo() Una vez que se tiene la instancia creada se procede a invocar el método que solicita las dimensiones del triángulo mediante LeerDatos(unTriangulo) A continuación se invoca al método del objeto que efectúa el cálculo a través de la sentencia unTriangulo.CalcularArea() la cual a su vez ejecuta la instrucción this.area = (this.ancho * this.altura) / 2 definida en la clase. Por último se muestra el resultado mediante el acceso al dato privado area que provee la propiedad Area del objeto Console.WriteLine(“El area es: {0}”, unTriangulo.Area) Analizado este código, podemos crear nuevas ecuaciones, con niveles superiores de abstracción que las anteriormente vistas (programa = datos + instrucciones y programa = datos estructurados + instrucciones) Siguiendo este nuevo paradigma la idea es diseñar y programar clases cuyas instancias (objetos) sean representación de sus contra-partes del mundo real de acuerdo a lo que intentamos modelar. Sin embargo, aun cuando la programación orientada a objetos provee herramientas para crear aplicaciones robustas y fáciles de mejorar, no es algo mágico que resuelve todos los problemas sin esfuerzo. En sí la programación de aplicaciones no es una actividad trivial: requiere de estudio, práctica y mucha imaginación. No todos los programadores hacemos las cosas de la misma manera y no todo el conocimiento y la experiencia personal conforman algo inmutable, sino que siempre es posible aprender y/o desarrollar mejores formas de crear aplicaciones. Eso es lo que hace esta actividad algo tan fascinante y gratificante cuando vemos nuestras creaciones funcionando y resolviendo problemas. Hasta la próxima entrega, en la que hablaremos sobre Herencia y Polimorfismo. Si te gusto o te es útil agrega unos puntos no cuesta nada y comenta.
![Los mejores programas para PC[2012]](https://storage.posteamelo.com/assets-adonis/assets/2014/06/26/C50-9UeVKPlHymg.webp)
El siguiente es un listado de programas que necesitas para tu pc, todos son gratuitos, no tienen requisitos y faciles de instalar. No se molesten por los enlaces de descarga, en taringa no se pueden subir enlaces de descargas por lo que esta es la mejor manera de compartir estos programas, todos estan activos y pueden tener fe de que no son una estafa. Battery Care Es cada ves más la gente que hoy en día tiene una portátil (una notebook, laptop, etc), es muy común usarlas para poder tener movilidad y trabajar desde cualquier lugar, pero la bateria es algo fundamental, y por eso la tenemos que cuidar. La solución se llama: BatteryCare, un software que tiene varias funciones para poder optimizar el uso de la batería de una laptop: Monitoreo de los ciclos de descarga. Conocer temperatura de la batería: lo recomendable es que no supere 60°C. Nivel de desgaste de la batería con respecto a su salida de fábrica. Estimación del tiempo que te queda para seguir usando la batería. Desactivar servicios de Windows (innecesarios) y ahorrar energía. DESCARGAR: ¡Descargar programas gratis! Alcohol 120 Portable Alcohol 120% es una utilidad capaz de grabar CD y DVD y que crea hasta 31 unidades virtuales. Estas unidades virtuales sirven para reproducir desde el disco duro como si tuvieses insertado el DVD o CD en cuestión. Imagínate la utilidad de Alcohol 120%, sin ir más lejos, tendrás los CD o DVD que más uses "montados" en tu disco duro con lo que te ahorrarás buscarlos, ponerlos y quitarlos cada vez. DESCARGAR: ¡Descargar programas gratis! Fake Voice ¿Quieres prestarle una broma a alguno de tus amigos? Con Fake Voice puedes manipular tu voz para que cuando hables por Messenger o Skype parezcas otra persona. Fake Voice te permite modificar en tiempo real tu voz para que imite la de una mujer, un hombre, un niño pequeño o hasta un robot. También puedes añadir eco para simular que hablas desde, por ejemplo, una caverna. DESCARGAR: Descargar programas gratis Game Booster Ejecutar videojuegos en un ordenador puede ser una experiencia frustrante, sobre todo por la cantidad de procesos que copan los recursos del sistema. Game Booster es un optimizador que cierra temporalmente servicios y programas en segundo plano para que puedas disponer de toda la memoria y procesador que necesitan tus juegos. DESCARGAR: Descargar programas gratis Driver Easy Setup DriverEasy ayuda a instalar dispositivos detectan qué controladores hacen falta y descargándolos de Internet. Puede haber casos en que los controladores hayan funcionado correctamente durante algún tiempo y ya no lo hagan, o que se hayan corrompido. Para todos estos casos, DriverEasy también ofrece la posibilidad de actualizar los controladores instalados. De esta manera se garantiza que los dispositivos funcionen correctamente. DESCARGAR: Descargar programas gratis Utorrent uTorrent es un cliente BitTorrent ligero y potente. Con él, podrás descargar todos los torrent que quieras. Ocupa poco espacio en disco y se carga en pocos segundos. En comparación con otros programas más pesados, uTorrent es muy placentero de usar. Minimizado en la barra de tareas, apenas estorba. DESCARGAR: Descargar programas gratis Super Mario orld PC Diviertete un rato jugando en tu computador los clasicos juegos de Mario world para pc, recuerda un rato tu juventud porque recordar es vivir. DESCARGAR: http://joearroyo-exitos.blogspot.com/p/programas-gratis.html Kamasutra Libro Ilustrado Kamasutra ilustrado con mas de 150 paginas, aprende y practica. DESCARGAR: http://joearroyo-exitos.blogspot.com/p/programas-gratis.html Si te fue útil o te gusto mi post agrega puntos, recomienda y comenta.
![Hallacas Andinas[Especial Navidad]](https://storage.posteamelo.com/assets-adonis/assets/2014/06/26/C50-9UeVKPlHymg.webp)
Hola amigos y Feliz Navidad en este post les voy a enseñar como hacer Hallacas Andidas hechas por mi y con ayuda de mi Mama sigue las instrucciones:La hallaca es uno de nuestros platos típicos en las Navidades, es la reina por excelencia mi recomendación número 1 es que hagan el proceso de elaboración por etapas, porque como dije es algo agotador. Así que un día dedíquenlo a lavar las hojas de plátano, el segundo día para dejar el guiso con los ingredientes que les explicaré de manera que resalte su sabor y el tercer día dediquenlo a la preparación las hallacas andinas son las únicas en el país donde el guiso va crudo para luego poner la hallaca a cocinar por hora y media.Ingredientes:Estas cantidades nos dieron 90 Hallacas.2 kg. de carne de res. (pulpa negra, muchacho redondo o muchacho cuadrado... carne magra)2 kg. de carne de cerdo o cochino.1 kg. de tocino.Aceitunas (al gusto)Alcaparras (al gusto)Garbanzos(al gusto)1 tza Aceite de maíz1 kg. Cebolla250 grs. Ají dulceEncurtidosPasas1 kg. Pimentón250 gr. CebollinOréganoSalComino AjoVino de cocinaAgua tibia3 paquetes de Harina de maíz blanca OnotoHojas asadas de plátanoPabiloSalsa inglesa (opcional)Preparación guiso:Cortar toda la carne (carne de res, cochino y tocino) en pequeños trozos. Colocar todo en un bol. Agregar: cebollin, cebolla, ají dulce, pimentón y ajo.. todo finamente picado, sazonar con orégano, sal, comino, vino de cocina y salsa inglesa si gusta. Mezclar bien y dejar macerar de un día para otro en la nevera. Eventualmente remover para que se concentre mas el sabor. Yo pasé la preparación para una olla ya que esta tiene su tapa... si la tapan mas se centra la sazón.Preparación hojas:Las hojas deben lavarse de forma de delicada con agua , jabón, enjuagarlas y secarlas con un pañito. Con las hojas debemos tomar en cuenta que van a haber dos tipos: una que es la principal (la mas grande) que es donde va el tendido de la hallaca y la segunda hoja (mas pequeña) que es la que cubre o la que proteje en la cocción los ingredientes de nuestra preparación.Nota: Si ven un polvito gris sobre la hoja, no se asusten, no está mala.. recuerden que han sido asadas y esto se debe a la ceniza.Nota2: Muchas hojas vienen con una vena, así le decimos, es un hilo más fuerte que impide que la hoja se doble con facilidad... esta se quita... con cuidado, jalan y sale.Preparación de la masa:Calentar en una ollita el aceite de maíz y agregar el onoto en grano. Esto lo que hace es darle un toque de sabor y teñir el aceite de color amarillo, que a la final es lo que le da el color a la masa. Aunque en el mercado venezolano existe harina de maíz amarilla y hay quienes la hagan de maíz pilao.Hacer la masa con la harina de maíz, el aceite onotado y el agua tibia, colocar sal al gusto a la masa. Procuren que la masa quede suavecita, de manera de que cuando doblemos la hoja esta no se quiebre.Ahora lo que viene es fácil...Sobre la primera hoja (la mas grande), extienda la masa sobre la hoja previamente aceitada... sobre ella coloque: una porción de guiso, pasas, aceitunas, alcaparras, cebolla (en rueditas), pimentón (en tiras), encurtidos y garbanzos... todo esto recuerden que es al gusto... la idea es que se mezclen todos estos ricos sabores.Ahora lo que deben hacer es doblar la hoja, de manera de formar un paquetico... agarren la segunda hoja (recuerdan? la mas pequeña? esa!) y envuelven la hallaca con esta segunda hoja. Atan todo con pabilo como se ve en la foto. Finalmente, coloquen las hallacas en una olla con agua hirviendo por un tiempo de hora y media a fuego alto.Una vez que las saquen, dejen que se escurra el agua... y listo!!! Tienen sus hallacas. En Venezuela las congelamos, para comerlas luego de haber estado en la nevera solo las llevan a la olla con agua por 10 minutos y es todo! Listas para comer.Tienen su trabajo pero créanme que vale la pena tenerlas en la mesa.Si te gusto mi post agrega puntos y comenta.F E L I Z N A V I D A D
Bienvenidos/as a mi nuevo hoy les traigo dos buenas opciones de desayunos saludables, además de rápidos de preparar, con lo que ganaremos tiempo y sobre todo energía para nuestras mañanas.Una de las propuestas es este batido super nutritivo.Para ello necesitan: Leche (no llenen el vaso), un cambur o banana, 2 cucharadas de avena en hojuelas, 2 cucharadas rasas de azúcar, vainilla al gusto y un yogur líquido. Todo va a la licuadora y se sirve. ¿Qué les puedo decir? Divino y garantizado que no les dará hambre en la mañana.La segunda propuesta es sencillísima, solo necesitan: Hojuelas de maíz (Corn Flakes), avena en hojuelas y yogur, es todo, también le pueden agregar miel. Realmente exquisito, bajo en calorías pero si hay una cantidad de vitaminas en este desayuno.Si te fue útil o te gusto mi post agrega puntos y comenta.¡Buen Provecho!F E L I Z N A V I D A D
Programación orientada a objetos fácil de entender. En este post les enseñare como aprender a programar orientado a objetos es muy fácil: Comencemos por reconocer que para quienes venimos de la programación funcional es bastante difícil digerir los nuevos conceptos, por la sencilla razón de que estamos acostumbrados a la idea de que las entidades del mundo real que tratamos de modelar en nuestros programas son representadas por un conjunto de datos relacionados con las características de estas entidades (relevantes para nuestras aplicaciones), y simplemente escribimos instrucciones que actúan sobre estos datos para realizar cálculos, ordenaciones, almacenamiento/recuperación, etc. Resumiendo podríamos decir que un programa es algo representado en esta pequeña ecuación: Para ilustrar esta idea me remonto a la época en la que programábamos en BASIC. Uno de los primeros programas que escribimos debe haber sido algo tan simple como esto: En este pequeño programa, que calcula el Area de un Triángulo cualquiera, podemos ver: Los datos (modelos de las características que nos interesan del Triángulo) son las variables H, B (dimensiones) y A (área). La instrucción que realiza el cálculo es: LET A = (H * B) / 2. Adentrándonos más en el conocimiento de aquella versión de este lenguaje aprendimos que era posible crear subrutinas que hacían algún trabajo especial sobre los datos, dentro de una comunidad donde todo el mundo se conocía (datos y rutinas), y se esperaba que todas estos conjuntos de instrucciones tuvieran siempre el mejor comportamiento, y que futuras modificaciones no crearan problemas en lo anteriormente desarrollado (pero el tiempo demostró que los problemas sí surgieron y el código se complicó muchas veces hasta extremos intolerables). Por otro lado, podemos ver que aun cuando el programa hace el trabajo de calcular correctamente el área, el concepto de Triángulo realmente no existe en el mismo. Sólo suponemos que estamos calculando el Area de un Triańgulo cualquiera dadas su Altura y su Base. - o - Si avanzamos un poco en el conocimiento de los lenguajes de programación de alto nivel tenemos a Pascal. Una de las herramientas que nos proveía este lenguaje era la de los datos estructurados, entre los cuales había un elemento que permitía crear un conjunto de datos asociados a un concepto (un record o registro), elevando el nivel de modelado de la realidad. Así, mediante su uso, nos sería posible mejorar un tanto este pequeño programa de cálculo de promedio de Area, introduciendo (al menos en lo que respecta a datos) el concepto de lo que es un Triángulo. El código (en Pascal) podría ser: En el inicio de este segundo programa podemos ver la definición del tipo TTriangulo, type TTriangulo = record altura : real; base : real; end; que tiene asociadas las características relevantes de un triángulo, para efectos de nuestra aplicación: Altura y Base. Ahora podemos crear una variable Triangulo, del tipo TTriangulo anteriormente definido, además de otra variable Area para almacenar el resultado del cálculo. var Triangulo : TTriangulo; Area : real; Seguidamente tenemos una rutina que tomando nuestro triángulo solicita al usuario del programa la altura y la base para poder calcular el área. procedure LeerDatos(var triang : TTriangulo); Luego tenemos la rutina que, tomando nuestro triángulo, calcula el área dadas la altura y la base, y devuelve el valor calculado function CalcularArea(var triang : TTriangulo) : real; Finalmente tenemos el cuerpo principal del programa, que llama las rutinas LeerDatos y CalcularArea, y les envía el triángulo para que realicen su trabajo LeerDatos(Triangulo); Area := CalcularArea(Triangulo); Si comparamos este código con el del programa en aquella vieja versión de BASIC, podemos ver que en Pascal es posible colocar en el programa el concepto de Triángulo (al menos en lo que respecta a datos). No obstante, aún tenemos que escribir rutinas externas con respecto al concepto, pero que pueden trabajar sobre el mismo para capturar los datos esenciales y realizar el cálculo para el que ha sido diseñado el programa. Esto nos permitiría elaborar una nueva ecuación, parecida a la que vimos al inicio, pero con un nuevo nivel de abstracción: Yendo un poco más allá en este paradigma, la idea era crear montones de rutinas de carácter más o menos general que pudieran incluso ser reutilizadas en otras aplicaciones que desarrolláramos a futuro. Estas constituirían librerías de rutinas atesoradas en nuestros “cofres” de programadores. Por otro lado, los conceptos apoyados en el uso de los records (un Triángulo en este caso) proveían una forma de proteger los datos decidiendo cómo y cuándo pasarlos a las rutinas para que actuaran sobre ellos. - o - La experiencia con el mundo de los objetos llegó a través de Visual Basic, pero no acerca de crear objetos sino de utilizarlos. Con Visual Basic empezamos a notar las grandes ventajas que ofrecía el uso de propiedades y métodos de objetos como formularios, botones, cajas de texto, etc. Sin embargo, aún no entendíamos los conceptos básicos de la programación orientada a objetos, ni para qué realmente servía. Lecturas iban y venían, indecisiones sobre lenguajes (si C++ o Java), pero el camino de Pascal llevó a Object Pascal, y a Delphi. Entonces decidimos trabajar de acuerdo a la ecuación que acabamos de ver (programa = datos estructurados + rutinas), usando punteros también; pero las otras estructuras de datos asociadas a los elementos visuales (treeviews, listboxes, combos, etc.) forzaban el cambio de paradigma al mundo de los objetos, y, por supuesto, había que crear objetos. Llegado a este punto (no pudiendo resistir más los vientos de cambio) nos adentramos en el estudio del tema de los objetos: encapsulación, herencia, polimorfismo, patrones, y un largo etc. Entonces, ¿qué son objetos? Como hemos venido viendo en esta breve evolución, en la prehistoria -de la programación de alto nivel-, con BASIC, los datos y las instrucciones estaban “sueltos” en el programa (aunque en nuestra mente formaran una unidad); luego en la Edad Media, con Pascal, vimos que era posible incluir conceptos en los programas que, al menos en datos, formaban elementos que modelaban mejor sus contra-partes del mundo real, pero aún escribíamos rutinas externas que actuaban sobre y/o con los datos. Asimismo vimos cómo pasamos de tener un “campo abierto”, sin fronteras que protegieran a los datos de instrucciones que crearan problemas, a un nivel básico de protección con el uso de tipos record. Bien, en la Edad Moderna los objetos, esencialmente constituyen la unión de datos y rutinas dentro de un concepto, en un nivel de abstracción más elevado. Un objeto representa de manera bastante fiel a un elemento del mundo real (físico o no), conteniendo en sí mismo los datos correspondientes a las características relevantes de tal elemento y a las rutinas que actúan sobre estos datos para realizar el trabajo encomendado al programa. Adicionalmente a esto, los datos asociados al concepto generalmente están protegidos dentro del mismo, y es posible definir formas de acceso a estos de manera que sean leídos y/o modificados sus valores. Se dice entonces que los datos están encapsulados dentro del objeto y que los accesos constituyen la interfaz del mismo, para efectos de comunicación con el exterior. En esta ilustración vemos que el Objeto contiene los datos dato1, dato2 y dato3, que están ocultos dentro del mismo. Sin embargo, ofrece los accesos a estos datos Acceso a dato1 (que sólo permite leer el valor de dato1), Acceso a dato2 (que permite leer y/o modificar el valor de dato2), y Acceso a dato3 (poco común, pero posible, sólo permite escribir el valor del dato3 sin poder leerlo). Asimismo podemos ver que el Objeto tiene una interfaz pública que permite a cualquier código cliente sacar provecho de las potencialidades del mismo, y que la implementación (código del objeto), de las operaciones que es capaz de realizar y de los datos que maneja, está oculta dentro del mismo, siendo éste una especie de caja negra cuyo contenido no es visible. La comunicación entonces del código cliente con el objeto se da gracias al paso de mensajes, que es simplemente la invocación de los elementos que ofrece la interfaz (métodos de acceso, propiedades y operaciones o métodos de comportamiento). Comparando esta idea con un reproductor de video, la interfaz pública está constituida por los botones en la carcasa del aparato, y en el control remoto, a través de los cuales nos es posible iniciar o parar la reproducción, adelantar o atrasar segmentos, etc, sin tener en ningún momento que tocar cables o circuitos (la implementación). Ahora bien, ¿qué es elaborar un programa orientado a objetos?, o, ¿cómo creamos los objetos que necesitamos para modelar el mundo real? Acá entra el concepto de Clase. Cuando escribimos un programa orientado a objetos en lenguajes como Object Pascal, C++, Java, C#, etc., diseñamos y definimos clases que permiten crear luego los objetos, que son instancias (ejemplos) de esas clases. Una clase es una especie de molde del cual podemos extraer objetos que tendrán por supuesto la forma del molde (características o datos, y operaciones) pero que serán distintos unos de otros, con su propia identidad. De hecho, un Objeto tiene un Estado el cual es simplemente el conjunto de valores de sus características (datos). Por ejemplo, en la Clase L de la ilustración habríamos definido una característica llamada Color, la cual tendría el valor “amarillo” en el primer Objeto L; y, “azul” en el segundo. Una operación (o método de comportamiento) podría ser CambiarColor, la cual, por ejemplo, nos mostraría una forma de seleccionar el nuevo color. Ahora veamos todo esto en acción en la versión orientada a objetos de nuestro programa que calcula el área de un triángulo: En este código (escrito en C#, el lenguaje de programación creado por el mismo autor principal de Turbo Pascal y Delphi) encontramos primero la definición de la Clase Triángulo, la cual comienza con la palabra clave class seguida del nombre de la clase, es decir Triangulo. class Triangulo { Seguidamente está la lista de datos que modela las características relevantes del elemento Triangulo de la vida real. Esto es sus dimensiones y su área private double ancho; private double altura; private double area; La palabra private indica que los datos son privados, es decir que están protegidos dentro del objeto y no es posible tener acceso a ellos desde el código cliente. Sin embargo, luego viene la definición de los métodos de acceso a estos datos, a través de las Propiedades correspondientes: Altura, Ancho y Area. public double Altura { get { return this.altura; } set { altura = value; } } public double Ancho { get { return this.ancho; } set { ancho = value; } } En el caso de Altura y Ancho los elementos get y set indican cómo es posible leer y escribir los datos protegidos. La sección get contiene la instrucción return this.altura / return this.ancho, la cual indica que devuelve el valor del dato altura/ancho del elemento this, que es la palabra que identifica a un objeto cualquiera de la clase que estamos programando (en este caso Triangulo). Por otro lado, la sección set contiene la instrucción altura = value / ancho = value, siendo el elemento value la representación del valor que escribimos en el dato altura/ancho. Entonces si escribimos, por ejemplo, una sentencia a = unTriangulo.Altura, realmente se ejecutará dentro del código de la clase la instrucción return this.altura, que nos devolverá el valor de la altura del Triangulo y lo asignará a la variable a. Por otro lado, si la sentencia es unTriangulo.Altura = 5, el valor 5 será asignado a la variable value, la cual a su vez lo asignará al dato altura dentro de la clase a través de la instrucción altura = value. public double Area { get { return this.area; } } Para el dato area la definición de la propiedad Area (en C++, Java y C# los nombres son sensibles a mayúsculas y minúsculas, por lo tanto area no es lo mismo que Area) solamente tiene la sección get, lo cual indica que sólo es posible leer el valor del dato más no modificarlo. public void CalcularArea() { this.area = (this.ancho * this.altura) / 2; } El valor del dato area es obtenido mediante la llamada a la operación CalcularArea. Esta operación, o Método de la clase Triangulo, actúa tomando los valores de las dimensiones ancho y altura, multiplicándolos y dividiéndolos entre 2, como hemos visto en las versiones BASIC y Pascal de este mismo programa, pero con la salvedad de que no se trata de una rutina externa al concepto de triángulo sino que pertenece a la representación de este concepto, es parte de nuestra definición del concepto dentro del programa. Finalmente tenemos la clase principal del programa, class MainClass, que tiene dos rutinas o métodos: LeerDatos(Triangulo triang) y Main (string[] args). El primero toma el objeto Triangulo y solicita al usuario las dimensiones del mismo (parecido a la rutina que vimos en la versión en Pascal, sólo que aquella no pertenecía a clase alguna sino que era un elemento “suelto” dentro del programa principal). El segundo método (Main) es el inicio de la aplicación. Lo primero que hace es crear una instancia de la clase Triangulo sobre la cual trabajar. Esto lo realiza mediante la sentencia Triangulo unTriangulo = new Triangulo() Una vez que se tiene la instancia creada se procede a invocar el método que solicita las dimensiones del triángulo mediante LeerDatos(unTriangulo) A continuación se invoca al método del objeto que efectúa el cálculo a través de la sentencia unTriangulo.CalcularArea() la cual a su vez ejecuta la instrucción this.area = (this.ancho * this.altura) / 2 definida en la clase. Por último se muestra el resultado mediante el acceso al dato privado area que provee la propiedad Area del objeto Console.WriteLine(“El area es: {0}”, unTriangulo.Area) Analizado este código, podemos crear nuevas ecuaciones, con niveles superiores de abstracción que las anteriormente vistas (programa = datos + instrucciones y programa = datos estructurados + instrucciones) Siguiendo este nuevo paradigma la idea es diseñar y programar clases cuyas instancias (objetos) sean representación de sus contra-partes del mundo real de acuerdo a lo que intentamos modelar. Sin embargo, aun cuando la programación orientada a objetos provee herramientas para crear aplicaciones robustas y fáciles de mejorar, no es algo mágico que resuelve todos los problemas sin esfuerzo. En sí la programación de aplicaciones no es una actividad trivial: requiere de estudio, práctica y mucha imaginación. No todos los programadores hacemos las cosas de la misma manera y no todo el conocimiento y la experiencia personal conforman algo inmutable, sino que siempre es posible aprender y/o desarrollar mejores formas de crear aplicaciones. Eso es lo que hace esta actividad algo tan fascinante y gratificante cuando vemos nuestras creaciones funcionando y resolviendo problemas. Hasta la próxima entrega, en la que hablaremos sobre Herencia y Polimorfismo. Si te gusto o te es útil agrega unos puntos no cuesta nada y comenta.