You are on page 1of 17

Nombre: Cinthya Castillo

5to C

PARADIGAMA Definicin de Paradigma.- Un paradigma es el resultado de un proceso social en el cual un grupo de personas desarrolla nuevas ideas y crea principios y prcticas alrededor de estas ideas, y no solamente un conjunto de prcticas y conocimientos objetivamente validados. Definicin de Paradigma de Programacin.- Un paradigma de programacin provee (y determina) la visin y mtodos de un programador en la construccin de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programacin y en diferentes formas de pensar la solucin de problemas (con la solucin de mltiples problemas se construye una aplicacin). Los lenguajes de programacin son basados en uno o ms paradigmas. Por ejemplo: Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. Visual Basic .NET es hibrido, basados en el paradigma estructurado y orientado a objetos. El lenguaje de programacin Scheme, en cambio, soporta slo programacin funcional. En cambio Python, soporta mltiples paradigmas PARADIGMA IMPERACTIVO O POR PROCEDIMIENTO:

En contraposicin a la programacin declarativa es un paradigma de programacin que describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cmo realizar una tarea. La implementacin de hardware de la mayora de computadores es imperativa; prcticamente todo el hardware de los computadores est diseado para ejecutar cdigo de mquina, que es nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los computadores implementa el paradigma de las Mquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del

Nombre: Cinthya Castillo

5to C

programa est definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de mquina nativo del computador (por ejemplo el lenguaje ensamblador). Algunos lenguajes imperativos

ASP BASIC C C++ Fortran Pascal Perl PHP Lua

EL PARADIGMA FUNCIONAL

Es un paradigma de programacin declarativa basado en la utilizacin de funciones matemticas. El objetivo es conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cmputo. La secuencia de computaciones llevadas a cabo por el programa se regira nica y

Nombre: Cinthya Castillo

5to C

exclusivamente por la reescritura de definiciones ms amplias a otras cada vez ms concretas y definidas, usando lo que se denominan definiciones dirigidas. Lenguajes funcionales Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales hbridos ms conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos ltimos, descendientes del lenguaje ML). Erlang es otro lenguaje funcional de programacin concurrente. R tambin es un lenguaje funcional dedicado a la estadstica. Recientemente Microsoft Research est trabajando en el lenguaje F# (Functional#). Entre otros lenguajes que se podran utilizar para programacin funcional se podran incluir a Perl, pues, aunque es un lenguaje de propsito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. As como Python, como lenguaje que incorpora el paradigma funcional.

EL PARADIGMA LOGICO: Consiste en la aplicacin del corpus de conocimiento sobre lgica para el diseo de lenguajes de programacin; no debe confundirse con la disciplina de la lgica computacional. La programacin lgica comprende dos paradigmas de programacin: la programacin declarativa y la programacin funcional. La programacin declarativa gira en torno al concepto de predicado, o relacin entre elementos. La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico. Lenguajes El lenguaje de programacin lgica por excelencia es Prolog, que cuenta con diversas variantes. La ms importante es la programacin lgica con restricciones que posibilita la resolucin de ecuaciones lineales adems de la demostracin de hiptesis.

Nombre: Cinthya Castillo

5to C

EL PARADIGMA ORIENTADO A OBJETOS

La Programacin Orientada a Objetos (POO u OOP segn sus siglas en ingls) es un paradigma de programacin que usa objetos y sus interacciones para disear aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de 1990. Actualmente son muchos los lenguajes de programacin que soportan la orientacin a objetos. Lenguajes orientados a objetos Entre los lenguajes orientados a objetos se destacan los siguientes:

ABAP ABL Lenguaje de programacin de OpenEdge de Progress Software ActionScript ActionScript 3 Ada C++ C# Clarion D Object Pascal (Delphi) Flex builder (adobe) Gambas Harbour Eiffel Java JavaScript (la herencia se realiza por medio de la programacin basada en prototipos)

Nombre: Cinthya Castillo


5to C

Lexico (en castellano) Objective-C Ocaml Oz R Perl (soporta herencia mltiple. La resolucin se realiza en preorden, pero puede modificarse al algoritmo C3 por medio del mdulo Class::C3 en CPAN) PHP (en su versin 5) Python Ruby Smalltalk (Proyecto investigativo. Influenci a Java.) Magik (SmallWorld) Vala VB.NET Visual FoxPro (en su versin 6) Visual Basic 6.0 (Orientada a Eventos) XBase++ Lenguaje DRP

Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino que son hbridos que combinan la POO con otros paradigmas. Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de programacin clsico. Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo el mundo.

