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
• 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:
Visibilidad
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
Constructores - Ejemplo
public class TPunto {
Private:
int x; //Declaracion de una variable x
int y; //Declarqcion de una variable y
Public:
void Inicializar (int xcor,int ycor)
{
x=xcor;
y=ycor;
}//Fin Inicilizar
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();
void TrasladarX(int xcor)
{
x=xcor;
}//FinTrasLadarX
void Imprimir(){
System.out.println("Las coordenadas son: ("+x+","+y+")");
}//Fin 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 - Ejemplo
public class TPunto {
public class Main {
int x; //Declaracion de una variable x
int y; //Declarqcion de una variable y
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hola Mundo");
void Inicializar (int xcor,int ycor)
{
x=xcor;
y=ycor;
}//Fin Inicilizar
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();
void TrasladarX(int xcor)
{
x=xcor;
}//FinTrasLadarX
void Imprimir(){
System.out.println("Las coordenadas son: ("+x+","+y+")");
}//Fin Imprimir
p2.Inicializar(15, 6);
p2.Imprimir();
}
}
}
Constructores - Ejemplo
public class TPunto {
int x; //Declaracion de una variable x
int y; //Declarqcion de una variable y
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 ( 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
}
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-finally
float 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
Herencia
Java 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
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;
}
public class TTaxista extends TPersona {
private int nLicencia;
public void setNLicencia (int num)
{
nLicencia = num;
}
public int getLicencia()
{
return nLicencia;
}
}
}
Herencia
TObjeto
TPunto
TSegmento
X,
Y,
TPunto Inicio,
TPunto Final,
TPunto()
Iniciar()
Imprimir()
Trasladar()
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
TObjeto
TPunto
TSegmento
TPolígono
X,
Y,
TPunto()
Iniciar()
Imprimir()
Trasladar()
TPunto Inicio,
TPunto Final,
TSegmento()
Iniciar()
Imprimir()
Trasladar()
Pendiente()
TPunto Vértices
TPolígono()
Trasladar()
Perímetro()
Area()
Rotar()
TTriangulo
TCuadrilatero
TPunto Vértices
TPolígono()
Trasladar()
Perímetro()
Area()
Rotar()
TPunto Inicio,
TPunto Final,
TSegmento()
Iniciar()
Imprimir()
Trasladar()
Pendiente()
TElipse
TPunto Vértices
TPolígono()
Trasladar()
Perímetro()
Area()
Rotar()
Aplicaciones
Ejemplos:
Notación UML para representar
una clase
Florista
Variables Miembros
Funciones miembros
Nombre
Salario
Edad
Vender flores
Enviar flores a otra ciudad
Bombillo
Variables Miembros
Funciones miembros
Consumo
Enceder
Apagar
Aumentar Brillo
Disminuir brillo
Descargar

PROGRAMCION ORIENTADA A OBJETOS EN JAVA.parte2