Programación Orientada A Objetos
Programación Orientada A Objetos
Objetivos
• Definir conceptos de modelado: abstracción, encapsulación y paquetes
• Determinar porque el código de las aplicaciones de tecnología Java es reutilizable
• Definir clase, miembro, atributo, método, constructor y paquete
• Utilizar los modificadores de acceso private y public
• Invocar a un método en un objeto particular
• Utilizar en línea de comando el API de tecnología a Java
Programación Java
Análisis y Diseño.
• Análisis describe que necesita hacer el sistema.
– Modelado del mundo real: actores y actividades, objetos y comportamientos.
• El Diseño describe como lo hace el sistema :
– Modelado de las relaciones e interacciones entre objetos y actores del sistema.
– El uso de abstracciones ayudan a simplificar el problema o la solución.
Programación Java
Abstracción
• Funciones.- Escribir un algoritmo una vez para ser usado en muchas situaciones.
• Objetos.- Agrupar en una clase un conjunto relacionado de atributos y comportamientos.
• Frameworks y APIs.- Grupos de clases que dan soporte a una actividad compleja.
– Los frameworks pueden ser usados como son o ser modificados para extender su
comportamiento básico.
Programación Java
Declaración de clases.
• <declaración_clase> ::=
<modificador> class <nombre_clase> {
<declaración_atributos>*
<declaración_constructores>*
<declaración_métodos>*
}
• Ejemplo:
public class Vehiculo {
private double carga;
public void setCarga(double kilos){
carga = kilos;
}
}
Programación Java
Declaración de atributos
• Sintaxis básica de un atributo:
<declaración_atributo> ::=
[<modificador>] <tipo> <identificador> [= valor_defecto];
<tipo> ::= byte | short | int | long | float | double | char | boolean | <nombre_clase>
• Ejemplos:
public class Ejemplo {
private int a;
public float y = 1000.00;
private String s = “Java”;
}
Programación Java
Declaración de métodos
• Sintaxis básica de un método:
<declaración_método> ::=
<modificador> <tipo_retorno> <identificador> (<args>*) {
<sentencias>*
}
<args> ::= <tipo_argumento> <nombre_argumento>,
• Ejemplo:
public class Cosa {
private int x;
public int getX(){
return x;
}
public void setX(int newX) {
x = newX;
}
}
Programación Java
Acceso a objetos
• La notación “punto”: <objeto>.<miembro>
• Se utiliza para acceder a los miembros de un objeto, incluyendo atributos y métodos.
• Ejemplos
cosa1.setX(47);
cosa1.X = 47 // permitido si X es público.
Programación Java
Ocultar información
public class MiFecha {
public int dia;
public int mes;
public int año;
}
Ocultar información.
• El código cliente debe usar los métodos para acceder a los datos internos.
• Ejemplo:
Mifecha f = new MiFecha();
d.setDia(32); //día inválido, devuelve false.
d.setDiaMes(30, 2); //combinación errónea.
d.setDia(d.getDia() + 1); //Control de desbordamiento.
Programación Java
Encapsulación
• Esconde los detalles de la implementación de una clase
• Fuerza al usuario a usar la interfaz de clase.
• Hace el código más fácil de mantener y menos proclive a errores.
Programación Java
Declaración de constructores
• Sintaxis básica de un constructor:
<declaración_constructor> ::=
[<modificador>] <nombre_clase> (<args>*) {
<sentencias>*
}
• Ejemplo:
public class Cosa {
private int x;
public Cosa() {
x = 47;
}
public Cosa(int new_x){
x = new_x;
}
}
Programación Java
Paquetes de software.
• Agrupar las clases para facilitar la gestión del sistema.
• UML incluye el concepto de paquetes.
• Los paquetes pueden contener clases y otros paquetes.
• Existen múltiples técnicas para agrupar las clases:
• Similitud semántica.
Programación Java
Sentencia package;
• Mecanismo de empaquetado.
<package_declaration> ::= package <top_package_name>[.subpackage>]*;
• Para indicar que las clases contenidas en un fichero fuente pertenecen a un determinado
paquete, se utiliza esta cláusula.
package shipping.domain;
Definición de la clase {
...
}
Programación Java
Sentencia package.
• Norma acerca de la cláusula package.
• La declaración de paquete debe estar al comienzo del fichero fuente.
• Solamente puede estar precedida por líneas en blanco o comentarios.
• Sólo se permite una declaración de paquete por fichero fuente. Todas las clases del
fichero fuente pertenecerán al mismo paquete.
• Si un fichero fuente no tiene declaración de paquete, las clases pertenecen al paquete
sin nombre o por defecto.
Programación Java
Sentencia import.
• Declaración:
<import_declaration> ::= import <package_name>[.<subpackage>]*.<class_name | *>;