miércoles, 9 de febrero de 2011

Sintaxis de clases: métodos, atributos, visibilidad (Sem 3)

Taller de POO
Código en el lenguaje OO que están usando que implementa la herencia y demuestra el uso de polimorfismo en el proyecto.


Ahora en esta entrada expongo el código en Objective C aplicando herencia de la clase Menu, hereda a Platillo, Bebida, Postre, Recomen y Cupon.


Simplemente se agrega en cada herencia la clase de la que hereda en este caso Menu, es importante (ya que a mi me marcaba error) importar Menu.h en las herencias, ya que ahi estamos declarando, este es un ejemplo código de como se hace una herencia.

@interface Clase : SuperClase {
         //Variables
}
//metodos
@end

Por lo tanto la super clase en Menu.m es la librería UIKit pero en Platillo, Bebida, Postre, Recomen y Cupon la super calase es Menu cuya super clase de Menu es UIKit, entonces este es un claro ejemplo de Herencia, en polimorfismo se encuentra en los metodos que tiene las clases hijas (mostrar, eliminar, ordenar), ya que cada uno tendra una funcionalidad similar en clases independientes.


Aqui los Código.
#import <UIKit/UIKit.h>


@interface Menu : UIView {
 @public NSString *clasificacion;
 @public IBOutlet UIImage *imagencomida;
 @public float *precio;
 @public NSString *Descri;
}

-(void)Mostrar;
-(void)Ordenar;
-(void)Clasificar;
@end

En Bebida, platillo y postre no agrege nuevas variables.
#import <UIKit/UIKit.h>
#import "Menu.h"


@interface Bebida : Menu {

}

-(void)Ordenar;
-(void)Mostrar;
-(void)Eliminar;
@end


#import <UIKit/UIKit.h>
#import "Menu.h"

@interface Platillo : Menu {
 
}

-(void)Ordenar;
-(void)Mostrar;
-(void)Eliminar;

@end


#import <UIKit/UIKit.h>
#import "Menu.h"

@interface Postre : Menu {

}

-(void)Ordenar;
-(void)Mostrar;
-(void)Eliminar;

@end

Se agregan nuevas variables heredando las de Menu.h, tambien podemos ver Polimorfismo ya que aqui los metodos anteriores tienen un uso diferente
#import <UIKit/UIKit.h>
#import "Menu.h"

@interface Recomen : Menu {
 @public int *puntuacion;
 @public NSString *comentario;
}

-(void)Mostrar;
-(void)Crear;

@end


#import <UIKit/UIKit.h>
#import "Menu.h"

@interface Cupon : Menu {
 @public IBOutlet UIImage *imagencupon;
}
-(void)Mostrar;
@end

Anexos de paginas:
Beginner's Guide
Inheritance O-C
Video informal

1 comentario:

  1. Ahí va. No me queda todavía claro a mí cómo difiere un platillo de un postre en términos de datos y funcionalidad (o sea, no veo porqué tienen que ser clases distintas), pero la semana que viene tendrás oportunidad de convencerme en la presentación ;) Te pongo 5.

    ResponderEliminar