Como pueden observar muy claramente el paradigma Orientado a objetos es el ms usado hoy en da donde existen ms lenguajes de programacin que en funcin con otros paradigmas forman funciones para lograr una excelente combinacin de funciones la cual ayuda hoy en da a muchos programadores a lograr fcilmente sus objetivos espero que sirva esta informacin para saber donde estn parados y elegir un buen lenguaje pronto ms detalles sobre la programacin orientada a objetos

PROGRAMACIN DECLARATIVA No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino que describe (declara) cmo es algo. En otras palabras, se enfoca en describir las propiedades de la solucin buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solucin. Es ms complicado de

Nombre: Cinthya Castillo

5to C

implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solucin de determinados problemas. La Programacin Declarativa, en contraposicin a la programacin imperativa es un paradigma de programacin que est basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solucin. La solucin es obtenida mediante mecanismos internos de control, sin especificar exactamente cmo encontrarla (tan slo se le indica a la computadora que es lo que se desea obtener o que es lo que se est buscando). No existen asignaciones destructivas, y las variables son utilizadas con Transparencia referencial Diferencia entre imperativo y declarativo En la programacin imperativa se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. En la programacin declarativa las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de informacin a partir de la descripcin realizada. Tipos Existen varios tipos de lenguajes declarativos:

Los lenguajes lgicos, como Prolog. Los lenguajes algebraicos, como Maude y SQL Los lenguajes funcionales, como Haskell

Ventajas Se ha dicho que los lenguajes declarativos tienen la ventaja de ser razonados matemticamente, lo que permite el uso de mecanismos matemticos para optimizar el rendimiento de los programas. Son fiables, elegantes y expresivos. Algunos lenguajes declarativos

Haskell (Programacin funcional) ML (Programacin funcional) Lisp (Programacin funcional) Prolog (Programacin Lgica) F-Prolog (Programacin Lgica Difusa) Curry (Programacin Lgico-Funcional)

Nombre: Cinthya Castillo

5to C

PROGRAMACIN CLASICA Surge por los aos 50 y 60, es de tipo monoltica donde si el programa era grande, era difcil de corregir, y su mantenimiento era muy costoso. PROGRAMACIN MODULAR Surge a principios de los 70, es uno de los mtodos de diseo mas flexible potentes para mejorar la productividad de un programa .Todo programa contiene un modulo denominado programa principal, que controla todo lo que sucede, es decir transfiere el control a su modulo , de modo que ellos pueden ejecutar funciones , las tareas de los mdulos se sigue dividiendo hasta que cada uno tenga exclusivamente una funcin especfica, a este tipo de programacin se le conoce como el mtodo Divide y Vencers (Top Down) La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable. Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver. Al aplicar la programacin modular, un problema complejo debe ser dividido en varios subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers anlisis descendente (Top-Down). Un mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la prctica se los suele tomar como sinnimos de procedimientos y funciones. Pero no necesaria ni estrictamente un mdulo es una funcin o un procedimiento, ya que el mismo puede contener muchos de ellos, no debe confundirse el trmino "modulo" (en el sentido de programacin modular) con trminos como "funcin" o "procedimiento", propios del lenguaje que lo soporte.

Nombre: Cinthya Castillo

5to C

Nombre: Cinthya Castillo

5to C

PROGRAMACION O.OBJETO La programacin orientada a objetos (POO) nos permite escribir cdigo menos propenso a fallos adems de permitirnos la reutilizacin de cdigo de forma ms conveniente. En este artculo veremos las caractersticas de la POO desde el punto de vista de los lenguajes de .NET Framework y cmo utilizar los distintos elementos que nos permitirn crear cdigo que sea ms fcil de escribir y mantener. Qu es la programacin orientada a objetos? En Todo Programacin existe una seccin denominada Cuadernos de Principiantes donde se estudia algoritmia y estructuras de datos a nivel iniciacin. Est planificado que se estudie a nivel terico la programacin orientada a objetos, por tanto para aquellos que no tengis nocin alguna sobre POO mejor guarda a buen recaudo este nmero de TP y espera a aprender los conceptos tericos necesarios para luego aplicarlos en el marco, nunca mejor dicho, de .NET. La POO es una evolucin de la programacin por procedimientos llamada tambin estructurada. Se basaba en funciones y procedimientos y el cdigo que controlaba el flujo de las llamadas a estos. En Visual Basic, sobre todo en versiones anteriores se sigue programando mucho as. A veces por desconocimiento y otras por "miedo" no se da el salto a la POO, aunque un programador con experiencia en VB puede hacer magnficas aplicaciones sin utilizar la POO (y sin aprovecharse de sus ventajas) , y sobre todo, en un tiempo relativamente reducido. Los pilares de la programacin orientada a objetos Recordemos que tres son las principales caractersticas de un lenguaje orientado a objetos, es decir, se considera que un lenguaje est totalmente orientado a objetos si es capaz de proveer estas tres caractersticas:

