Vous êtes sur la page 1sur 14

SERVICIO NACIONAL DE APRENDIZAJE SENA

SISTEMA INTEGRADO DE GESTIN


Procedimiento Ejecucin de la Formacin Profesional
Integral
GUA DE APRENDIZAJE

Versin: 02
Cdigo: GFPI-F-019

GUA DE APRENDIZAJE N
6.1
1. IDENTIFICACIN DE LA GUIA DE APRENDIZAJE
Programa
de Cdigo:
228106
Formacin:
Versin:
102
ANALISIS
Y
DESARROLLO
DE
SISTEMAS
DE
INFORMACION
Nombre del Proyecto:
ANLISIS,
DISEO
E
IMPLEMENTACIN DE UN
SISTEMA DE GESTIN DE
INVENTARIOS PARA TRES
MIPYMES DE LA CIUDAD
DE IBAGU

898700

Cdigo:

Fase del proyecto:

ANALISIS
Actividad (es) de
Aprendizaje:
Desarrollar programas
utilizando el concepto
de herencia.

Actividad
Proyecto:

(es)

del

Implementar

diagramas

de clase.

Ambiente de
formacin
ESCENARIO
Aula 2050A

MATERIALES
FORMACIN
DEVOLUTI
VO
Televisor,
tablero

DE
CONSUMIB
LE
(unidades
empleadas
durante el
programa)

Analizar el sistema

Resultados
Aprendizaje:

de Competencia:

Analizar los requerimientos del cliente para construir el


Valorar la incidencia de sistema de informacin.
los
datos
en
los
procesos
del
macrosistema.
Duracin de la gua ( en

24
Pgina 1 de 14

SERVICIO NACIONAL DE APRENDIZAJE SENA


GUA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIN


Proceso Gestin de la Formacin Profesional Integral
Procedimiento Ejecucin de la Formacin Profesional Integral

Versin: 02
Cdigo: GFPI-F-019

horas):

2. INTRODUCCIN
En esta gua apropiar los fundamentos de la programacin orientada a objetos.
Conceptos tales como encapsulacin, polimorfismo y herencia. Tambin desarrollar
programas que le permitirn crear objetos y realizar entrada/salida por consola y
cuadros de dialogo.

3.1

Actividades de reflexin inicial

La herencia es uno de los tres principios fundamentales de la programacin


orientada a objetos. Con el uso de esta caracterstica se puede crear una clase
base, que defina caractersticas comunes a un conjunto de elementos, que tambin
comparten dichos atributos comunes. Esta clase puede ser heredada por otras
3. clases
ESTRUCTURACION
DEagrega
LAS ACTIVIDADES
DE APRENDIZAJE
ms especficasDIDACTICA
y cada una le
las caractersticas
que le son comunes a
ella.
Una clase general recibe el nombre de Superclase o Clase Base y la clase que
hereda recibe el nombre de subclase. Por lo tanto la Subclase es una versin
especializada de una superclase. La Subclase hereda todas las variables y mtodos
definidos por la superclase y aade los propios.

Pgina 2 de
14

3.2 Actividades de contextualizacin e identificacin de conocimientos


necesarios para el aprendizaje.

Digite el siguiente cdigo y analcelo con su instructor.

class FiguraDosD {
double ancho;
double alto;

Esta es la
superclase

void mostrarDim() {
System.out.println("Ancho = " + ancho + " alto = " + alto);
}
}

class Triangulo extends FiguraDosD {


String tipo;

Esta es la
subclase
Triangulo(String p1,double p2,double p3) {
tipo = p1;
ancho = p2;
alto = p3;
}
double area() {
return ancho * alto / 2;
}
void mostrarTipoFigura() {
System.out.println("Esta figura es un triangulo " + tipo);
}

}
class FiguraDprpal {
public static void main(String args[]) {
Triangulo obj1 = new Triangulo("Isoceles",30,25.3);
Triangulo obj2 = new Triangulo("Equilatero",3,2.3);
obj1.mostrarTipoFigura();
obj1.mostrarDim();
obj2.mostrarTipoFigura();
obj2.mostrarDim();
}
}
El anterior cdigo define una Superclase llamada FiguraDosD y una subclase llamada
Triangulo, la cual hereda los atributos (variables de instancia y mtodos)de la
Pgina 3 de
14

superclase, para lo cual es necesario utilizar la palabra extends.


Y esto de la herencia
tambin se podr
representar grficamente?

S. La herencia se representa conectando las clases a travs del siguiente smbolo:

El siguiente diagrama, muestra como representar la herencia grficamente a travs


de un diagrama.
FiguraDosD
+ ancho : double
+ alto
: double
* mostrar () : void
...

Triangulo
- tipo : String
+ <<Constructor>> Triangulo (String tipo, double ancho, double alto)
+
area ()
: double
+
mostrar ()
: void
...

En el diagrama se especifica que la clase triangulo hereda de la clase figuraDosD. Es


