Clases objetos
JAMES GOSLING
En 1990 James Gosling inicia el desarrolló el lenguaje OaK como una variante de C++ en la empresa SUN (Stanford University Network) con la intención de operar cualquier mecanismo informático (como licuadoras, lavaplatos, microondas, etc.) mediante un programas sencillos y simples que se distribuyen a través de una red
Programación Orientada aObjetos
CREACION DE UN OBJETO
• Sintaxis : Clase
objeto=new Clase ( ) ;
Invocacion al constructor
Ejemplo: Profesor obj_Jorge=new Profesor(); Alumno obj_Alfredo=new Alumno();
Definicion de un Metodo
• No retorno de valor (void):
EJEMPLOS
EJEMPLOS
EJEMPLOS
Definicion de un Metodo
• Con retorno de valor (return):
EJEMPLOS
Invocación de un métodoInvocación de un método
• Sintaxis : Clase objeto=new Clase(); objeto . Metodo(); Ejemplo : Persona obj_Jorge=new Persona(); obj_Jorge.duerme(); obj_Jorge.Enseña();
Las clases y los objetos están en todas partes
Vehículo Platero:Animal Animal
Punto Figura (1,3) (2,2) (2,1) (5,2.5)
Estructura de una Clase
Clases
• Estructuras que encapsulan datos y funciones
CONSTRUCTORclass Punto VARIABLES DE ESTADO { public: (DATOS MIEMBRO) Punto(); float x,y; void trasladar(float, float); void cambiar_x(float a){x=a;}; void cambiar_y(float b){y=b;}; float distancia(Punto); }; MÉTODOS (FUNCIONES MIEMBRO)
Clase Automovil
class Automovil { // PROPIEDADES String color ; int velocidadMaxima ;
// MÉTODOS void asignaColor(String _color) { color = _color; } StringindicaColor() { return color; } }
Encapsulación
• Las clases ocultan los detalles de realización de los métodos. • Los “usuarios” (los objetos que invocan esos métodos) conocen el interfaz y la semántica. No tienen que preocuparse de los detalles. • El concepto de interfaz puede ampliarse. • Contribuye a la reusabilidad del código.
Relaciones entre Clases:
Las relaciones entre clases permiten lareutilización de código
Colaboración entre objetos
• Los objetos (clases) colaboran para resolver problemas. • La forma en que los objetos (clases) colaboran puede ser muy variada:
– – – – – Asociación simple Herencia Agregación Composición ...
Conceptos básicos: ASOCIACION
• Modela la relación entre objetos (necesaria para que se comuniquen y colaboren) • Asociación-Clase /Enlace-Objeto • Tipos básicos:
– Asociación – Herencia – Agregación / Composición (agregación fuerte)
Coche Motor Árbol Hoja
Conceptos básicos: HERENCIA
• Generalización / Especialización • Los objetos “heredan” las características de la clase. • Las clases pueden heredar de otras clases.
– Extensión. – Restricción. – Modificación.
Electrodoméstico tensión consumo Conectar Desconectar
•Utilidad:
– Abstracción. – Reutilización.
Lavadora Hormiga capacidad
Televisor numCanales
Plancha vapor
Herencia
• Posibilidad de reutilizar código • Algo más que incluir ficheros o importar módulos Figura • Distintos tipos de herencia:
– simple / múltiple – de implementación/de interfaz
• Limitaciones • Problemas
Regular
Polígono
Elipse
Irregular
Círculo
DetallesHerencia
• Extensión y Reutilización de código • Una clase derivada hereda el comportamiento de su clase padre • Redefinición de métodos • Clases abstractas • Herencia múltiple / Herencia repetida
Obtención de las relaciones de herencia
Las Relaciones de Herencia se obtienen mediante la generalización y la especialización. La Generalización se hace a partir de un conjunto de clases y se búscauna clase que las generaliza (agrupa) La Especialización se genera cuando a partir de una clase genérica se obtienen clases que son casos particulares de la misma
Herencia de Persona a Alumno
class Persona { String nombre ; Persona(String _nombre) { nombre = _nombre; } String indicaNombre() { return nombre; } } class Alumno extends Persona { int calificacion ; Alumno(String _nombre) {...
Regístrate para leer el documento completo.