Tema 4 Clases y Objetos

39
Java Clases y objetos 1 Java: Clases y Objetos Java Clases y objetos 2 Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una “plantilla” que describe un conjunto de objetos con atributos y comportamiento similares Un programa Java en ejecución crea y manipula (mediante llamadas a métodos) objetos concretos objetos concretos (ejemplares o instancias)

Transcript of Tema 4 Clases y Objetos

Page 1: Tema 4 Clases y Objetos

Java Clases y objetos 1

Java: Clases y Objetos

Java Clases y objetos 2

ClasesLa unidad fundamental de programación en Java es la claseUn programa Java está formado por un conjunto de clasesUna clase es una “plantilla” que describe un conjunto de objetos con atributos y comportamiento similares Un programa Java en ejecución crea y manipula (mediante llamadas a métodos) objetos concretosobjetos concretos(ejemplares o instancias)

Page 2: Tema 4 Clases y Objetos

Java Clases y objetos 3

ClasesCada objeto es un ejemplar de una clase� Cuando se invoca un método de un objeto, se

mira en el código de su clase las acciones a ejecutar

� Un objeto puede usar otros para realizar su trabajo

Java Clases y objetos 4

Clases

Una definición de clase comprende:� Cabecera� Campos o atributos:

� Variables� Constantes

� Métodos:� Funciones� Constructores� Bloques de inicialización static� Finalizador

estado del objeto

comportamiento

Page 3: Tema 4 Clases y Objetos

Java Clases y objetos 5

Definición de una clase[Modificadores] class NombreClase [ extends SuperClase] {

// definición de los atributos de la clasetipo1 identificador1;tipo2 identificador2;

……….…………….// definición de los métodos de la clasetipoDevuelto nombreMetodo1 (listaParametros) {

//instrucciones del método1}tipoDevuelto nombreMetodo2 (listaParametros) {

//instrucciones del método2}

……….…………….}

[Modificadores] class NombreClase [ extends SuperClase] {// definición de los atributos de la clasetipo1 identificador1;tipo2 identificador2;

……….…………….// definición de los métodos de la clasetipoDevuelto nombreMetodo1 (listaParametros) {

//instrucciones del método1}tipoDevuelto nombreMetodo2 (listaParametros) {

//instrucciones del método2}

……….…………….}

Java Clases y objetos 6

Modificadores de clase

Modificadores:� public class NombreClase // visible fuera del

paquete� Normalmente la clase se almacena en un fichero

NombreClase.java� En un fichero .java puede haber como mucho una clase

public

� class C extends superclase // la clase hereda de otra� Sólo herencia simple (una sóla superclase)� Si no aparece extends la clase definida hereda (es una

subclase) de un objeto general del sistema llamada Object

Page 4: Tema 4 Clases y Objetos

Java Clases y objetos 7