decir la clase triangulo implcitamente posee los atributos width y heigth, como
tambin el mtodo showDim() ms los que se definen especficamente en la propia
clase.
Acceso a miembros de una superclase
Las condiciones para acceder los miembros de una clase no cambian con las
superclases; de manera que los miembros privados de la superclase no son
asequibles por las subclases; los miembros privados de una superclase, solo pueden
ser accesados a travs de sus mtodos miembro.
Ejemplo:
class FiguraDosD {
private double ancho;
Pgina 4 de
14

private double alto;


void fijarAncho(double p1) {
ancho = p1;
}

void fijarAlto(double p1) {


alto = p1;
}
double obtenerAncho() {
return ancho;
}
double obtenerAlto() {
return alto;
}
void mostrarDim() {
System.out.println("Ancho = " + ancho + " alto = " + alto);

}
}
class Triangulo extends FiguraDosD {
String tipo;
Triangulo(String p1,double p2,double p3) {
tipo = p1;
fijarAncho(p2);
fijarAlto(p3);
}
double area() {
return obtenerAncho() * obtenerAlto() / 2;
}
void mostrarTipoFigura() {
System.out.println("Esta figura es un triangulo " + tipo);
}
}
class FiguraDprpal {

Pgina 5 de
14

public static void main(String args[]) {


Triangulo obj1 = new Triangulo("Isoceles",30,25.3);
Triangulo obj2 = new Triangulo("Equilatero",3,2.3);
obj1.mostrarTipoFigura();
obj1.mostrarDim();
System.out.println("Area = " + obj1.area());
obj2.mostrarTipoFigura();
obj2.mostrarDim();
System.out.println("Area = " + obj2.area());
}
}
Constructores y herencia
En una jerarqua es posible tener constructores tanto para las superclases como
para las subclases, cul de ellos es llamado cuando se crea un objeto?. La
respuesta a esta pregunta es: ambos. Pero prevalecern los valores que sean
asignados en el constructor de la subclase. Ejemplo: si en el cdigo anterior
definiramos explcitamente un constructor para la clase FiguraDosD,
FiguraDosD() {
System.out.println("Constructor para FiguraDosD");
ancho = 100.3;
alto = 200.3;
}
Finalmente el contenido de los atributos ancho y alto de los objetos obj1 y obj2 van
a ser 30, 25.3 y 3, 2.3 respectivamente.
Pero si omitiramos la inicializacin de las variables de instancia de la clase
heredada en la subclase, entonces quedaran los valores de la superclase; y cada
objeto creado para la subclase contendra los valores asignados en el constructor de
la superclase.
Uso del mtodo super() para llamar constructores de superclase
Una manera de llamar explcitamente el constructor de la superclase es utilizando el
mtodo sper(). Ejemplo:

Pgina 6 de
14

class FiguraDosD {
private double base;
private double altura;
FiguraDosD(double p1, double p2) {
System.out.println("Constructor para FiguraDosD");
base = p1;
altura = p2;
}
}
class Triangulo extends FiguraDosD {
String tipo;
Triangulo(String p1,double p2,double p3) {
super(p2,p3);
System.out.println("Constructor de Triangulo " );
tipo = p1;
}
}

Llama explcitamente el
constructor de la superclase
FiguraDosD.
En el cdigo anterior el constructor de la subclase inicializa directamente las
variables de instancia que all se han definido y llama el constructor de la
superclase para inicializar los miembros heredados de la superclase.
El siguiente es el cdigo completo, que implementa el uso del mtodo super.
class FiguraDosD {
private double base;
private double altura;
FiguraDosD(double p1, double p2) {
base = p1;
altura = p2;
}
void fijarBase(double p1) {
base = p1;
}
void fijarAltura(double p1) {
Pgina 7 de
14

altura = p1;
}
double obtenerBase() {
return base;
}
double obtenerAltura() {
return altura;
}
void mostrarDim() {
System.out.println("base = " + base + " altura = " + altura);
}
}
class Triangulo extends FiguraDosD {
String tipo;
Triangulo(String p1,double p2,double p3) {
super(p2,p3);
tipo = p1;
}
double area() {
return obtenerBase() * obtenerAltura() / 2;
}
void mostrarTipoFigura() {
System.out.println("Esta figura es un tringulo " + tipo);
}
}

class FiguraDprpal {
public static void main(String args[]) {
Triangulo obj1 = new Triangulo("Isoceles",30,25.3);
Triangulo obj2 = new Triangulo("Equilatero",3,2.3);
obj1.mostrarTipoFigura();
obj1.mostrarDim();
System.out.println("Area = " + obj1.area());
obj2.mostrarTipoFigura();
obj2.mostrarDim();
Pgina 8 de
14

System.out.println("Area = " + obj2.area());


}
}
Acceso a miembros de superclase a travs del mtodo super()
Cuando una subclase define variables de instancia con el mismo nombre de los
miembros de la superclase; oculta estos ltimos
Ejemplo:
class ClaseA {
int v1;
}
Oculta v1 de la
superclase

class ClaseB extends ClaseA {


int v1;
ClaseB(int par1,int par2) {
super.v1 = par1;
v1 = par2;
}

Hace referencia a v1 de la
superclase

void mostrar() {
System.out.println("v1 en superclase = " + super.v1);
System.out.println("v1 en subclase = " + v1);
}
}

