Académique Documents
Professionnel Documents
Culture Documents
Trabajo de programación IV
Tema
Laboratorio #5 - Encapsulación
Profesor:
Diego Santimateo G.
Integrantes:
Fecha:
Octubre 24 de 2008
INTRODUCCIÓN.
Para invocar a una variable estática no se necesita crear un objeto de la clase en la que se
define:
•Sise invoca desde la clase en la que se encuentra definido, basta con escribir su
nombre.
•Si se le invoca desde una clase distinta, debe anteponerse a su nombre, el de la clase
en la que se encuentra seguido del operador punto (.) <NombreClase>.variableEstatica
Abstracción
Encapsulamiento
Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer
sólo los detalles que sean necesarios para el resto del sistema.
Clase Main_principal
import java.lang.*;
import java.io.*;
import javax.swing.*;
class Main_principal {
for(int i=0;i<n;i++)
{
dato = acceso.Captura_dato();
String[] datos = dato.split(","); //separa las cadenas a partir de las comas
} //fin main
}
Clase Main_principal2
import java.lang.*;
import java.io.*;
import javax.swing.*;
class Main_principal2 {
String dato,dato1,nueva;
Captura_despliega acceso = new Captura_despliega();
int n = acceso.getCant();
Estudiante persona[] = new Estudiante[n];
int x = acceso.getcantidad();
double notas[] = new double[x];//objeto vector para almacenar las notas
for(int i=0;i<n;i++)
{
dato = acceso.get_nombre();
dato1 = acceso.get_cedula();
}
Estudiante est1 = new Estudiante();
nueva = acceso.get_cedula2(); //cédula a buscar
Estudiante data = est1.get_promedio(nueva,persona,n,x);
acceso.despliega2(data,x);
} //fin main
}
Clase Estudiante
import java.lang.*;
import java.io.*;
import javax.swing.*;
}
//-----------------------------------------------------------------------------
public Estudiante(String nom,String ced,double n[] ,int x){ //2 Constructor
this.nombre = nom;
this.cedula = ced;
this.notas = new double[x];//crea un objeto vector con la cantidad para
almacenar las n notas
}
//------------------------------------------------------------------------------
public Estudiante(String nom,String cod,int puest){ //3 Constructor
this.nombre = nom;
this.codigo = cod;
this.puesto = puest;
}
//-------------------------------------------------------------------------------
// método para buscar el estudiante con mayor puesto
public Estudiante get_mayorpuesto(Estudiante vec[],int n){
Estudiante may = vec[0];
int mayor = may.get_puesto();
}
//---------------------------------------------------------------------------------------------------
public int getCant(){
this.cant = JOptionPane.showInputDialog(null,"Introduzca la cantidad de
objetos","MENU",JOptionPane.QUESTION_MESSAGE);
this.numero = Integer.parseInt(cant.trim());
return(numero);
}
//---------------------------------------------------------------------------------------------------
public String Captura_dato(){
this.dato = JOptionPane.showInputDialog(null,"Separe con una coma los datos: \n
Nombre:, Codigo Asig:, Puesto acad: ","MENU",JOptionPane.QUESTION_MESSAGE);
return(dato);
}
//---------------------------------------------------------------------------------------------------
public int getcantidad(){
String cantidad = JOptionPane.showInputDialog(null,"Introduzca la cantidad de
notas","MENU",JOptionPane.QUESTION_MESSAGE);
int n = Integer.parseInt(cantidad.trim());
return(n);
}
//---------------------------------------------------------------------------------------------------
public double Captura_nota(){
this.nota = JOptionPane.showInputDialog(null,"Introduzca la nota:
","MENU",JOptionPane.QUESTION_MESSAGE);
double not =Double.valueOf(nota).doubleValue();
return(not);
}
//---------------------------------------------------------------------------------------------------
public String get_nombre(){
this.nombre = JOptionPane.showInputDialog(null,"Introduzca el nombre:
","MENU",JOptionPane.QUESTION_MESSAGE);
return(nombre);
}
//---------------------------------------------------------------------------------------------------
public String get_cedula(){
this.cedula = JOptionPane.showInputDialog(null,"Introduzca la cedula:
","MENU",JOptionPane.QUESTION_MESSAGE);
return(cedula);
}
//-----------------------------------------------
public String get_cedula2(){
this.cedula = JOptionPane.showInputDialog(null,"Introduzca la cédula a buscar :
","MENU",JOptionPane.QUESTION_MESSAGE);
return(cedula);
}
//---------------------------------------------------------------------------------------------------
public void despliega(Estudiante datos,String des){
System.out.println("******** Estudiante con mayor puesto *********");
System.out.println("\nNombre del Estudiante: "+datos.get_nombre());
System.out.println("\nCodigo de la Asignatura: " +datos.get_codigo());
System.out.println("\nDescripcion de la Asignatura: " +des);
System.out.println("\nPuesto Academico: " +datos.get_puesto());
System.out.println("\n******** --------- *********");
}
//---------------------------------------------------------------------------------------------------
public void despliega2(Estudiante data,int x){
double[] nota = data.get_notas();
if(data != null)
{
System.out.println("******** La cedula introducida pertenece a: *********");
System.out.println("\nNombre : "+data.get_nombre());
System.out.println("\nCedula : " +data.get_cedula());
nota = data.get_notas();
for(int v=0;v<x;v++)
{
System.out.println("\nNotas : "+nota[v]);
}
System.out.println("\nPromedio: " +data.get_promedio());
System.out.println("\n******** --------- *********");
}
else
{ System.out.println("La cedula introducida es Incorrecta");}
}
//---------------------------------------------------------------------------------------------------
}// fin de Clase Captura_Despliega
Clase Asignatura
import java.lang.*;
import java.io.*;
import javax.swing.*;
//-----------------------------------------------------------------------------
public Asignatura(){ //Constructor
}
//-----------------------------------------------------------------------------
public String leer_txt(Estudiante est)throws IOException{
String des = "";
RandomAccessFile XmlFile = new RandomAccessFile ("registro.txt", "r" );
return(des);
}
//-------------------------------------------------------------------------------
}// fin de Asignatura
*************************************************************************
Archivo de Texto
*Nombre: Registro.txt
Cogido Materia
1101 Matemática
1102 español
1103 Ingles
1104 Biología
1105 programación
**********************************************************************
En conclusión de este trabajo pensamos que la mejor manera de poder hacer algo que
no sabes es leyendo y preguntando porque sino te frustras.
En este trabajo vemos una manera de encapsular información de un objeto y la
manera mas sencilla para capturar datos desde una clase aparte la cual funciona para
cualquiera que sea la aplicación.
Creemos que este laboratorio ha sido de gran ayuda en el tema de arrays ,la mima fue
una de las complicaciones que enfrentamos en este laboratorio, para poder asociar el
vector de las notas con los demás atributos del objeto estudiante, tuvimos que leer y
preguntar tanto en Internet como al profesor.