PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
description
Transcript of PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
Dr. René Arnulfo García Herná[email protected]
Contenido
• [Ejemplos de applets]• Elementos privados, públicos y protegidos • Constructores• Destructores• Try catch• Herencia• [Arreglos, Matrices y Cadenas]
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
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.
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.
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
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();
}}
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.
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.
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();
}}
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();
}}
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
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
Ejemplo de try-catch-finallyfloat x;try { x=23/0;}catch ( exception e) { system.out.println( “ ERROR: valor indefinido”);} finally;
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
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
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.
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; } }
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.
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()
Aplicaciones
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