La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza."— Transcripción de la presentación:

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

2 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

3 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

4 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

5 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

6 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 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

7 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

8 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.

9 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

10 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

11 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.11 public class Punto { //Atributos private double x=0.0; private double y; //Constructores public Punto() { x=2.2; y=0.0; } public Punto(double param1,double param2) { x=param1; y=param2; } //Getters public double getX() { return x; } public double getY() { return y; } //Resto de mertodos public double calcularDistanciaDesde(Punto param) { double cateto1=x-param.getX(); double cateto2=y-param.getY(); double hipotenusa=Math.sqrt(cateto1*catet o1+cateto2*cateto2); return hipotenusa; } Clase punto

12 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.12 public class Circulo { //Atributos private Punto centro=null; private double radio=0.0; //Constructores public 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; } //Getters public Punto getCentro() { return centro; } public double getRadio() { return radio; } //Resto de metodos public 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

13 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.13 public class Triangulo { //Atributos private Punto p1,p2; private Punto p3=null; //Constructores public 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); } //Getters public Punto getP1() { return p1; } public Punto getP2() { return p2; } public Punto getP3() { return p3; } //Resto de metodos public 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

14 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

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

16 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.16 Bibliografía: Java2. tutorial de javahispano (http://javahispano.org)http://javahispano.org Progamación en Java (http://javahispano.org)http://javahispano.org - teoría - practica Piensa en Java


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

Presentaciones similares


Anuncios Google