programaciÓn orientada a objetos en java
DESCRIPTION
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA. Dr. René Arnulfo García Hernández [email protected]. Contenido. [Ejemplos de applets ] Elementos privados, públicos y protegidos Constructores Destructores Try catch Herencia [Arreglos, Matrices y Cadenas]. Ejemplo de applets. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/2.jpg)
Contenido
• [Ejemplos de applets]• Elementos privados, públicos y protegidos • Constructores• Destructores• Try catch• Herencia• [Arreglos, Matrices y Cadenas]
![Page 3: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/3.jpg)
Ejemplo de applets
• Graficas y simulación– http://jmol.sourceforge.net/
• Expresiones regulares– http://myregexp.com/
• Botones y paneles– http://www.chuidiang.com/java/codigo_descarga
ble/appletpaneles.php
![Page 4: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/4.jpg)
Elementos privados, públicos y protegidos
private, protected, package y public. El acceso por defecto es package.• public: puede ser usada por cualquier clase.• protected: puede ser usada por:
funciones miembros de la clase, funciones miembros de las subclases.funciones miembros de las clases del propio paquete.
• package: puede ser utilizada por todas las clases del paquete.
• private: sólo puede ser usado por las funciones miembros de la clase.
![Page 5: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/5.jpg)
Elementos privados, públicos y protegidos
• Cuando no se especifican permisos de acceso (public, private o protected) se supone la opción por defecto, que es package.
• Si no se ha definido ningún paquete, se utiliza el package por defecto que es el directorio donde están definidas las clases.
• Es preciso especificar la visibilidad de cada miembro ya sea atributo o método de forma independiente.
![Page 6: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/6.jpg)
Elementos privados, públicos y protegidos
Visibilidad
Acceso desde:
Propia clase subclases paquete Todas las clases
private X No No No
protected X según X No
public X X X X
por defecto X No X No
Visibilidad
![Page 7: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/7.jpg)
Constructores - Ejemplopublic class TPunto {Private: int x; //Declaracion de una variable x int y; //Declarqcion de una variable yPublic: void Inicializar (int xcor,int ycor) { x=xcor; y=ycor; }//Fin Inicilizar
void TrasladarX(int xcor) { x=xcor; }//FinTrasLadarX
void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin Imprimir
}
public class Main {
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here System.out.println("Hola Mundo");
TPunto p1=new TPunto(); TPunto p2=new TPunto(); p1.x=89; p1.y=-59; //¿Sería correcto? p1.Inicializar(3, 2); p1.Imprimir(); p1.TrasladarX(10); p1.Imprimir();
p2.Inicializar(15, 6); p2.Imprimir();
}}
![Page 8: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/8.jpg)
Métodos Constructores
Es un tipo especial de método utilizado cuando se crean objetos o instancias de una clase.
Caracteríticas:
• Su nombre coincide con el de la clase.
• No tiene valor de retorno (ni void)
• Una clase puede tener varios constructores (ejemplo típico de sobrecarga de funciones), pero la lista de parámetros tiene que variar.
• Los constructores deben diferir en tipo y/o cantidad de parámetro.
![Page 9: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/9.jpg)
Constructores - características
• Si la clase tiene un constructor, todos los objetos de la clase deben ser inicializados invocándolo.
• Si el constructor tiene parámetros al invocarlo hay que suministrarlos.
• De no definirse un constructor para la clase, el compilador genera un constructor por defecto.
• El constructor por defecto, no tiene parámetros e inicializa cada atributo con el valor nulo por defecto.
• Si un constructor no tiene parámetros se considera el constructor por defecto.
![Page 10: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/10.jpg)
Constructores - Ejemplopublic class TPunto {
int x; //Declaracion de una variable x int y; //Declarqcion de una variable y
void Inicializar (int xcor,int ycor) { x=xcor; y=ycor; }//Fin Inicilizar
void TrasladarX(int xcor) { x=xcor; }//FinTrasLadarX
void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin Imprimir
}
public class Main {
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here System.out.println("Hola Mundo");
TPunto p1=new TPunto(); TPunto p2=new TPunto(); p1.Imprimir(); // ¿Qúe va a imprimir? p1.Inicializar(3, 2); p1.Imprimir(); p1.TrasladarX(10); p1.Imprimir();
p2.Inicializar(15, 6); p2.Imprimir();
}}
![Page 11: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/11.jpg)
Constructores - Ejemplopublic class TPunto {
int x; //Declaracion de una variable x int y; //Declarqcion de una variable y
TPunto ( void ) { // constructor sin paso de parámetros x=0; y=0; } TPunto (int xcor,int ycor) { // constructor con paso de parámetros x=xcor; y=ycor; } void Inicializar (int xcor,int ycor) { x=xcor; y=ycor; }//Fin Inicilizar void TrasladarX(int xcor) { x=xcor; }//FinTrasLadarX void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin Imprimir
}
public class Main {
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here System.out.println("Hola Mundo");
TPunto p1=new TPunto(); TPunto p2=new TPunto(2,7); p1.Imprimir(); // ¿Qúe va a imprimir? p1.Inicializar(3, 2); p1.Imprimir(); p1.TrasladarX(10); p1.Imprimir(); p2.Imprimir(); p2.Inicializar(15, 6); p2.Imprimir();
}}
![Page 12: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/12.jpg)
Destructores
• Un destructor es un método que se invoca automáticamente cuando el objeto se destruye. Java no posee destructores, porque tiene recolección de basuras. – C++ posee destructores
![Page 13: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/13.jpg)
Try-catch-finally
• Se utilizan para probar un conjunto de sentencias susceptibles a errores, en caso de ocurrir se ejecutan las sentencias de catch y luego las sentencias de finally
![Page 14: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/14.jpg)
Ejemplo de try-catch-finallyfloat x;try { x=23/0;}catch ( exception e) { system.out.println( “ ERROR: valor indefinido”);} finally;
![Page 15: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/15.jpg)
Arreglos
• Un arreglo es una cadena de datos u objetos del mismo tipo
• Una matriz es un arreglo de arreglos. Un arreglo de 3 dimensiones es un arreglo de arreglos que contiene arreglos
• En java se declara como• tipo_dato []…[] nombre_de_la_variable
![Page 16: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/16.jpg)
Representación de un arreglo
• int x=0;• int x[4];• int x[4]={4,56,3,23};• int x[4][3];
• int x[4][3][2];
0
0 0 0 0
4 56 3 23
0
![Page 17: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/17.jpg)
HerenciaJava permite el empleo de la herencia , característica muy potente que permite definir una clase tomando como base a otra clase ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar. En java, como ya vimos la herencia se especifica agregando la cláusula extends después del nombre de la clase. En la cláusula extends indicaremos el nombre de la clase base de la cuál queremos heredar. Al heredar de una clase base, heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.
![Page 18: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/18.jpg)
Ejemplo de herencia
public class TTaxista extends TPersona { private int nLicencia;
public void setNLicencia (int num)
{ nLicencia = num; } public int getLicencia() { return nLicencia; }
}
Construyamos la clase TTaxista.java con el siguiente código:
public class TPersona { private String Nombre; private String CURP;
TPersona (String Name, String RN) { Nombre = Name; CURP = RNP; } }
![Page 19: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/19.jpg)
Herencia
TPuntoX,Y,
TPunto()Iniciar()Imprimir()Trasladar()
TObjeto
TSegmentoTPunto Inicio,TPunto Final,
TSegmento()Iniciar()Imprimir()Trasladar()Pendiente()
TPolígono
TPolígono()Trasladar()Perímetro()Area()Rotar()
Un polígono es una figura geométrica formada por segmentos consecutivos no alineados, llamados lados.
![Page 20: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/20.jpg)
Herencia
TPuntoX,Y,TPunto()Iniciar()Imprimir()Trasladar()
TObjeto
TSegmentoTPunto Inicio,TPunto Final,TSegmento()Iniciar()Imprimir()Trasladar()Pendiente()
TElipseTPunto VérticesTPolígono()Trasladar()Perímetro()Area()Rotar()
TCuadrilateroTPunto Inicio,TPunto Final,TSegmento()Iniciar()Imprimir()Trasladar()Pendiente()
TPolígonoTPunto VérticesTPolígono()Trasladar()Perímetro()Area()Rotar()
TTrianguloTPunto VérticesTPolígono()Trasladar()Perímetro()Area()Rotar()
![Page 21: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/21.jpg)
Aplicaciones
![Page 22: PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA](https://reader035.vdocuments.co/reader035/viewer/2022062321/56814037550346895daba2ae/html5/thumbnails/22.jpg)
Variables Miembros
Funciones miembros
FloristaNombreSalarioEdadVender floresEnviar flores a otra ciudad
Ejemplos:
Variables Miembros
Funciones miembros
BombilloConsumoEnceder ApagarAumentar BrilloDisminuir brillo
Notación UML para representar una clase