La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.

Presentaciones similares


Presentación del tema: "Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación."— Transcripción de la presentación:

1 Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación de los métodos. Cómo se va a hacer -Informática II -

2 Clases y objetos campos : representan el estado interno del objeto
métodos : representan el comportamiento del objeto -Informática II -

3 Clases y objetos class Punto{ private double x, y;
public Punto (double z,double m) { x = z; y = m; } public void clear() { x = 0; y = 0; } public static void main (String [] args) { Punto p = new Punto (0,0); Punto q = new Punto (10,20); p.clear(); System.out.println(j); -Informática II -

4 El método main En una aplicación Java, existe siempre una clase que controla la aplicación. Ejecutar una aplicación Java es ejecutar una clase. El sistema localiza el método main de esa clase y lo ejecuta. El método main debe ser public, static y void y acepta un solo argumento de tipo String []. -Informática II -

5 Clases y objetos Una clase crea un nombre de tipo en Java.
Vehiculo mi_auto; La declaración no crea un objeto, únicamente declara una referencia a un objeto vehículo. El objeto mi_auto no existe en la realidad, sólo existe una referencia mi_auto. -Informática II -

6 Clases y objetos de instancia Campos: estáticos o de clase
Campos de instancia: significa que cada objeto posee los campos de instancia con sus valores particulares. Campos estáticos o de clase: sólo una instancia del campo es compartida por todos los objetos de una clase. Se declaran con static. -Informática II -

7 Control de acceso y herencia
Todos los campos y métodos de una clase son siempre accesibles para el código de la propia clase. Para controlar el acceso desde otras clases y para controlar la herencia de las subclases, existen los modificadores de control de acceso: Public: son accesibles en cualquier lugar en que sea accesible la clase y lo heredan las subclases. Private: son accesibles sólo en la propia clase. Protected: son accesibles para las subclases y heredados por ellas, y accesibles por código del mismo paquete. Paquete: no llevan modificador de acceso y son accesibles y heredados por código del mismo paquete -Informática II -

8 Punto mi_punto = new Punto (5, 7.3);
Creación de objetos Punto mi_punto = new Punto (5, 7.3); Cuando se crea un objeto con el operador new, se especifica el tipo de objeto que se desea crear y los posibles parámetros para su construcción. Si no hay espacio de memoria suficiente, se ejecuta el garbage_collector. Si con la ejecución del recogedor de basura sigue sin haber espacio, el sistema lanza una excepción OutOfMemoryError. -Informática II -

9 Constructores Tiene el mismo nombre que la clase y sirve para darle al objeto en el momento de creación, un estado inicial correcto. Puede existir más de un constructor por clase. Los constructores no tienen tipo devuelto, razón por la cual no se consideran métodos. Los campos se pueden inicializar con un valor en el momento de declararlos. Los constructores se invocan después de haber asignado sus valores iniciales por defecto alas variables de instancia. -Informática II -

10 Constructores En un constructor se puede invocar a otro constructor de la propia clase, usando la invocación this(). Si el constructor que quiere invocar tiene parámetros, se los nombra al invocar a this(double x). Los constructores sin parámetros se llaman constructores no-arg. Si no se proporciona un constructor para una clase, el lenguaje proporciona un constructor no-arg, por defecto que no hace nada. El constructor por defecto es public si lo es la clase y no lo es en caso contrario. -Informática II -

11 Constructores Algunas clases no tienen un estado inicial razonable.
Proporcionar un estado inicial es conveniente y razonable. Construir un objeto es a veces una operación costosa, se requiere que los objetos tengan un estado inicial correcto (objeto con una tabla). Un constructor que no sea public impone restricciones en cuanto a quien puede crear objetos. Un constructor se puede marcar como protected y sólo tienen sentido para las subclases. -Informática II -

12 Métodos Los métodos contienen habitualmente código que comprende y manipula el estado de un objeto. Los métodos se invocan como operaciones sobre los objetos a través de las referencias usando el operador . Punto centro = new Punto (10, 10); centro.clear ( ); cada método tiene un número determinado de parámetros. Cada parámetro tiene un tipo determinado, ya sea un tipo primitivo o un tipo de referencia. Tienen también un tipo devuelto (void si no devuelve ningún valor). -Informática II -

13 Métodos Pasaje de parámetros por valor. Pero si pasa una referencia a un objeto, lo que se pasa por valor es esta referencia. Es decir si un método recibe como parámetro un objeto y ese método cambia el estado del objeto, se cambia ese objeto en todos los lugares del programa en que se haga referencia a él. El conjunto de los métodos públicos son la interface de la clase, y sólo a través de ellos se accede a los campos privados del objeto. Para preservar el encapsulamiento y desacoplar el uso de un objeto de su estructura interna, los métodos deben ser la única vía de acceso a los campos. -Informática II -

14 Referencia especial this y super
this: hace referencia al propio objeto que ha invocado al método. Se usa en métodos no estáticos. super: se usa para acceder a campos anulados y a métodos de la superclase. -Informática II -

15 Sobrecarga de métodos Dos métodos pueden tener el mismo nombre pero deben diferir en su signatura, es decir, en el número o tipo de alguno de sus parámetros. Estos dos métodos se dice que están sobrecargados. void rotar(float grados, int direccion) void rotar(int rads) void rotar(float grados) Al tener distinto número de parámetros o alguno de sus parámetros de distinto tipo no le crea ambigüedades al compilador. -Informática II -

16 Miembros estáticos Campos estáticos: hay sólo una variable que identifica ese campo, independientemente del número de objetos que haya de esa clase. Se inicializan antes de que se use ningún campo estático y antes de que se ejecute ningún método de la clase. Un método estático accede sólo a las variables estáticas y a los métodos estáticos de la clase. No existe la referencia this. -Informática II -

17 Garbage collector Cuando no existe ninguna referencia a un objeto, el sistema puede reclamar el espacio que ese objeto ocupa en memoria, lo hace automáticamente a través del Garbage Collector (recogida de basura) El sistema sólo ejecuta el garbage collector si en realidad necesita espacio en memoria. -Informática II -

18 El método finalize Los métodos finalize se ejecutan siempre antes de que el espacio de memoria ocupado por un objeto sea reclamado. Es importante implementarlos en los objetos que usan recursos externos, no Java, como ser archivos, una conexión de red, etc. protected void finalize( ) throws Throwable { super.finalize( ); } -Informática II -

19 El método finalize Invocando a finalize a través de super se asegura que las superclases sean correctamente finalizadas. Al salir de una aplicación se ejecutan los métodos finalize de todos los objetos existentes. -Informática II -

20 El método toString Cuando un objeto posee un método toString(), que no recibe argumentos y retorna un String, que es una representación imprimible del objeto. toString() se usa cuando el objeto debe mostrarse en pantalla. -Informática II -

21 El método toString String toString( ) {
String datos = “\nDatos personales : “ + “\n Nombre : “ + this.nombre + “\n Dirección :” + this.dire; return datos; } -Informática II -


Descargar ppt "Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación."

Presentaciones similares


Anuncios Google