Encapsulacin Herencia Polimorfismo

Veamos una pequea descripcin de cada una de ellas y despus las ampliaremos para comprender mejor su significado y cmo puede ayudarnos a crear aplicaciones que aprovechen todas las posibilidades que nos da la POO. La ENCAPSULACIN es la cualidad de unificar los datos y la forma de manipularlos, de esta forma podemos ocultar el funcionamiento de una clase y exponer solo los datos que manipula (mediante propiedades), as como proveer de medios para poder manipular dichos datos (mediante mtodos). De esta forma solo exponemos al mundo exterior la informacin y la forma de manipularla, ocultando los detalles usados para manejar esos datos y, lo que es ms importante, evitando que nadie manipule de una forma no controlada dicha informacin.

Nombre: Cinthya Castillo

5to C

La HERENCIA es la cualidad de poder crear nuevas clases (o tipos) basadas en otras clases, de forma que la nueva clase obtenga todas las caractersticas de la clase que ha heredado, tanto los datos que contiene como la forma de manipularlos, pudiendo aadir nuevas caractersticas e incluso cambiar el comportamiento de algunas de las incluidas en la clase base, (siempre que as se haya previsto). Mediante la herencia podemos crear de forma fcil una jerarqua de clases que comparten un mismo comportamiento bsico pero que cada nueva generacin puede tener (y de hecho tiene) un nuevo comportamiento. El POLIMORFISMO es la cualidad de implementar de forma particular algunas de las caractersticas que tienen las clases, de forma que cuando necesitemos usarlas no nos preocupe la implementacin interna que cada una tenga, lo que realmente nos interesa o nos debe importar es que podemos usar esas caractersticas e incluso podamos acceder a ellas de forma annima... o casi. LAS CLASES Todo lo que tiene el .NET Framework, en realidad son clases. Una clase no es ni ms ni menos que cdigo. Aunque dicho de esta forma, cualquier programa sera una clase. Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes: los datos que dicha clase puede manipular o contener y la forma de acceder a esos datos. Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos de dicho cliente y por otro la forma de acceder o modificar esos datos. En el primer caso, los datos del Cliente, como por ejemplo el nombre, domicilio etc., estarn representados por una serie de campos o propiedades, mientras que la forma de modificar o acceder a esa informacin del Cliente se har por medio de mtodos. Esas propiedades o caractersticas y las acciones a realizar son las que definen a una clase. Los Objetos Por un lado tenemos una clase que es la que define un "algo" con lo que podemos trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que exista. Aqu es cuando entran en juego los objetos, ya que un objeto es una clase que tiene informacin real. Digamos que la clase es la "plantilla" a partir de la cual podemos crear un objeto en la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por cada cliente que tengamos en nuestra cartera de clientes, pero la clase slo ser una. Dicho de otra forma: podemos tener varias instancias en memoria de una clase. Una instancia es un objeto (los datos) creado a partir de una clase (la plantilla o el cdigo).

Nombre: Cinthya Castillo

5to C

Para entender mejor todo este galimatas, desglosemos las clases: Los miembros de una clase Las clases contienen datos, esos datos suelen estar contenidos en variables. A esas variables cuando pertenecen a una clase, se les llama: campos o propiedades. Por ejemplo, el nombre de un cliente sera una propiedad de la clase Cliente. Ese nombre lo almacenaremos en una variable de tipo String, de dicha variable podemos decir que es el "campo" de la clase que representa al nombre del cliente. Por otro lado, si queremos mostrar el contenido de los campos que contiene la clase Cliente, usaremos un procedimiento que nos permita mostrarlos, ese procedimiento ser un mtodo de la clase Cliente. Por tanto, los miembros de una clase son las propiedades (los datos) y los mtodos las acciones a realizar con esos datos. Como te he comentado antes, el cdigo que internamente usemos para almacenar esos datos o para, por ejemplo, mostrarlos, es algo que no debe preocuparnos mucho, simplemente sabemos que podemos almacenar esa informacin (en las propiedades de la clase) y que tenemos formas de acceder a ella, (mediante los mtodos de dicha clase), eso es "abstraccin" o encapsulacin. Crear o definir una clase Al igual que existen instrucciones para declarar o definir una variable o cualquier otro elemento de un programa de Visual Basic, existen instrucciones que nos permiten crear o definir una clase. Para crear una clase debemos usar la instruccin Class seguida del nombre que tendr dicha clase, por ejemplo: Class Cliente A continuacin escribiremos el cdigo que necesitemos para implementar las propiedades y mtodos de esa clase, pero para que Visual Basic sepa que ya hemos terminado de definir la clase, usaremos una instruccin de cierre: End Class Por tanto, todo lo que est entre Class <nombre> y End Class ser la definicin de dicha clase.

