22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire...

16
22/11/200 5 E.T.S de Ingenieros de Telecomunicación - UPNA .1 Clases y Objetos Silvia Larrayoz Leire Urriza

Transcript of 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire...

Page 1: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .1

Clases y Objetos

Silvia Larrayoz

Leire Urriza

Page 2: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .2

Clases

• Implementación formato texto *.java y nombre idéntico al nombre de la clase

• Declaración mediante la keyword class + nombre

• Keyword precedido por un modificador de acceso:

• Public • static• Protected • final• Private• Default

Page 3: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .3

• La implementación ira en un bloque contenida en {}Modificador_acceso class nombre_class { }

• La implementación consiste en• Atributos modificador_acceso tipo

nombre[valor_inicial]

• Métodos modificador_acceso tipo_retorno nombre

([tipo parámetro,...])

{ }

• Método especial en Java,constructor

Page 4: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .4

Clases: Constructor

• Sirve para la construcción (instanciación) de objetos (instancias) a partir de esa clase.

• Declaración similar a los métodos

• Si nuestra clase no tiene constructores el compilador añade uno sin parámetros

Page 5: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .5

Clases: Sobrecarga de métodos

• Métodos con el mismo nombre y tipo de retorno pero diferentes parámetros

• Se permite también sobrecargar un método cambiando el tipo de retorno

• Convenciones:• Nombre de clases en mayúscula• Nombre de atributos minúsculas• Nombre de métodos minúsculas , salvo el del

constructor

Page 6: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .6

Objetos

• Es una variable de tipo complejo

• El tipo de un objeto es la clase de la que se ha instanciado

• Sin inicializar su valor por defecto null

• Se inicializa mediante new y se llama al constructor del que instanciaremos

Aunque su declaración es como de tipo primitivo

Aunque su declaración es como de tipo primitivo

Variable primitiva : contiene el dato directamente

Variable compleja:contiene una referencia a memori a donde esta el objeto

Variable primitiva : contiene el dato directamente

Variable compleja:contiene una referencia a memori a donde esta el objeto

Page 7: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .7

Objeto : manejo de objetos

• Trabajar con un objeto: acceder atributos y métodos

• Utilizaremos el operador .(punto)

• Acceso a un método se denomina mensaje

• Objeto.método([parámetro,..])

• Las llamadas a métodos se pueden encadenar

Page 8: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .8

Método main

• Existe un método especial llamado main• public satatic void main(String[] arg)

• Método donde comienza la ejecución en un programa

• Crearemos una clase a parte que solo tenga el método main.

Page 9: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .9

Destructores: Garbage Collector

• Métodos encargados de eliminar los objetos de la memoria

• Garbage Collector: busca y limpia todo objeto de la memoria no utilizados

• No referenciado por ninguna variable:• Se iguala a null• Se iguala a otro objeto• Se termina su ambito

Page 10: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .10

Ejemplo: Clases y Objetos

-Clase Punto -Clase Circulo

-Clase Triangulo -Clase Practica5a

Page 11: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .11

public class Punto {//Atributosprivate double x=0.0;private double y;

//Constructorespublic Punto(){x=2.2;y=0.0;}public Punto(double param1,double

param2){x=param1;y=param2;}

//Getterspublic double getX(){return x;}public double getY(){return y;}//Resto de mertodospublic double

calcularDistanciaDesde(Punto param){double cateto1=x-param.getX();double cateto2=y-param.getY();double

hipotenusa=Math.sqrt(cateto1*cateto1+cateto2*cateto2);

return hipotenusa;}}

Clase punto

Page 12: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .12

public class Circulo {//Atributosprivate Punto centro=null;private double radio=0.0;

//Constructorespublic Circulo(){centro=new Punto();radio=3.1;}public Circulo(Punto param1,double param2){centro=param1;radio=param2;}public Circulo(double param1,double

param2,double param3){centro=new Punto(param1,param2);radio=param3;}

//Getterspublic Punto getCentro(){return centro;}public double getRadio(){return radio;}//Resto de metodospublic double calcularArea(){return Math.PI*radio*radio;}public double calcularPerimetro(){return 2*Math.PI*radio;}public double

calcularDistanciaDesde(Puntoparam){return centro.calcularDistanciaDesde(param);}}

Clase Circulo

Page 13: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .13

public class Triangulo {//Atributosprivate Punto p1,p2;private Punto p3=null;

//Constructorespublic Triangulo(){p1=new Punto();p2=new Punto(1.2,10.7);p3=new Punto(5.5,5.5);}public Triangulo(Punto param1,Punto param2,Punto

param3){p1=param1;p2=param2;p3=param3;}public Triangulo(double x1,double y1,double

x2,double y2,double x3,double y3){p1=new Punto(x1,y1);p2=new Punto(x2,y2);p3=new Punto(x3,y3);}

//Getterspublic Punto getP1(){return p1;}public Punto getP2(){return p2;}public Punto getP3(){return p3;}

//Resto de metodospublic double calcularArea(){double base=p1.calcularDistanciaDesde(p2);double altura=p1.calcularDistanciaDesde(p3);return base*altura/2;}public double calcularPerimetro(){double lado1=p1.calcularDistanciaDesde(p2);double lado2=p2.calcularDistanciaDesde(p3);double lado3=p3.calcularDistanciaDesde(p1);return lado1+lado2+lado3;}public double calcularDistanciaDesde(Punto param){return p1.calcularDistanciaDesde(param);}}

Clase triangulo

Page 14: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .14

public class Practica5a {

public static void main(String[] args) {

Punto a= new Punto();Punto b= new Punto(1.1,42.3);double distancia=a.calcularDistanciaDesde(b);System.out.println("La distancia es:" + distancia);

Circulo c= new Circulo(a,5.0);System.out.println("El area es:" + c.calcularArea());System.out.println("El perimetro es:" + c.calcularPerimetro());System.out.println("La distancia es:" + b.calcularDistanciaDesde(c.getCentro()));

Triangulo t= new Triangulo(a,b,new Punto(7.3,1.9));System.out.println("El area es:" + t.calcularArea());System.out.println("El perimetro es:" + t.calcularPerimetro());System.out.println("La distancia es:" + t.calcularDistanciaDesde(new

Punto(8.0,9.0)));}

Clase Practica 5a

Page 15: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .15

Diagrama de clases de la practica5a

Page 16: 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA .16

Bibliografía:

• Java2.

tutorial de javahispano (http://javahispano.org)

• Progamación en Java (http://javahispano.org)

- teoría

- practica

• Piensa en Java