Professional Documents
Culture Documents
9 Sesin
POO
Objetos y clases
Codificacin
Encapsulamiento
Polimorfismo
Herencia
Propiedades
Vienen a ser caractersticas de una clase, tambin reciben el nombre alternativo de atributos.
Mtodos
Vienen a ser acciones que puede realizar la clase, se les conoce tambin como operaciones o
comportamientos.
Objeto
Los objetos se crean a partir de una clase, es decir, la plantilla o molde es la clase y los elementos
que puedo crear a partir de dicho molde son los objetos.
Se dice que las clases son genricas
mientras que los objetos vienen a ser
especficos, ya que una clase
ALUMNO puede incluir la propiedad
NOMBRE, por ende un objeto de la
clase ALUMNO incluir la propiedad
NOMBRE y adicionalmente un valor
especfico como por ejemplo AMY.
Cuando hablamos de un objeto,
hablamos de pequeos elementos
bien definidos, representaciones
verdaderas
de
objetos
que
tenemos en la vida real.
Los objetos son aquellos que
tienen sus propios atributos y sus
propios comportamientos; es decir
cada objeto es nico y no puede
confundirse con otro.
En la Figura se muestra algunas clases y objetos del mundo real.
Pgina 2
1.1.
ABSTRACCIN.
La abstraccin se puede definir como la capacidad de examinar algo sin preocuparse de los
detalles internos. La abstraccin es la capacidad de un objeto de cumplir sus funciones
independientemente del contexto en el que se lo utilice; por ejemplo, un objeto Cliente
siempre expondr sus mismas propiedades y dar los mismos resultados a travs de sus eventos,
sin importar el mbito en el cual se lo haya creado.
1.2.
ENCAPSULAMIENTO
HERENCIA
En resumen la herencia es reutilizacin de cdigo, es decir, que se puede crear clases que son
reutilizables en otros escenarios.
La herencia es la propiedad que permite a los objetos construirse a partir de otros objetos. Una
clase se puede dividir en subclases. Las subclases pueden heredar cdigo y datos de su clase base
aadiendo su propio cdigo y datos a la misma. La herencia impone una relacin jerrquica entre
clases, en la cual una clase hija hereda de su clase padre.
1.4.
Si una clase slo puede recibir caractersticas de otra clase base, la herencia se denomina herencia
simple.
Si una clase recibe propiedades de ms de una clase base, la herencia se denomina herencia
mltiple.
POLIMORFISMO
Pgina 3
Por ejemplo, consideremos la operacin sumar. El operador + realiza la suma de dos nmeros
de diferente tipo. Adems se puede definir la operacin de concatenar dos cadenas mediante el
operador +.
El trmino de polimorfismo define la capacidad de que ms de un objeto puedan crearse usando la
misma clase de base para lograr dos conceptos de objetos diferentes.
Veamos el siguiente esquema grfico, que muestra una clase padre (MedioTransporte) con tres clases
hijas (Barco, Avin, Auto):
CLASE
Permite representar cualquier elemento de la realidad, ya sea un individuo como un alumno, libro, automvil
o un proceso como matrcula, venta, entre otros. Una clase es como una plantilla de la cual se pueden crear
varios objetos con las mismas caractersticas y funciones.
Una clase es un modelo (diseo) de objeto
Define los atributos y operaciones del objeto
La clase usan el encapsulamiento para forzar la abstraccin.
Notacin UML:
-El nombre de toda Clase debe comenzar con Maysculas
-El nombre de los objetos con Minsculas NOTACIN UML Y JAVA
Pgina 4
/* Declaracin de la clase */
Pgina 5
En el programa principal.
public class principal{
public static void main(String[] args) {
Empleado A1= new Empleado();
Pgina 6
A1.Registrar("Juan","Hurtado", 22);
A1.Mostrar();
}
}
b) Constructores. Un constructor es un tipo especfico de mtodo que siempre tiene el mismo nombre
que la clase, y que se utiliza cuando se desean crear objetos de dicha clase, es decir, se utiliza
al crear e iniciar un objeto de una clase.
c) Constructores mltiples. Cuando se declara una clase en JAVA, se pueden declarar uno o ms
constructores (constructores mltiples) opcionales que realizan la iniciacin cuando se instancia un objeto
de dicha clase.
ACCESO A VARIABLES Y MTODOS
Una vez que se ha creado un objeto, seguramente se querr hacer algo con l. Tal vez se requiera obtener
informacin de ste, se quiera cambiar su estado, o se necesite que realice alguna tarea. Los objetos tienen
dos formas de hacer esto.
a) Manipular sus variables directamente.
punto (.). La sintaxis es la siguiente:
nombreObjeto.nombreVariable;
b) Llamar a sus mtodos. Para llamar a los mtodos de un objeto, se utiliza tambin el operador punto (.).
La sintaxis es la siguiente:
nombreObjeto.nombreMetodo( <lista de argumentos opcionales> );
Actividad:
El usuario le solicita desarrollar un programa para clculo de impuestos sobre ventas.
Este programa tiene como propsito calcular el valor que debe pagarse por concepto de impuesto
sobre ventas e impuesto al activo neto para un monto dado por el usuario.
Ud. Desarrolla el programa utilizando sus conocimientos adquiridos en Programacin Estructurada,
para hacer dos versiones, una utilizando un estilo procedural, y la otra utilizando un estilo modular.
Cuando termina el programa y lo muestra al usuario, l le dice que el programa est bien, pero que tambin
necesita que para el mismo monto se calcule el impuesto al activo neto.
A continuacin se muestra el desarrollo de este ejercicio utilizando tres tcnicas o estilos:
Pgina 7
Calcular el total a pagar por un prstamo, ingresando el monto inicial prestado, la tasa de inters
mensual.
CF = CI(1+i)^n
Un punto en el espacio.
Un segmento de recta.
Un polgono.
Una manzana (de las que se venden en un mercado).
Una carta (en Correos)
Un libro (en una biblioteca)
Un libro (en una librera)
Una cancin (en una aplicacin para un reproductor MP3).
Una cancin (en una emisora de radio)
Un disco de msica (en una tienda de msica).
Un disco de msica (en una discoteca).
Un telfono mvil (en una tienda de telefona)
Un telfono mvil (en el sistema de una empresa de telecomunicaciones)
Un ordenador (en una tienda de Informtica)
Un ordenador (en una red de ordenadores)
Un ordenador (en el inventario de una organizacin)
Declare las correspondientes clases en Java, defina los constructores que considere adecuados e
implemente los correspondientes mtodos para el acceso y la modificacin del estado de los objetos (esto
es, los mtodos de ingreso de datos desde el teclado).
Pgina 8
ENCAPSULAMIENTO
El encapsulamiento consiste en ocultar los detalles de la implementacin de un objeto, a la vez que se provee
una interfaz pblica por medio de sus mtodos permitidos. Tambin se define como la propiedad de los
objetos de permitir acceso a su estado nicamente a travs de su interfaz o de relaciones preestablecidas
con otros objetos.
Lo que realmente nos importa es el comportamiento de los objetos, no como esta implementado ese
comportamiento.
Si la implementacin cambia, pero su interfaz permanece igual, es decir, la forma como ese objeto
se relaciona con el mundo exterior, los objetos que interaccin con el, no se vern afectados por esos
cambios.
El encapsulamiento oculta la complejidad de la implementacin. Esta propiedad de los objetos la
vivimos en el mundo real en muchas situaciones en que tratamos con cajas negras:
Tal es el caso de la labor de conducir un automvil: no es necesario que usted sepa de mecnica automotriz,
solo tiene que saber cmo interactuar con el vehculo.
ninguno de los anteriores: La variable o mtodo es accesible dentro del mismo paquete (directorio).
Pgina 9
Ejemplo encapsulamiento:
Mantener las variables de instancia protegidas (puede ser con un modificador de acceso,
por ejemplo: private)
Hacer mtodos de acceso pblicos para forzar al acceso a las variables por medio de
dichos mtodos en lugar de acceder directamente.
Utilizar las convenciones de cdigo para los nombres de los mtodos, por ejemplo: set y get.
Pgina 10
Actividad 01:
Desarrollar una aplicacin donde se registre los datos de un automvil (cdigo, marca, modelo, categora,
precio, descuento), si el automvil tiene la categora A su descuento ser del 12%, si es B ser el 8% y si
es C solo el 4%. Calcular el precio de venta del automvil ingresando todos los datos excepto el descuento.
CONTROL DE ACCESIBILIDAD DE UNA CLASE:
El nombre del archivo debe ser el nombre de la clase pblica, ms la extensin .java.
Ejemplo
Disear una clase alumno, que tiene por atributo el nmero de orden, edad y como Mtodos
o
Luego disear una clase Curso que contenga tres alumnos a esto se denomina que tenga que tenga tres
objetos de la clase alumno
Pgina 11
Se tiene que considerar que se tiene que registrar a los tres alumnos.
class alumno{
private int nro;
private int edad;
private string nombre;
public void registrar(int n_nro, int n_edad, string c_nombre )
{
nro = n_nro;
edad = n_edad;
nombre = c_nombre;
}
public void consultar()
{
System.out.println("Nro. del Alumno: " + nro + Nombre: + nombre);
System.out.println("Edad: " + edad);
}
}
class curso {
private alumno a1 =new alumno();
private alumno a2 =new alumno();
private alumno a3 =new alumno();
public void registrar(int n1,int n2, int n3, int ed1,int ed2,int ed3,string nm1,string nm2,string
nm3 )
{
a1.registrar(n1,ed1,nm1);
a2.registrar(n2,ed2,nm2);
a3.registrar(n3,ed3,nm3);
}
public void consultar()
{
a1.consultar();
a2.consultar();
a3.consultar();
}
}
public class ClasesContenedoras
{
public static void main(String[] args)
Pgina 12
{
curso c1 = new curso();
c1.registrar(1,2,3,20,22,23,juan,pedro,luis);
System.out.println("Consulta de Datos Registrados");
System.out.println("-----------------------------");
c1.consultar();
}
}
Ejercicios:
1. Disear una clase docente con cdigo, nombre, categoria y sueldo como atributos. Implemente los
mtodos:
o
consultar() - muestra los datos del docente. , se debe ingresar tres docentes con sus respectivos
atributos.
Si la categora es de tipo T el sueldo puede superar de los 3000 soles de lo contrario el sueldo debe
ser menor.
2. Disee un programa para la clase empleado con sus atributos de apellido, nombre, direccin, telfono,
con los siguientes mtodos: de registrar y mostrar, registrar registra a todo los atributos respectivamente,
y mostrar sus atributos.
3. Disear una clase producto, con atributo de codigo, nombre, precio, cantidad como datos de mtodos
de que incluya:
o
retValor() - retorma el valor en precio de todos los producto (valor en soles en todo los productos):
Luego disee una clase sucursal que contenga los objetos de la clase producto como datos miembros que
incluya las funciones para 2 productos:
o
4. Disee una clase Asignatura con cdigo, nombre y horas como atributos e incluya los mtodos.
o
Luego disee la clase Especialidad que contenga tres objetos de la clase asignatura e incluya las los
mtodos
o
Pgina 13
Constructores
Todas las clases Java tienen mtodos especiales llamados Constructores que se utilizan para inicializar un
objeto nuevo de ese tipo. Los constructores tienen el mismo nombre que la clase:
Ejemplo02: Disear la clase empresa productora con: ruc, nombre y produccin total, con los mtodos de
mostrar datos (Consultar) y mostrara la produccin total que realiza dicha empresa:
A continuacin disea la clase Industria que contenga el Ruc, Nombre, produccin de una empresa y las
funciones respectivamente, tambin debe tener un constructor.
public class Empresa {
private int Ruc;
private String Nombre;
private float Prod;
public Empresa(int Ruc, String Nombre, float Prod){
Pgina 14
this.Ruc = Ruc;
this.Nombre = Nombre;
this.Prod = Prod;
}
public float retprod(){
return Prod;
}
public String consultar(){
return "Ruc" + Ruc +"Nombre: " + Nombre + " Produccin: " + Prod + "\n";
}
}
public class Industria{
private String NombreIndustria;
private Empresa emp1;
public Industria(String Nombre, int Ruc1, String Nombre1, float Prod1){
this.NombreIndustria=Nombre;
emp1=new Empresa(Ruc1, Nombre1, Prod1);
}
public String consultar(){
String Datos;
Datos = emp1.consultar();
return " los datos de la Empresa es "+Datos;
}
public String totprod(){
double total=0;
total = emp1.retprod();
return "Produccin de la industria: " + total;
}
}
public class Principal {
public static void main(String[] args) {
Industria ind = new Industria ("calzados", 131324254, "Rojas", 255444f);
System.out.println(ind.consultar() + ind.totprod());
}
}
Pgina 15
Ejemplo 03: Mostrar los diferentes valores segn el tipo de dato ingresado.
public class miclase {
public void escribe(int i) {
System.out.println("LLamada con entero");
}
public void escribe(float i) {
System.out.println("LLamada con float");
}
public void escribe(double i) {
System.out.println("LLamada con double");
}
}
public class ejemplo03 {
public static void main(String arg[]){
miclase mclase;
mclase = new miclase();
mclase.escribe(1);
mclase.escribe(1.0F);
mclase.escribe(1.0);
}
}
Ejemplo 04: Se Tiene una clase producto con cdigo y descripcin como datos miembros o atributos y
contenga los mtodos:
Pgina 16
Pgina 17
Actividad: Realizar un programa que permita implementar el costo de alquiler de automviles, si es gasolinera
se calcula de los das de alquiler por km, si es a gas se calcula el km inicial el kilometraje final * pago
actual, si es elctrico solo se necesita el pago de 100 soles por 2 das.
HERENCIA
La herencia bsicamente consiste en que una clase puede heredar sus variables y mtodos a varias subclases
(la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los
atributos y mtodos propios, tiene incorporados los
atributos y mtodos heredados de la superclase. De
esta
Ejemplo
El mecanismo de herencia permite definir nuevas
clases partiendo de otras ya existentes. De este modo, se consiguen reflejar todos los niveles de
generalizacin que se deseen.
La orientacin a objetos de Java, y en particular la caracterstica de herencia, nos permite definir nuevas
clases derivadas a partir de otra ya existente, que la especializan de alguna manera, extendindola. As
logramos definir una jerarqua
Pgina 18
Para indicar que una clase deriva de otra, heredando sus propiedades (mtodos y atributos), se usa el
trmino extends, como en el siguiente ejemplo:
public class Hombre extends Persona {
public CrearEsperma() { <implementacin>}
}
Una clase derivada de otra se denomina subclase, mientras que la clase de la cual procede recibe el nombre
de superclase. En el ejemplo anterior, la superclase sera Persona, y la subclase, Hombre, Mujer.
En todo lenguaje orientado a objetos existe una jerarqua de clases relacionadas en base a trminos de
herencia. En Java, el punto ms alto de la jerarqua es la clase Object de la cual derivan en ltima instancia
todas las dems clases. Esta clase aporta una serie de funciones bsicas comunes a todas las clases. Si al
definir una nueva clase, no aparece la clasula extends, Java considera que dicha clase desciende
directamente de Object.
En la orientacin a objetos, se consideran dos tipos de HERENCIA, SIMPLE Y MLTIPLE.
En el caso de la primera, una clase slo puede derivar de una nica superclase.
Pgina 19
En Java slo se dispone de herencia simple, en aras de una mayor sencillez del lenguaje, si bien se
compensa de cierta manera la inexistencia de herencia mltiple con unas clases especiales
denominadas interfaces.
Ejemplo 05: Desarrolle un programa para la clase Persona que ser sper clase(Padre) y Empleado sub
clase(Hijo).
public class Persona {
private String ID;
private String Nombre;
private String Telefono;
public Persona(String xID, String xNombre, String xTelefono) {
this.ID=xID;
this.Nombre=xNombre;
this.Telefono=xTelefono;
}
public Persona(String xNombre, String xTelefono) {
this.ID="Fernando"; //Se autogenera
this.Nombre=xNombre;
this.Telefono = xTelefono;
}
public String Imprimir(){
return ID + "\t" + this.Nombre + "\t" + this.Telefono;
}
}
public class Empleado extends Persona{
private String Area;
public Cliente(String xID, String xNombre, String xFono, String xArea) {
super(xID, xNombre, xTelefono);
this.Area=xArea;
}
public String Imprimir(){
return super.Imprimir() + "\t" + this.Area;
}
}
public class Prueba {
public static void main(String[] args) {
Persona p = new Persona("1", "Miguel","212121");
Persona amigo = new Persona("Pepe", "234920");
Pgina 20
Pgina 21