Semana 01
Semana 01
Semana 01
SEMANA 01
ENCAPSULAMIENTO
Programación orientada a objetos, niveles de acceso, diseño de clases y
creación de objetos.
CAPACIDAD DE PROCESO:
Diseña clases con niveles de acceso adecuados y crea objetos desde una Interface
gráfica de usuario (GUI).
Herencia, a través de la cual se puede extender y/o agregar y/o modificar y/o reutilizar
la funcionalidad de una clase existente, llamada padre, en otra clase llamada hija para
evitar la redundancia en el código ya desarrollado. Esta característica resume la frase
“aprovecha lo que ya está hecho”.
Niveles de acceso
Existen 3 niveles de acceso a los componentes de una clase: prívate, protected,
public. El acceso prívate permite la implementación de la característica del
Diseño de clases
Una clase, en la práctica es un nuevo tipo de dato particularizado que se compone de:
nombre, atributos, constructores y métodos. Los atributos representan los datos y/o
características de la clase, los constructores permiten crear objetos de la clase y los
métodos representan la funcionalidad de la clase que será utilizada por los objetos.
Nombre
Atributos
Constructores
Métodos
El nombre de una clase debe empezar con letra mayúscula. Los atributos deben ser de
acceso privado/protegido y los métodos pueden ser de acceso público y/o protegido y/o
privado.
Sintaxis general:
public class Nombre{
// constructores públicos
Constructores
Un constructor es un componente de una clase que tiene el mismo nombre de la clase,
de acceso público, a través del cual se puede inicializar los atributos de un objeto
creado. Cuando una clase no tiene constructor explícito, se considera un constructor
implícito por defecto, sin parámetros y con un bloque de código vacío.
Una clase puede tener varios constructores. Sin embargo, deben diferenciarse por la
cantidad y/o tipo de parámetros (sobrecarga). Cuando se crea un objeto, se invoca
automáticamente al constructor que corresponda a los parámetros dados. Si no
encuentra un constructor adecuado, se produce un error.
Métodos
Los métodos de una clase expresan la funcionalidad con la que dispone una clase
para el accionar de sus objetos. Por lo general son de acceso público.
Los métodos necesarios para el acceso de los atributos son conocidos como get/set y
los demás métodos son conocidos como métodos adicionales que permiten realizar
procesos de cálculo, búsqueda, clasificación, ordenamiento, etc.
Los métodos get son aquellos que permiten obtener el valor de los atributos. Los
métodos set permiten modificar el valor de los atributos.
Estos métodos se han estandarizado, por eso se les conoce como los métodos get/set.
Incluso, los entornos de programación modernos, como NetBeans, generan la escritura
Creación de objetos
Un objeto, en la práctica es una variable cuyo tipo de dato es una clase. Cuando el
objeto es creado, obtiene una copia de los atributos de la clase para uso exclusivo de
dicho objeto. Por ésta razón, todos los objetos de una clase tendrán los mismos atributos
pero cada uno con valores diferentes.
Sintaxis general:
// declara 2 objetos
Clase objeto1, objeto2;
Ejemplo 1
Diseñe una clase, de nombre Producto con los siguientes atributos privados: código
(cadena), descripción (cadena), precio (real) y los métodos públicos get/set. Considere
un constructor implícito.
// métodos get
Considere el siguiente diseño de una GUI y programe la acción del botón Nuevo
}
// métodos que leen los datos de la GUI
private String leeCodigo(){return txtCodigo.getText();}
private String leeDescripcion(){return txtDescripcion.getText();}
private double leePrecio(){return
Double.parseDouble(txtPrecio.getText());}
Ejemplo 2
Diseñe una clase de nombre Persona con los siguientes atributos privados: nombres
(cadena), apellidos (cadena), edad(entero), peso(real) y los métodos get/set. Considere
un constructor explícito con parámetros.
this.edad = edad;
this.peso = peso;
}
// métodos get
public String getNombres(){return nombres;}
public String getApellidos(){return
apellidos;}
public int getEdad(){return edad;}
public double getPeso(){ return peso;}
// métodos set
public void setNombres(String nombres){
this.nombres = nombres;
}
public void setApellidos(String apellidos){
this.apellidos = apellidos;
}
public void setEdad(int edad){
this.edad = edad;
}
public void setPeso(double
peso){ this.peso = peso;
}
}
Considere el siguiente diseño de una GUI y programe la acción del botón Nuevo
Ejemplo 3
Diseñe una clase de nombre TV con los siguientes atributos privados: serie (cadena),
marca (entero), tamaño en pulgadas(entero), precio (real) y con los métodos get/set,
con un método adicional que devuelve el precio en soles dado el tipo de cambio como
parámetro, y con un método adicional que retorne el nombre de la marca. Considere las
siguientes marcas: Sony, LG, Samsung, Panasonic, otro. Considere un constructor
implícito.
Considere el siguiente diseño de una GUI y programe la acción del botón Nuevo
Ejemplo 4
Diseñe una clase de nombre Fecha con los siguientes atributos privados: dia(entero),
mes(entero), año(entero) y con los métodos get/set. Considere un constructor explícito.
Diseñe otra clase de nombre DNI con los siguientes atributos privados: numero(cadena),
dueño(Persona), fecha de emisión (Fecha), fecha de caducidad(Fecha) y con los
métodos get/set. Considere un constructor explícito.
Considere el siguiente diseño de una GUI y programe la acción del botón Nuevo.
Ejemplo 5
Diseñe una clase de nombre Punto con los siguientes atributos privados: x (entero), y
(entero), con un constructor explícito y con los métodos get/set.
Diseñe una clase de nombre Triangulo con los siguientes atributos privados: a(Punto),
b(Punto), c(Punto), con un constructor implícito y con los métodos get/set además de
los métodos de cálculo para los lados del triángulo, para el perímetro del triángulo y para
el área del triángulo.
Considere el diseño de una GUI para programar la acción del botón nuevo.
SEMANA 01
GUIA DE LABORATORIO 1
Encapsulamiento, diseño de clases y objetos
Ejercicio 1
Cree un proyecto nuevo de nombre P01E01. Cree un paquete nuevo de nombre modelo
y diseñe una clase de nombre Producto con los siguientes atributos privados: código
(cadena), descripción (cadena), precio (real) y con los métodos públicos get/set. Cree
un nuevo paquete de nombre vista y diseñe la GUI en un Panel de nombre
PanelPrincipal para el ingreso de los datos con el siguiente diseño:
Cada vez que hace clic en el botón Nuevo debe crear un objeto de la clase Producto y
mostrar la información de sus atributos. Cada vez que hace clic en el botón Borrar debe
borrar la información del área de texto, de las cajas de texto y enfocar el ingreso en la
caja de texto del código.
Ejecute su aplicación.
Ejercicio 2
Cree un proyecto nuevo de nombre P01E02. Cree un paquete nuevo de nombre modelo
y diseñe una clase de nombre Persona con los siguientes atributos privados: nombres
(cadena), apellidos (cadena), edad(entero), peso(real); con un constructor explícito y
con los métodos get/set.
Clic derecho en el paquete creado, elegimos New Java Class y escribimos el nombre
Persona y escribimos lo siguiente:
Ahora, vamos a utilizar NetBeans para que genere, automáticamente, los métodos
get/set. Clic derecho en la clase creada, elegimos Refactor, Encapsulate Fields y nos
aparece la siguiente ventana donde seleccionamos todo ( Select All).
En Javadoc elegimos none para evitar los comentarios que genera NetBeans y por
último hacemos clic en el botón Refactor. Ver los métodos get-set generados
También puede generar el código del constructor y los métodos get-set a través de la
opción Insert code… de netbeans.
Cada vez que hace clic en el botón Nuevo debe crear un objeto de la clase Persona y
mostrar la información de sus atributos. Cada vez que hace clic en el botón Borrar debe
borrar la información del área de texto, de las cajas de texto y enfocar el ingreso en la
caja de texto de nombres.
En el paquete vista desarrolle la clase de aplicación de nombre Principal en un
JFrame
Ejecute su aplicación.
Ejercicio 3
Cree un proyecto nuevo de nombre P01E03. Cree un paquete nuevo de nombre modelo
y diseñe una clase de nombre TV con los siguientes atributos privados: serie (cadena),
marca (entero), tamaño en pulgadas(entero), precio (real) y con los métodos get/set,
con un método adicional que devuelve el precio en soles dado el tipo de cambio como
parámetro, y con un método adicional que retorne el nombre de la marca. Considere las
siguientes marcas: Sony, LG, Samsung, Panasonic, otro. Cree un nuevo paquete de
nombre vista y diseñe la GUI en un Panel de nombre PanelPrincipal para el ingreso
de los datos con el siguiente diseño:
Cada vez que hace clic en el botón Nuevo debe crear un objeto de la clase TV y mostrar
la información de sus atributos además de su precio en soles considerando un tipo de
cambio actual. Cada vez que hace clic en el botón Borrar debe borrar la información del
área de texto, de las cajas de texto y enfocar el ingreso en la caja de texto de serie.
Ejecute su aplicación.
Ejercicio 4
Cree un proyecto nuevo de nombre P01E04. Cree un paquete nuevo de nombre modelo
y diseñe una clase de nombre Fecha con los siguientes atributos privados: dia(entero),
mes(entero), año(entero) y con los métodos get/set. En el mismo paquete diseñe una
clase de nombre DNI con los siguientes atributos privados: numero(cadena),
dueño(Persona), fecha de emisión (Fecha), fecha de caducidad(Fecha) y con los
métodos get/set.
Ejecute su aplicación