230 likes | 379 Views
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA. Dr. René Arnulfo García Hernández renearnulfo@hotmail.com. Contenido. [Ejemplos de applets ] Elementos privados, públicos y protegidos Constructores Destructores Try catch Herencia [Arreglos, Matrices y Cadenas]. Ejemplo de applets.
E N D
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA Dr. René Arnulfo García Hernández renearnulfo@hotmail.com
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_descargable/appletpaneles.php
Elementos privados, públicos y protegidos private, protected, package y public. El acceso por defecto es package. • public:puede ser usadaporcualquierclase. • protected:puede ser usadapor: funcionesmiembros de la clase, funcionesmiembros de lassubclases. funcionesmiembros de lasclases del propiopaquete. • package: puede ser utilizadaportodaslasclases del paquete. • private: sólopuede ser usadoporlasfuncionesmiembros de la clase.
Elementos privados, públicos y protegidos • Cuando no se especificanpermisos de acceso (public, private o protected) se supone la opciónpordefecto, queespackage. • Si no se ha definidoningúnpaquete, se utiliza el package pordefectoquees el directoriodondeestándefinidaslasclases. • Es precisoespecificar la visibilidad de cadamiembroya sea atributo o método de forma independiente.
Elementos privados, públicos y protegidos Visibilidad
Constructores - Ejemplo publicclassMain { /** * @paramargs the command line arguments */ public static void main(String[] args) { // TODO codeapplicationlogichere 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(); } } publicclassTPunto { Private: int x; //Declaracion de una variable x int y; //Declarqcion de una variable y Public: void Inicializar (intxcor,intycor) { x=xcor; y=ycor; }//Fin Inicilizar voidTrasladarX(intxcor) { x=xcor; }//FinTrasLadarX void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin 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(nivoid) • Una clase puede tener varios constructores (ejemplotí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 pordefecto. • El constructor por defecto, no tiene parámetros e inicializa cada atributo con el valor nulo por defecto. • Si un constructor no tieneparámetros se considera el constructor pordefecto.
Constructores - Ejemplo publicclassMain { /** * @paramargs the command line arguments */ public static void main(String[] args) { // TODO codeapplicationlogichere 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(); } } publicclassTPunto { int x; //Declaracion de una variable x int y; //Declarqcion de una variable y void Inicializar (intxcor,intycor) { x=xcor; y=ycor; }//Fin Inicilizar voidTrasladarX(intxcor) { x=xcor; }//FinTrasLadarX void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin Imprimir }
Constructores - Ejemplo publicclassMain { /** * @paramargs the command line arguments */ public static void main(String[] args) { // TODO codeapplicationlogichere 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(); } } publicclassTPunto { 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 (intxcor,intycor) { // constructor con paso de parámetros x=xcor; y=ycor; } void Inicializar (intxcor,intycor) { x=xcor; y=ycor; }//Fin Inicilizar voidTrasladarX(intxcor) { x=xcor; }//FinTrasLadarX void Imprimir(){ System.out.println("Las coordenadas son: ("+x+","+y+")"); }//Fin 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];
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: publicclassTPersona { privateString Nombre; privateString CURP; TPersona(StringName, String RN) { Nombre = Name; CURP = RNP; } } • publicclassTTaxistaextendsTPersona { • privateintnLicencia; • publicvoidsetNLicencia (intnum) • { • nLicencia = num; • } • publicintgetLicencia() • { • returnnLicencia; • } • }
Herencia TObjeto TPunto X, Y, TPunto() Iniciar() Imprimir() Trasladar() TSegmento TPunto 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 TObjeto TPunto X, Y, TPunto() Iniciar() Imprimir() Trasladar() TSegmento TPunto Inicio, TPunto Final, TSegmento() Iniciar() Imprimir() Trasladar() Pendiente() TPolígono TPunto Vértices TPolígono() Trasladar() Perímetro() Area() Rotar() TElipse TPunto Vértices TPolígono() Trasladar() Perímetro() Area() Rotar() TTriangulo TPunto Vértices TPolígono() Trasladar() Perímetro() Area() Rotar() TCuadrilatero TPunto Inicio, TPunto Final, TSegmento() Iniciar() Imprimir() Trasladar() Pendiente()
Notación UML para representar una clase Ejemplos: Florista Nombre Salario Edad Vender flores Enviar flores a otra ciudad Variables Miembros Funciones miembros Bombillo Consumo Enceder Apagar Aumentar Brillo Disminuir brillo Variables Miembros Funciones miembros