Nombre: Cinthya Castillo

5to C

Definir los miembros de una clase Para definir los miembros de una clase, escribiremos dentro del "bloque" de definicin de la clase, las declaraciones y procedimientos que creamos convenientes. Veamos un ejemplo:
Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class

En este caso, la lnea Public Nombre As String, estara definiendo una propiedad o "campo" pblico de la clase Cliente. Por otro lado, el procedimiento Mostrar sera un mtodo de dicha clase, en esta caso, nos permitira mostrar la informacin contenida en la clase Cliente. Esta es la forma ms simple de definir una clase. Y normalmente lo haremos siempre as, por tanto podemos comprobar que es muy fcil definir una clase, as como los miembros de dicha clase. Pero no slo de clases vive el Visual Basic... o lo que es lo mismo, para que nos sirve una clase si no sabemos crear un objeto basado en esa clase...? As que, sepamos cmo crearlos. Crear un objeto a partir de una clase Como te he comentado antes, las clases definen las caractersticas y la forma de acceder a los datos que contendr, pero slo eso: los define. Para que podamos asignar informacin a una clase y poder usar los mtodos de la misma, tenemos que crear un objeto basado en esa clase, o lo que es lo mismo: tenemos que crear una nueva instancia en la memoria de dicha clase. Para ello, haremos lo siguiente: Definimos una variable capaz de contener un objeto del tipo de la clase, esto lo haremos como con cualquier variable:
Dim cli As Cliente

Nombre: Cinthya Castillo

5to C

Pero, a diferencia de las variables basadas en los tipos visto hasta ahora, para poder crear un objeto basado en una clase, necesitamos algo ms de cdigo que nos permita "crear" ese objeto en la memoria, ya que con el cdigo usado en la lnea anterior, simplemente estaramos definiendo una variable que es capaz de contener un objeto de ese tipo, pero an no existe ningn objeto en la memoria, para ello tendremos que usar el siguiente cdigo:
cli = New Cliente()

Con esto le estamos diciendo al Visual Basic: crea un nuevo objeto en la memoria del tipo Cliente. Estos dos pasos los podemos simplificar de la siguiente forma:
Dim cli As New Cliente()

A partir de este momento existir en la memoria un objeto del tipo Cliente. Acceder a los miembros de una clase Para acceder a los miembros de una clase (propiedades o mtodos) usaremos la variable que apunta al objeto creado a partir de esa clase, seguida de un punto y el miembro al que queremos acceder, por ejemplo, para asignar el nombre al objeto cli, usaremos este cdigo:
cli.Nombre = "Guillermo"

Es decir, de la misma forma que haramos con cualquier otra variable, pero indicando el objeto al que pertenece dicha variable. Como podrs comprobar, esto ya lo hemos estado usando anteriormente tanto en la clase Console como en las otras clases que hemos usado en entregas anteriores, incluyendo los arrays. Y para acceder al mtodo Mostrar:
cli.Mostrar()

Ejemplo de cmo usar la herencia Para poder usar la herencia en nuestras clases, debemos indicar al Visual Basic que esa es nuestra intencin, para ello disponemos de la instruccin Inherits, la cual se usa seguida del nombre de la clase de la que queremos heredar. Veamos un ejemplo. Empezaremos definiendo una clase "base" la cual ser la que heredaremos en otra clase.

Nombre: Cinthya Castillo

5to C

Ya sabemos cmo definir una clase, aunque para este ejemplo, usaremos la clase Cliente que vimos anteriormente, despus crearemos otra, llamada ClienteMoroso la cual heredar todas las caractersticas de la clase Cliente adems de aadirle una propiedad a esa clase derivada de Cliente. Veamos el cdigo de estas dos clases.

Para ello crea un nuevo proyecto del tipo consola y escribe estas lneas al principio o al final del fichero que el IDE aade de forma predeterminada.
Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class Class ClienteMoroso Inherits Cliente Public Deuda As Decimal End Class

