Sesion01 POO
Sesion01 POO
Sesion01 POO
Fundamentos de
Programación
Orientada a
Objetos
Medio de tele-
comunicación
Medio de
transporte
Objeto de
oficina
Coche
Vehiculo aéreo
Programación Orientada a
Objetos
• Metodología que define los programas en
términos de "clases de objetos", objetos que
son entidades que combinan estado (datos),
comportamiento (procedimientos o
métodos) e identidad (propiedad del objeto
que lo diferencia del resto).
• Tomas las mejores ideas de la programación
estructurada y modular combinándola con
nuevos y poderosos conceptos.
Área Donde se Aplica la
Tecnología de Objetos
• Lenguajes de programación
• Bases de datos
• Dibujo y Visualización
• Sistemas Operativos
• Interfaz de Usuario
• Metodología de análisis y diseño
• Sistemas de conmutación telefónica
Ventajas de POO
• Uniformidad: la representación de los objetos esta
presente tanto en el diseño como en la codificación
• Flexibilidad: Cualquier cambio se ve reflejado en
cualquier lugar donde aparecen los datos involucrados.
• Objetivismo: representa el mundo real.
• Reusabilidad: permite utilizar una clase definida
previamente en aplicaciones que nos sea conveniente.
• Mantenibilidad: las clases, vistas como módulos
independientes son fáciles de mantener.
• Extensibilidad: gracias a la modularidad y herencia
pueden ser fácilmente extensibles al crecimiento de la
aplicación.
La Máquina Virtual Java -
JVM
• Es el entorno en el que se ejecutan los
programas Java, su misión principal es la
de garantizar la portabilidad de las
aplicaciones Java. Define esencialmente
un ordenador abstracto y especifica las
instrucciones (bytecodes) que este
ordenador puede ejecutar.
Características de JAVA
Simple: Java ofrece toda la funcionalidad de un
lenguaje potente, elimina las características menos
usadas y más confusas
Orientado a Objetos: Soporta las tres características
propias del paradigma de la orientación a objetos:
encapsulación, herencia y polimorfismo.
Distribuido: Java en sí no es distribuido, sino que
proporciona las librerías y herramientas para que los
programas puedan ser distribuidos.
Robusto: Java realiza verificaciones en busca de
problemas tanto en tiempo de compilación como en
tiempo de ejecución.
– Seguro: El código Java pasa muchos tests antes de
ejecutarse en una máquina.
– Interpretado: El intérprete Java (sistema run-time)
puede ejecutar directamente el código objeto.
– Multihilo: Al ser MultiHilo, Java permite muchas
actividades simultáneas en un programa.
– Portable: Java construye sus interfaces de usuario a
través de un sistema abstracto de ventanas.
– Dinámico: Las librerías nuevas o actualizadas no
paralizarán la ejecución de las aplicaciones actuales
(siempre que mantengan el API anterior).
– Arquitectura Neutral: el compilador Java compila su
código a un fichero objeto de formato independiente de
la arquitectura de la máquina en que se ejecutará.
¿Qué es un Objeto?
Camión
– Entidad conceptual
Proceso Químico
– Entidad programa
Lista Enlazada
¿Qué es un Objeto?
a + b = 10
Nombre: Carmen Reyes
Nº Empleado: 2587
Fecha de Contr.: 21 de marzo 1987
Condicion: Contratada
Estado
Conectar()
:MandoADistancia :Televisor
Canal(8)
Un Objeto tiene Identidad
• Cada objeto tiene una identidad única, incluso si su
estado es idéntico al de otro objeto.
• Los objetos son distinguidos por su existencia inherente
y NO por sus propiedades descriptivas.
Persona Nombre
nombre
apellido materno
apellido paterno Atributos
sexo
edad
comer()
beber() Operaciones
dormir()
Clase
Nombre Vehículo
marca
modelo
Atributos color
número de serie
mover()
abrir()
Operaciones girar()
detener()
Clase
Nombre Pelota
Atributos
Operaciones
Clases y Objetos
Mundo Real En OOP
Clase Perro
generalización Clase
Raza,
de características Define
Color,
(atributos y datos y
Edad,
comportamientos) métodos
Corre,
......
Objeto Tino
Objetos
Instancia de una clase Pastor
Ocupa
distinguible por sus Alemán
espacio,
características Marrón
se crea y
específicas 7 meses
se destruye
Veloz
.......
Principios de la POO
• Abstracción
• Modularidad
• Encapsulamiento
• Herencia
• Polimorfismo
Declaración en JAVA NetBeans:
• Clases
• Objetos
• Métodos
• Acceso a datos
• Atributos
Clase
• Es una plantilla para un objeto.
• Define la estructura de un objeto y su
interfaz funcional, es decir, define los
métodos y atributos de un grupo de
objetos de características similares.
class NombreClase{
//...
//cuerpo de la clase
//...
}
Atributos
• Los atributos se guardan en variables
denominadas de instancia, y cada
objeto particular puede tener valores
distintos para estas variables.
tipo nombre;
Métodos
• Los métodos son subrutinas que
definen la interfaz de una clase, sus
capacidades y comportamiento.
• Los métodos pueden tener una lista de
parámetros que permiten comunicar
información entre métodos.
tipo Nombre_del_metodo (parametros)
Clase, Atributos y Métodos
Clase
class Empleado{
} Métodos
double asistir(int faltas){
return 0;
}
}
Objeto
• Un objeto es una instancia o variable de
una clase. La declaración de una
referencia a objeto se realiza:
Clase objeto;
Método Constructor
• Un constructor es un método que inicia un objeto
inmediatamente después de su creación,
evitándonos tener que iniciar las variables. Tiene el
mismo nombre de la clase a la que pertenece.
class Empleado {
Empleado() {
Constructor
}
Empleado(int x, int y) {
}
}
Operador new
• Permite crear un nuevo objeto invocando al método
constructor de la clase, y devuelve una referencia a ese
objeto, proporcionando almacenamiento persistente.
NombreDelObjeto.variableDeInstancia
La misma clase Si Si Si Si
Subclases del mismo paquete Si Si Si -
Otras clases del mismo paquete Si Si Si -
Subclases en otros paquetes Si Si - -
Otras clases de otros paquetes Si - - -
class Empleado{
}
private double asistir(int faltas){
return 0;
}
}
Diagrama de una Clase
public class Libro
{
public String cod;
Libro public String tit;
+cod: String public double pre;
+tit: String
public void setCod(String c) {this.cod=c; }
+pre: double
35
La estructura de un programa en Java:
PAQUETE
IMPORTAR CLASES
PROPIEDADES (VARIABLES)
METODO CONSTRUCTOR
METODO MAESTRO
36
Ejemplo 1
• Implemente una clase de nombre Empleado con los siguientes
atributos: código, nombres, área laboral (Sistemas, Administración,
Marketing), sueldo, horas extras, afiliación de Seguro (AFP o SNP).
Indique su constructor que actualizara la informacion de sus atributos
asi como construya los siguientes métodos en dicha clase:
• MontoHExtras que calcula las horas extras del empleado en base a:
(SueldoBase * Horas Extras) / 240;
• MontoSeguro que sera el 17% de sueldo base si el seguro es AFP o
el 5% si es el SNP
• MontoEssalud calculable del 3% del SueldoBase
• MontoDescuentos que se calcula como: MontoSeguro +
MontoEssalud;
• SueldoBruto que se calcula como: SueldoBase + MontoHExtras;
• SueldoNeto que se calcula como: SueldoBruto - MontoDescuentos