Datos de una clasepublic class Rectangulo{

int x;int y;int ancho;int alto;

// faltan los métodos de Rectángulo}

public class Rectangulo{int x;int y;int ancho;int alto;

// faltan los métodos de Rectángulo}

Object

Rectangulo

Java Clases y objetos 8

Variables, objetos y referencias

Una variable de un determinado tipo simple (int, float, boolean..)proporciona

� Capacidad para almacenar un valor simple�Un conjunto predifinido de operadores

Page 5: Tema 4 Clases y Objetos

Java Clases y objetos 9

Variables, objetos y referencias

Un objeto de una determinada clase proporciona� Capacidad para almacenar diversos valores

(atributos)� Define su propio conjunto de métodos para operar

sobre las instancias o ejemplares de esa clase� Cuando se declara un objeto de una clase se crea

una referencia a una instancia de dicha clase � Incialmente toma el valor null porque no existe objeto al

que referirse� No son punteros con los que se pueda trabajar

directamente

Java Clases y objetos 10

int num = 5;Rectangulo rect;

num 5

rect null

Variables, objetos y referencias

Page 6: Tema 4 Clases y Objetos

Java Clases y objetos 11

Variables, objetos y referencias

La declaración de tipos primitivos reserva memoriaLa declaración de tipos no primitivos no reserva memoria.Los objetos declarados no son objetos, sino punteros a objetos.Antes de utilizar un objeto dentro del programa es necesario reservar el espacio necesario

Java Clases y objetos 12

Creación de instancias (objetos)

Operador new� Crea una instancia o ejemplar de la

clase indicada y devuelve una referencia a dicho objeto

� Se reserva espacio de memoria para los datos del objeto�Un ejemplar es una copia individual de la plantilla de la clase que tiene su propio conjunto de datos

Page 7: Tema 4 Clases y Objetos

Java Clases y objetos 13

Creación de instancias (objetos)

Clase Rectángulo

Rectángulo e = new Rectángulo()

e Referencia al objeto

Instancia de Rectángulo

Java Clases y objetos 14

x

y

ancho

alto

Creación de instancias (objetos)int num = 5;// crea una referenciaRectangulo rect;rect = new Rectangulo();Rectangulo otroRect;otroRect = rect;// otroRect se refiere al mismo // rectangulo que rect

int num = 5;// crea una referenciaRectangulo rect;rect = new Rectangulo();Rectangulo otroRect;otroRect = rect;// otroRect se refiere al mismo // rectangulo que rect

num 5

rect

otroRect

Page 8: Tema 4 Clases y Objetos

Java Clases y objetos 15

Asignación

int i =10;int j =i;

Employee e = new Employee e = new Employee e = new Employee e = new Employee()Employee()Employee()Employee()

Employee x = e;Employee x = e;Employee x = e;Employee x = e;

Employee e Employee xcopiala referencia

int i copia

int j 10 10

Por valor

Por Referencia

Java Clases y objetos 16

ObjetosPodemos instanciar varios objetos de una clase

Los métodos disponibles son los mismos

sendJunkMailTo

getName setName

Mrs. Edna Smith12 Acacia Avenue

sendJunkMailTo

getName setName

Mr. J McDonald14 High Street

sendJunkMailTo

getName setName

Mrs. T Hughes27 Fern Cresent

Page 9: Tema 4 Clases y Objetos

Java Clases y objetos 17

Creación de instancias o ejemplares

Cuando se crea un objeto, las variables miembro (atributos) se inicializan al reservar memoria con los siguientes valores:

byte, short, int 0long 0Lfloat 0.0fdouble 0.0dchar '\u0000' (null)boolean falsetipos de referencia null

Las variables locales a un método se deben inicializar. Éstas no se inicializan automáticamente.

Java Clases y objetos 18

Acceso a los atributos de un objeto

Desde un objeto se puede acceder a los atributos o miembros con la siguiente sintaxis

referenciaObjeto.atributo;

Page 10: Tema 4 Clases y Objetos

Java Clases y objetos 19

Acceso a los atributos de un objeto

public class Rectangulo {int x;int y;int ancho;int alto;//faltan las funciones miembropublic static void main(String args[ ]) {

Rectangulo rect;rect = new Rectangulo();rect.x = 5;rect.y = 7;rect.ancho = 4;rect.alto = 3;System.out.println( "x = " + rect.x + ”

y = " + rect.y );System.out.println( "ancho = " + rect.ancho

+ ” alto = " + rect.alto ); } }

public class Rectangulo {int x;int y;int ancho;int alto;//faltan las funciones miembropublic static void main(String args[ ]) {

Rectangulo rect;rect = new Rectangulo();rect.x = 5;rect.y = 7;rect.ancho = 4;rect.alto = 3;System.out.println( "x = " + rect.x + ”

y = " + rect.y );System.out.println( "ancho = " + rect.ancho

+ ” alto = " + rect.alto ); } }

Java Clases y objetos 20

Declaración de métodos

Funciones declaradas en la clase y que determinan su comportamiento

tipoDevuelto nombreMetodo (listaParametros) {//instrucciones del método

}

Page 11: Tema 4 Clases y Objetos

Java Clases y objetos 21

Declaración de métodos

Sintaxis

// calcula la superficie y la devuelve como un número enteroint calcularSuperficie(){

int area;area = ancho * alto;return area;

}// muestra los valores pero no devuelve nada void mostrarValores(){

System.out.println( "x = " + x + " y = " + y );System.out.println ( "ancho = " + ancho + " alto

= " + alto );}

// calcula la superficie y la devuelve como un número enteroint calcularSuperficie(){

int area;area = ancho * alto;return area;

}// muestra los valores pero no devuelve nada void mostrarValores(){

System.out.println( "x = " + x + " y = " + y );System.out.println ( "ancho = " + ancho + " alto

= " + alto );}

Java Clases y objetos 22

Llamada a los métodos

� La invocación a los métodos desde una instancia se hace mediante el operador de acceso ( . )

referenciaObjeto.nombreMetodo(listaArgumentos);

Page 12: Tema 4 Clases y Objetos

Java Clases y objetos 23

Llamada a los métodospublic class Rectangulo {

int x; ………..int calcularSuperficie(){ .……... }void mostrarValores(){………….}public static void main(String args[ ]) {

Rectangulo rect;rect = new Rectangulo();rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3;int area = rect.calcularSuperficie();rect.mostrarValores();System.out.println( "Superficie: " + area );System.out.println( "x = " + rect.x + ” y = " +

rect.y );System.out.println( "ancho = " + rect.ancho + ”

alto = " + rect.alto ); }}

public class Rectangulo { int x; ………..int calcularSuperficie(){ .……... }void mostrarValores(){………….}public static void main(String args[ ]) {

Rectangulo rect;rect = new Rectangulo();rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3;int area = rect.calcularSuperficie();rect.mostrarValores();System.out.println( "Superficie: " + area );System.out.println( "x = " + rect.x + ” y = " +

rect.y );System.out.println( "ancho = " + rect.ancho + ”

alto = " + rect.alto ); }}

Java Clases y objetos 24

Ejercicio 1Crear clase RectanguloAñadir datos, x, y, ancho, alto de tipo intAñadir métodos dameArea() e imprime()Instanciar un objeto y que se imprima

Page 13: Tema 4 Clases y Objetos

Java Clases y objetos 25

Parámetros

El lenguaje Java sólo pasa los argumentos de tipos básicos por valor.Cuando se pasa un objeto instanciado como argumento a un método, el valor del argumento es el puntero al objeto.Los contenidos del objeto se pueden cambiar dentro del método al que se ha llamado (los objetos se pasan por referencia), pero el puntero no se puede cambiar.

Java Clases y objetos 26

Ocultación de datos

cont : int

quita()cima()

esVacio()

métodos públicos

métodos privados

rep : int array

pon()

Page 14: Tema 4 Clases y Objetos

Java Clases y objetos 27

Ocultación de datos

La palabra reservada private permite una accesibilidad total desde cualquier método de la clase, pero no desde fuera de esta.

Java Clases y objetos 28

Ocultación de datosComo los datos son inaccesibles, la única

manera de leer o escribirlos es a través de los métodos de la clase. Esto proporciona consistencia y calidad.

Page 15: Tema 4 Clases y Objetos

Java Clases y objetos 29

Ocultación de datos

Regla: definir datos privados y métodos accesores y modificadores públicos

Java Clases y objetos 30

Encapsulación

Ocultar los detalles de implementación de la clase.

Fuerza al usuario a utilizar una interfaz para acceder a los datos.

Hace que el código sea más fácil de mantener.

Page 16: Tema 4 Clases y Objetos

Java Clases y objetos 31

Ejercicio 1Datos privadosCrear métodos accesores y mutadores públicosAncho y alto no deben ser negativos

Java Clases y objetos 32

Ejercicio 1

Page 17: Tema 4 Clases y Objetos

Java Clases y objetos 33

Ejercicio 1Comprobar que desde otra clase no se ven los

datos y métodos privados

Java Clases y objetos 34

Acceso a clases

public privatepackageprotected

Al menos una clase o interface de una unidad de compilación (package) debe ser public

Al menos una clase o interface de una unidad de compilación (package) debe ser public

Page 18: Tema 4 Clases y Objetos

Java Clases y objetos 35

Sobrecarga de métodos

Se puede utilizar:

public void print(int i)public void print(float i)public void print(String i)

La lista de argumentos tiene que ser diferente.El tipo que devuelve puede ser diferente.

Java Clases y objetos 36

Constructores

� Método que inicializa el objeto en su creación� Se llama automáticamente cuando se crea un

objeto� Su nombre es igual que el de la clase y no tiene

tipo de retorno� Java proporciona un constructor sin parámetros

por defecto que deja de estar disponible cuando se añade algún constructor

Page 19: Tema 4 Clases y Objetos

Java Clases y objetos 37

Constructorespublic class Rectangulo{

int x;….….…..

// constructor public Rectangulo(int x1, int y1, int

w, int h){x=x1;y=y1;ancho=w;alto=h; }

….…..…..

public class Rectangulo{int x;….….…..

// constructor public Rectangulo(int x1, int y1, int

w, int h){x=x1;y=y1;ancho=w;alto=h; }

….…..…..

Java Clases y objetos 38

Constructores

public static void main(String args[ ]) {Rectangulo rect;rect = new Rectangulo(5, 7, 4, 3);int area=rect.calcularSuperficie();rect.mostrarValores();System.out.println( "Superficie: "

+ area );………….

}}

public static void main(String args[ ]) {Rectangulo rect;rect = new Rectangulo(5, 7, 4, 3);int area=rect.calcularSuperficie();rect.mostrarValores();System.out.println( "Superficie: "

+ area );………….

}}

Page 20: Tema 4 Clases y Objetos

Java Clases y objetos 39

ConstructoresPueden sobrecargarse� Una clase puede tener más de un constructor

� Si no se declara ninguno se hereda el de la superclase (o el de Object)

� Se puede crear un objeto con distintos tipos de parámetros

Pueden llamar al constructor del padre� super(argumentos);

� Debe ser la primera instrucción del constructor

o a otros constructores de la misma clase� this(argumentosPorDefecto);

Java Clases y objetos 40

Constructorespublic class Empleado {

private String nombre;

private int salario;

public Empleado(String n, int s){

nombre = n;

salario = s; }

public Empleado(String n){

this (n,0); }

public Empleado( ){

this ("Desconocido"); }

}

Page 21: Tema 4 Clases y Objetos

Java Clases y objetos 41

Referencia a objeto this

Referencia especial que utilizada dentro de un método de cualquier clase se refiere a la instancia actual

� Permite parámetros con igual nombre que atributos

� Posibilita la llamada a otros constructores

Java Clases y objetos 42

Referencia a objeto thisclass Rectangulo{

int x;….….…..int ancho;int alto;

// constructor Rectangulo(int x1, int y1, int w, int h){

x=x1; y=y1; ancho=w; alto=h; }// otro constructor polimorfico

Rectangulo(int ancho, int alto){x=0; y=0; this.ancho= ancho;this.alto= alto; }

….…..…..

class Rectangulo{int x;….….…..int ancho;int alto;

// constructor Rectangulo(int x1, int y1, int w, int h){

x=x1; y=y1; ancho=w; alto=h; }// otro constructor polimorfico

Rectangulo(int ancho, int alto){x=0; y=0; this.ancho= ancho;this.alto= alto; }

….…..…..

Page 22: Tema 4 Clases y Objetos

Java Clases y objetos 43

Referencia a objeto thispublic static void main(String args[ ]) {

Rectangulo rect;rect = new Rectangulo(5, 7, 4, 3);rect.imprime();Rectangulo nuevo;nuevo = new Rectangulo(6, 9);nuevo.imprime();

…………. }

}

public static void main(String args[ ]) {Rectangulo rect;rect = new Rectangulo(5, 7, 4, 3);rect.imprime();Rectangulo nuevo;nuevo = new Rectangulo(6, 9);nuevo.imprime();

…………. }

}

Java Clases y objetos 44

Ejercicio 1Crear varios constructoresInstanciar un rectángulo usando un constructor no por defecto

Page 23: Tema 4 Clases y Objetos

Java Clases y objetos 45

El constructor por defecto

Existe para cualquier clasePermite crear una instancia de un objeto

con el método new Xxx().

La definición de un constructor invalida al constructor por defecto.

Java Clases y objetos 46

Ejercicio 1

Page 24: Tema 4 Clases y Objetos

Java Clases y objetos 47

La palabra clase final

Si se aplica esta palabra a una clase, esa clase no puede tener subclases.

Por ejemplo, la clase java.lang.String, es una clase final.

Java Clases y objetos 48

La palabra clase finalLos métodos marcados con esta

palabra no se pueden sobreescribir.

Los métodos marcados como estáticos o privados son finales automáticamente.

Si una variable se marca con la palabra reservada final , se convierte en una constante . Si se intenta cambiar el valor de cualquier variable final,se produce un error.

Page 25: Tema 4 Clases y Objetos

Java Clases y objetos 49

Variables (static) de la clase

Pertenece a todas las instancias de la clase.

Puede estar como pública o como privada.

Si está marcada como pública, se puede acceder desde fuera de la clase, sin necesidad de una instancia de la clase.

Java Clases y objetos 50

Variables (static) de la clase

public class Count {

private int serialNumber;

private static int counter = 0;

public Count () {

counter++;

serialNumber = counter;

}

}

Se le suele llamar variable clase.

Page 26: Tema 4 Clases y Objetos

Java Clases y objetos 51

Variables (static) de la clase

Desde fuera de la clase se puede acceder a una variable static si no se marca como private (que es lo habitual).

Las variables de tipo static son, en algunos aspectos, parecidas a las variables globales de algunos lenguajes.

Las instancias de la clase comparten la variable static

Java Clases y objetos 52

Métodos (static) de la clase

Un método static se puede llamar sin necesidad de una instancia de la clase a la que pertenecen.

Con los métodos estáticos no se puede utilizar el puntero this, ya que no se necesitan instancias.

Page 27: Tema 4 Clases y Objetos

Java Clases y objetos 53

Métodos (static) de la clasepublic class GeneralFunction {

public static int add(int x, int y) {return x + y; }

}public class UseGeneral {

public void método () {int a = 9;int b = 10;int c = GeneralFunction.add(a, b);System.out.println ("add devuelve: "

+ c"; }}

Java Clases y objetos 54

Métodos (static) de la clase

Los métodos estáticos, sólo pueden acceder a sus propios argumentos y a las variables estáticas.

El método main() es estático, porque la aplicación tiene que acceder a él para ejecutarse, antes de que realice cualquier instancia.

Los métodos estáticos no se pueden sobreescribir

Page 28: Tema 4 Clases y Objetos

Java Clases y objetos 55

Ejercicio 1Añadir entero estático para llevar un

contador de Rectángulos instanciados

Java Clases y objetos 56

JavadocJavadoc.exe, incluido en el JDK, genera

documentos html con la documentación de una clase.

Podemos describir datos y métodos: /** ...*/La documentación de los packages de clases e

interfaces estándar están hechas con javadoc, se pueden descargar de internet o verlas directamente en internet con un navegador

http://download.oracle.com/javase/7/docs/api/

Page 29: Tema 4 Clases y Objetos

Java Clases y objetos 57

Ejercicio JavadocComentar los métodos públicos /**...*/

Java Clases y objetos 58

Ejercicio JavadocGenerar la documentación de la clase

Rectángulo con javadoc

Page 30: Tema 4 Clases y Objetos

Java Clases y objetos 59

Ejercicio JavadocSe debe indicar dónde se encuentra javadoc.exe

del JDK y la visibilidad de lo que se quiere documentar

Java Clases y objetos 60

Ejercicio JavadocAbrir Rectangulo.html generado en un

navegador (como internet explorer)

Page 31: Tema 4 Clases y Objetos

Java Clases y objetos 61

Ficheros .jarLos Ficheros con extensión .jar son ficheros

comprimidos (se abren con winzip, winrar..) de bytecode de clases (ficheros .class).

Se pueden añadir a nuestros proyectos para utilizar las clases.

Existen millones de .jars en internet, que se pueden utilizar y ejecutar.

Si alguna clase tiene método main, el .jar se puede crear como ejecutable.

Para ejecutarlo, se necesita el JRE (incluido en el JDK)

Java Clases y objetos 62

Ejercicio .jarCrear un .jar ejecutable de la clase

Rectangulo

Page 32: Tema 4 Clases y Objetos

Java Clases y objetos 63

Ejercicio .jarDeterminar clases y destino del .jar

Java Clases y objetos 64

Ejercicio .jarDeterminar clase ejecutable como

aplicación (debe tener método main)

Page 33: Tema 4 Clases y Objetos

Java Clases y objetos 65

Ejecutar .jarSi el ejecutable del .jar es de clases gráficas, se

abre con doble clickSi es de consola, se ejecuta con la opción –jar

del intérprete java

El .jar tambien se puede añadir a un proyecto como jar externo y utilizarlo para , instanciarobjetos, añadirlos como dato, heredar, etc.

Java Clases y objetos 66

DeprecationEl término "deprecation" se utiliza para indicar que métodos y constructores de clases están obsoletos.Tanto métodos como constructores obsoletos son reemplazados por métodos, que sigue una conversión de nombres estandarizada.Al migrar código entre diferentes versiones de JDK, debemos compilarlo con el flag -deprecation:

javac -deprecation MiFichero.java

Page 34: Tema 4 Clases y Objetos

Java Clases y objetos 67

La máquina virtual de JavaSTATIC ( variables de clase)

Monticulo (HEAP) (instance variables)

Pila (STACK) (local variables)

Java Exam Question

ExamInstance

QuestionInstance

main()

e

q

setAnswer()

aQuestion

Java Clases y objetos 68

La memoria reservada que no se va a utilizar más, se tiene que liberar.En otros lenguajes (como C++, PASCAL), la liberación de memoria es responsabilidad del programador.El lenguaje Java proporciona un thread, que rastrea las operaciones de reserva de memoria.El Garbage Collector:Verifica y libera memoria que no se necesita.Se ejecuta automáticamente.

El recolector de basuras

Page 35: Tema 4 Clases y Objetos

Java Clases y objetos 69

Recolección automática de memoria

rect

otroRect

Rectangulo rect = new Rectangulo();Rectangulo otroRect =new Rectangulo();// se pierde la referencia al primer rectángulootroRect = rect;// este primer rectángulo pasa a ser candidato a recolección automática

Rectangulo rect = new Rectangulo();Rectangulo otroRect =new Rectangulo();// se pierde la referencia al primer rectángulootroRect = rect;// este primer rectángulo pasa a ser candidato a recolección automática

alto

x

y

ancho

alto

x

y

ancho

rect

otroRect

alto

x

y

ancho

alto

x

y

ancho

Memoria que será recuperada

por el recolector automático

Java Clases y objetos 70

Métodos finalizadoresJava tiene recolector de basura� Un objeto se elimina cuando se deja de hacer

referencia a él� No hay que eliminar los objetos explícitamente

Al destruir un objeto se invoca el método finalize� Para hacer limpieza de recursos no Java (recursos

externos)� Por ejemplo: cerrar conexiones, cerrar ficheros,

registrar algún tipo de resultado, etc.� Al acabar un programa, se ejecuta finalize para

todos los objetos

Page 36: Tema 4 Clases y Objetos

Java Clases y objetos 71

protected void finalize() throws Throwable {

super.finalize(); // conviene ponerlo siempre

if ( archivo != null ) // si el archivo no se ha cerrado{ archivo.close(); archivo = null; }

}

protected void finalize() throws Throwable {

super.finalize(); // conviene ponerlo siempre

if ( archivo != null ) // si el archivo no se ha cerrado{ archivo.close(); archivo = null; }

}

Métodos finalizadores

Java Clases y objetos 72

Ejercicio 2: clase FracciónDefine la clase Fracción para tratar con números racionales de la forma a/b,

donde a y b son enteros, b ≠0. La fracción debe mantenerse siempre en forma reducidaAdemás del constructor, la clase debe incluir los siguientes métodospúblicos:a. void imprimeFraccion(), que imprime un número racional en su forma

fraccionaria a/bb. double toReal(), que calcula el número real representado por la fracción c. void suma(Fraccion s), que calcula la suma de dos racionales y deja elresultado en la fracción que recibe el mensajee. boolean equals(Fraccion s), que averigua si dos fracciones son igualesf. boolean menor(Fraccion s), que averigua si s es menor que la fracción que

recibe el mensaje.c. void suma(Fraccion s), que calcula la suma de dos racionales y deja elresultado en la fracción que recibe el mensaje

Page 37: Tema 4 Clases y Objetos

Java Clases y objetos 73

Ejercicio 2: simplificar Fracción

Java Clases y objetos 74

Ejercicio 2: constructores Fracción

Page 38: Tema 4 Clases y Objetos

Java Clases y objetos 75

Ejercicio: operaciones con Fracción

Java Clases y objetos 76

Ejercicio 3: Datos no básicosDefine la clase Punto para manejar puntos con coordenadas

enteras. Define constructoras para esta clase, y métodos de acceso y mutación.

Define la clase Rect para manejar rectángulos. Un rectángulo viene dado por las coordenadas enteras de los vértices superior izquierdo e inferior derecho.

Define las siguientes constructoras y métodos para esta clase:a. Constructora que recibe como parámetros las coordenadas de los

dosvértices que delimitan el rectángulob. Constructora que recibe el ancho y el alto del rectángulo, y construye

un rectángulo con el vértice superior izquierdo en el punto (0, 0)c. void mueve(int deltaX, int deltaY), que mueve un rectángulo unadistancia deltaX horizontalmente y otra distancia deltaY verticalmented. boolean estaDentro(Punto p), que averigua si p está dentro delrectángulo que recibe el mensaje

Page 39: Tema 4 Clases y Objetos

Java Clases y objetos 77

Ejercicio 3: clase Punto

Java Clases y objetos 78

Ejercicio 3: clase Rect