Como puedes comprobar, para que la clase ClienteMoroso herede la clase Cliente, he usado Inherits Cliente, con esta lnea, (la cual debera ser la primera lnea de cdigo despus de la declaracin de la clase), le estamos indicando al VB que nuestra intencin es poder tener todas las caractersticas que la clase Cliente tiene. Haciendo esto, aadiremos a la clase ClienteMoroso la propiedad Nombre y el mtodo Mostrar, aunque tambin tendremos la nueva propiedad que hemos aadido: Deuda. Ahora vamos a ver cmo podemos usar estas clases, para ello vamos a aadir cdigo en el procedimiento Main del mdulo del proyecto:
Module Module1 Sub Main() Dim cli As New Cliente() Dim cliM As New ClienteMoroso() ' cli.Nombre = "Guille" cliM.Nombre = "Pepe" cliM.Deuda = 2000 ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine()

Nombre: Cinthya Castillo


End Sub End Module

5to C

Lo que hemos hecho es crear un objeto basado en la clase Cliente y otro basado en ClienteMoroso. Le asignamos el nombre a ambos objetos y a la variable cliM (la del ClienteMoroso) le asignamos un valor a la propiedad Deuda. Fjate que en la clase ClienteMoroso no hemos definido ninguna propiedad llamada Nombre, pero esto es lo que nos permite hacer la herencia: heredar las propiedades y mtodos de la clase base. Por tanto podemos usar esa propiedad como si la hubisemos definido en esa clase. Lo mismo ocurre con los mtodos, el mtodo Mostrar no est definido en la clase ClienteMoroso, pero si que lo est en la clase Cliente y como resulta que ClienteMoroso hereda todos los miembros de la clase Cliente, tambin hereda ese mtodo. La salida de este programa sera la siguiente:
Usando Mostrar de la clase Cliente El nombre del cliente: Guille Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Pepe La deuda del moroso es: 2000

Ahora veamos cmo podramos hacer uso del polimorfismo o al menos una de las formas que nos permite el .NET Framework. Teniendo ese mismo cdigo que define las dos clases, podramos hacer lo siguiente:
Sub Main() Dim cli As Cliente Dim cliM As New ClienteMoroso() ' cliM.Nombre = "Pepe" cliM.Deuda = 2000 cli = cliM ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine() End Sub

En este caso, la variable cli simplemente se ha declarado como del tipo Cliente, pero no se ha creado un nuevo objeto, simplemente hemos asignado a esa variable el contenido de la variable cliM.

Nombre: Cinthya Castillo

5to C

Con esto lo que hacemos es asignar a esa variable el contenido de la clase ClienteMoroso, pero como comprenders, la clase Cliente "no entiende" nada de las nuevas propiedades implementadas en la clase derivada, por tanto slo se podr acceder a la parte que es comn a esas dos clases: la parte heredada de la clase Cliente. Realmente las dos variables apuntan a un mismo objeto, por eso al usar el mtodo Mostrar se muestra lo mismo. Adems de que si hacemos cualquier cambio a la propiedad Nombre, al existir slo un objeto en la memoria, ese cambio afectar a ambas variables. Para comprobarlo, aade este cdigo antes de la lnea Console.ReadLine():

Console.WriteLine() cli.Nombre = "Juan" Console.WriteLine("Despus de asignar un nuevo nombre a cli.Nombre") cli.Mostrar() cliM.Mostrar()

La salida de este nuevo cdigo, sera la siguiente:


Usando Mostrar de la clase Cliente El nombre del cliente: Pepe Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Pepe La deuda del moroso es: 2000

Despus de asignar un nuevo nombre a cli.Nombre


El nombre del cliente: Juan El nombre del cliente: Juan

Como puedes comprobar, al cambiar en una de las variables el contenido de la propiedad Nombre, ese cambio afecta a las dos variables, pero eso no es porque haya nada mgico ni ningn fallo, es por lo que te coment antes: slo existe un objeto en la memoria y las dos variables acceden al mismo objeto, por tanto, cualquier cambio efectuado en ellas, se reflejar en ambas variables por la sencilla razn de que slo hay un objeto en memoria. A este tipo de variables se las llama variables por referencia, ya que hacen referencia o apuntan a un objeto que est en la memoria. A las variables que antes hemos estado viendo se las llama variables por valor, ya que cada una de esas variables tienen asociado un valor que es independiente de los dems.

Nombre: Cinthya Castillo

5to C

LAS ESTRUCTURAS Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que veremos en otra ocasin con mas detalle , pero que se comportan casi como las clases ,permitiendo tener mtodos , propiedades, etc., la diferencia principal entre las clases y las estructuras es que estas ltimas son de tipos por valor , mientras que las clases son tipos por referencia. Las estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y tambin dentro de otras estructuras e incluso dentro de clases y mdulos.

You might also like