Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EMPRESARIAL
PROGRAMACIÓN IV
TEMA
JERARQUÍA Y HERENCIA
FACILITADOR
DIEGO SANTIMATEO
ELABORADO POR
II AÑO
II SEMESTRE
FECHA DE ENTREGA
12 DE NOVIEMBRE DE 2007
2
Tema: Jerarquía y Herencia
ÍNDICE
Introducción......................................................................................................................................i
1. FUENTES DE INFORMACIÓN REFERENTES AL LENGUAJE JAVA.................................1
2. GLOSARIO DE TÉRMINOS .....................................................................................................6
3. EJEMPLIFICACIÓN DE CONCEPTOS..................................................................................10
3.1 Clase abstracta.....................................................................................................................10
3.2 Interfaz ................................................................................................................................11
3.3 Sobrecarga............................................................................................................................12
3.4 Herencia y Superclase..........................................................................................................14
3.5 Polimorfismo.......................................................................................................................15
4. PRESENTACIÓN DE UNA APLICACIÓN EJECUTABLE...................................................17
4.1 Descripción del Dominio:...................................................................................................17
4.2 Descripción de las clases....................................................................................................18
4.3 Clases involucradas en el programa....................................................................................21
4.4 Código fuente:.....................................................................................................................22
4.5 Ejecución del Programa .....................................................................................................32
5. Diagrama UML.........................................................................................................................35
6. Reflexión sobre el trabajo en equipo.........................................................................................30
6.1. Cómo fue la labor de los integrantes..................................................................................30
6.2. Metodología propuesta para el desarrollo de este proyecto...............................................30
7. Evaluación individual de la experiencia...................................................................................32
1
INTRODUCCIÓN
los tema, para ello ejemplificamos por medio de programas los conceptos de
i
1. FUENTES DE INFORMACIÓN REFERENTES AL LENGUAJE JAVA
1.Autor desconocido, “Interfaces” [en línea], [act. Enero de 2000], Disponible en Internet
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/interfa
ces.htm <Consulta: 6 de noviembre de 2007>
•La diferencia entre interface y una clase abstracta donde se dice que un
programación orientada a objetos, por medio del cual una clase se deriva de
rarquías, clases abstractas. Los cuales se nos explica la relación que puede
métodos. Java permite que varios métodos dentro de una clase se llamen
10.Autor Antonio Bel Puchol , “Apuntes Lenguaje Java” [en línea] ,[Act,
17, junio, 2001], disponible en Internet,
http://www.arrakis.es/~abelp/ApuntesJava/indice.htm [consulta
2/11/2007]
ordenadamente.
En esta web podemos encontrar términos como los son: clases, Interfaces,
Jerarquía:
relaciones agresivas.
Interfaz:
declaran en una clase abstracta los métodos que se van a utilizar, pero sin su
implementación o código.
Herencia:
otra clase llamada superclase. Es decir que además de poder utilizar sus
herencia.
Clase Abstracta:
Una clase abstracta es una clase que tiene al menos un método abstracto.
Super Clase:
Polimorfismo:
Sobrecarga:
esta manera los métodos de otros objetos no pueden cambiar las variables
Subclase
Clase
//Métodos abstractos
abstract String crear(String no);
abstract String verifica(String no);
abstract String lista(String no);
abstract void Leearchivo(String no);
}//fin de la clase abstracta
El ejemplo muestra una clase abstracta, que a diferencia de las clases que
Luego para que una clase pueda implementar los métodos de la clase
Ejemplo:
import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.io.*;
class OperacionesArchivos extends ArchivosDirectorios {
Para poder crear un objeto de una clase abstracta se debe hacer lo siguiente:
métodos.
3.2 Interfaz
import java.util.*;
interface ArchivosDirectorios {
En este ejemplo se muestra una clase con sus respectivos métodos, pero sin
interfaz.
Ejemplo:
import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.io.*;
class OperacionesArchivos implements ArchivosDirectorios {
public String crear(String nombre) {
<código>
}
public String verifica(String nombre){
<código>
}
public String lista(String nombre) {
<código>
}
public void Leearchivo(String nombre){
<código>
}
}
3.3 Sobrecarga
/*varias formas de multiplicar*/
public class OperacionesMatematicas {
public String operaciones (float a, float b) {
String resultado=” ”;
float mult=a*b;
flota div=a/b;
float sum=a+b;
float rest=a-b;
resultado=+ “Suma de dos reales: “ + sum + “resta de dos
reales: “ + rest + “Multiplicación de reales: “ +
mult + “División de reales: “ + div;
return (resultado);
}
public String operaciones ( int a, int b) {
String resultado=” ”;
int mult=a*b;
int div=a/b;
int sum=a+b;
int rest=a-b;
parámetros.
de padre, esto quiere decir que la clase hijo a heredado el método de la clase
padre, es decir, la clase padre tiene un método que es metodo1, la clase hijo
tiene además del método metodo2 que es de ella, al método metodo1 , que
mismo objeto.
le llama superclase.
3.5 Polimorfismo
Dominio: Animales.
métodos con el mismo nombre pero cada método tiene un proceso diferente.
Clase Principal
class Principal{
public static void main(String[] args) {
Capturaimp cpt2=new Capturaimp();
String m="Introduzca el codigo del vendedor: ";
String cod=cpt2.datos(m);
String mens2="La comisión del empleado en esta venta fue de:"+" " + aument;
cpt2.imprimir(mens1);
cpt2.imprimir(mens2);
class Capturaimp {
private String msnj;
public Capturaimp(){
}
///Clase
abstract class Proyect {
//Métodos abstractos
import java.io.*;
import javax.swing.*;
import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.lang.Double;
double desc=0;
double desc1=0;
String resp="";
//condiciones para verificar compra
if (compra>=25.00 && compra< 50.00)
{
desc=compra*.05;
desc1=compra-(compra*.05);
resp="La suma total de la compra fue de : " + compra + "\n" + "El descuento fue de: " +
desc + "\n" + "El precio a pagar es de : " + desc1;
return(resp);
try {
FileReader arch1 = new FileReader(archivoName);
BufferedReader in = new BufferedReader(arch1);
try {
in.close();
}
catch ( IOException e )
{
result+="El archivo no se pudo cerrar correctamente";
}
}
catch (Exception e)
{
result +="El archivo no se pudo cerrar correctamente";
}
result= aumento1 + "\n" + "El salario del empleado es: " + sala + "\n" + "El nuevo
salario :" + aumento;
return(result);
String archivoName="vendedor.txt";
double aumento=0;
String result=" ";
try {
FileReader arch1 = new FileReader(archivoName);
BufferedReader in = new BufferedReader(arch1);
while((s=in.readLine())!= null)
result +=s + "\n";
try {
in.close();
}
catch ( IOException e )
{
result+="El archivo no se pudo cerrar correctamente";
}
}
catch (Exception e)
{
result +="El archivo no se pudo cerrar correctamente";
}
return(result);
}
}
public Compra(){
}
/*Método comprar: encargado de calcular la compra total que se efectuó */
public double comprar(){
Capturaimp cpt=new Capturaimp();
int op=1;
double suma=0;
double precio=0;
String opc="";
while(op==1)
{
//llamar a acapturaimp
String preci="Introduzca el precio del articulo: ";
String prec=cpt.datos(preci);
precio=Double.parseDouble(prec);
suma=suma+precio;
opc= JOptionPane.showInputDialog(null, "1: si hay otro articulo a comprar,"+
"\n" + "0: si no hay mas ariculos a comprar");
op=Integer.parseInt(opc);
}
return(suma);
}
}
class Capturaimp
presentar lo que cada uno investigo, salir de dudas entre ambos, reunir
cada uno presenta sus ideas, la forma de cómo resolver el problema, para
•Búsqueda en Internet.
•Recolección de lo investigado.
Roman González:
Conocimientos previos: Los conocimientos previos que necesite para este laboratorio
fueron conceptos y temas que estamos tratando en este curso, conceptos como:
clases, métodos, encapsulamiento, entre otros. Al igual que los conceptos que se
aplicaron en este laboratorio, ya que se tuvo que investigar y estudiar previo a la
realización de este trabajo.