class UsaSuper {
public static void main(String args[]) {
ClaseB obj1 = new ClaseB(3,10);
obj1.mostrar();
}
}

Jerarqua multinivel
En java es posible implementar varios niveles de herencia, de manera que una
subclase puede servir como superclase de otra. Por ejemplo, dadas tres clase

Pgina 9 de
14

llamadas A, B, C. C puede ser una subclase de B, que es subclase de A. En este


tipo de situacin cada subclase hereda todas las caractersticas encontradas en
todas sus superclases.
Ejemplo:
import javax.swing.JOptionPane;
class TwoDShape {
private double width;
private double heigth;
TwoDShape() {
width = heigth = 0.0;
}
TwoDShape(double x) {
width = heigth = x;
}
TwoDShape(double w, double h) {
width = w;
heigth = h;
}
double getWidth() { return width; }
double getHeigth() { return heigth; }
void setWidth(double w) { width = w; }
void setHeigth(double h) { heigth = h; }
void showDim() {
System.out.println("Ancho = " + width);
System.out.println("Alto = " + heigth);
}
}
class Triangle extends TwoDShape {
private String style;
Triangle() {
super();
style = null;
}
Triangle(double x) {
super(x);
style = "isoceles";
}

Pgina 10 de
14

Triangle(String s, double w, double h) {


super(w,h);
style = s;
}
double area() {
return getWidth() * getHeigth() / 2;
}
void showStyle() {
System.out.println("Style: " + style);
}
}
class ColorTriangle extends Triangle {
private String color;
ColorTriangle(String c, String s, double w, double h) {
super(s,w,h);
color = c;
}
String getColor() { return color; }
void showColor() {
System.out.println("Color = " + color);
}
}
class JerarquiaDeClases {
public static void main(String args[]) {
ColorTriangle objTriangle1 = new
ColorTriangle("Azul","Isoceles",100.3,200.2);
ColorTriangle objTriangle2 = new
ColorTriangle("Rojo","Rectangulo",80,120);
System.out.println("INFORMACION DE OBJETO1");
objTriangle1.showStyle();
objTriangle1.showDim();
objTriangle1.showColor();
System.out.println("INFORMACION DE OBJETO2");
objTriangle2.showStyle();
objTriangle2.showDim();
objTriangle2.showColor();

Pgina 11 de
14

}
}

Debido a que ColorTriangle es subclase de Triangle y esta a su vez de


TwoDShape, puede hacer uso de estas dos ltimas clases, y aadir los atributos
que necesite para su aplicacin especfica.
Este es uno de los beneficios de la herencia: la reutilizacin de cdigo.

3.3

Actividades de transferencia del conocimiento

Ejercicios propuestos:

Cree un programa en donde defina las siguientes clases:


Escrito
-

codigo
titulo
autor
ao
paginas

:
:
:
:
:

String
String
String
int
int

Libro

Articulo

- editorial : String
- precio
: float

- periodico : String
- seccion
: String

Folleto
- editorial : int
- tema
: int

Cree un constructor sin parmetros (por defecto) y otro con parmetros que permita
inicializar las variables de instancia a travs de argumentos de cada una de las clases
utilizando el mtodo super().
3.4

Actividades de evaluacin.
Evidencias de

Criterios de Evaluacin

Tcnicas e Instrumentos

Pgina 12 de
14

Aprendizaje

de Evaluacin

Evidencias de
Conocimiento :
Respuesta a preguntas.
Evidencias de
Desempeo:
Desarrollo de programas
Java

Identifica y describe, en
un sistema de
informacin dado, los
datos de entrada,
procesamiento de los
datos e informacin
generada, segn
necesidades del cliente.

Pruebas de
conocimiento
Lista de chequeo

Evidencias de
Producto:
Programas java

Materiales
formacin
4. RECURSOS
PARAdeEL
APRENDIZAJE
Materiales de formacin
devolutivos:
(Equipos/Herramientas)

ACTIVIDADES
DEL
PROYECTO

(consumibles)

Talento Humano (Instructore

DURACI
N
(Horas)
Descripcin

Cantidad

Descripcin

Cantidad

Especialidad

JDK
J2SE
Java

5. GLOSARIO DE TERMINOS

Pgina 13 de
14

Cant

6. REFERENTES BIBLIOGRFICOS

Programacin En Java 2, Snchez Allende, Jess, Huecas , McGraw-Hill Espaa, 2005.


Recuperado de: http://site.ebrary.com/lib/senavirtualsp/reader.action?docID=10498404&p00=java&ppg=8
Fundamentos de Java, Schildt, Herbert McGraw-Hill Interamericana, 2010

Recuperado de:
http://site.ebrary.com/lib/senavirtualsp/search.action?
p00=fundamentos+java&fromSearch=fromSearch

7. CONTROL DEL DOCUMENTO (ELABORADA POR)


Ing. Luis Fernando Corredor Mora

Pgina 14 de
14