Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE
Bienvenidos a Java
Alcance de las variables Los miembros de una clase son globales a dicha clase Las variables locales solo tienen alcance dentro de un método Los parámetros son tratados como variables locales También se puede limitar el alcance a un bloque como en el manejo de excepciones
Manejo de parámetros En java no existe la diferencia entre paso de parámetros por referencia y por valor Todos los tipos primitivos se pasan por valor y los objetos se pasan por referencia Si deseamos manipular los argumentos dentro de un método, debemos encapsularlos en la definición de una nueva clase
Valores de retorno El valor retornado debe coincidir con el especificado en el encabezado del método Pueden devolverse tipos primitivos o referencias a objetos Esto se revisa en tiempo de compilación
Uso de la palabra this La palabra this es una referencia a objetos de la clase que se esta definiendo Se usa cuando los nombres de los parámetros o variables locales son iguales a los de los miembros de dicha clase Su uso es frecuente sobre todo cuando se maneja la herencia También puede usarse para llamar a otro constructor dentro de un constructor
Acceso a los miembros Tipo Clase Paquete Subclase Global private SI NO Sin tipo protected public
Acceso a los miembros (cont) Controlan el nivel de acceso o modificación que pueden tener Afectan a los mecanismos de herencia La API de Java usa este control de acceso para sus bibliotecas (paquetes) de clases Favorece el desarrollo de aplicaciones con buena ingeniería de software
Consejos para controlar el acceso El nivel más restrictivo (private) por lo regular se usa con los miembros de una clase y algunos métodos de utilería Los miembros públicos (public) solo se usan para definir constantes Se debe limitar el numero de miembros protegidos y de paquete Las propiedades de objetos JavaBeans deben declararse protegidos (protected)
Miembros de clase y de instancia Un miembro de clase es compartido por cada instancia de la clase Un miembro de instancia crea un espacio en memoria por cada instancia Los miembros y métodos de clase se crean con el modificador static Los miembros y métodos de instancia se solo pueden accederse con una referencia a una instancia de un objeto
Herencia Es una forma de reutilización de software usada en la programación orientada a objetos Permite crear una estructura jerárquica a partir de la cual se construyen los sistemas Una subclase hereda de su superclase los miembros y los métodos El acceso sin embargo esta controlado
Jerarquía de clases
Herencia simple En java no se permite la herencia múltiple y cada subclase solo puede tener una superclase Para modelar la herencia múltiple, java hace uso de las interfases La herencia se declara en java con la palabra extends public class MyApplet extends JApplet
Ejemplo de herencia
La clase Object Todas las clases heredan directamente o indirectamente de Object Proporciona la funcionalidad básica y métodos comunes La mayoría de dichos métodos deben sobrecargarse para adaptarse a la nueva clase Métodos como equals, hashCode, toString Otros como getClass, notify and wait
Interfases Es la definición de un tipo de dato al igual que una clase La diferencia es que solo define los métodos pero no los implementa La clase que usa la interfaz esta obligada a implementar sus métodos Una clase puede implementar más de una interfase
Sintaxis de una interfaz public interface NombreInterfaz{ miembros; métodos; // los métodos no se implementan solo se define su cabecera }
Uso de la palabra implements Una clase implementa una interfaz haciendo uso de la palabra implements seguida del nombre de la interfaz MouseListener es un ejemplo de una interfaz Debe ir después de la herencia (implements) si esta existe
Ejemplo de interfaz public interface Contador{ public int MAX_INT = 60; public int getValor(); public void avanzar(); }
Ejemplo de clase que la usa public class Reloj implements Contador{ private int segundos; public Reloj(){ segundos = 0;} public void avanzar(){ segundos++; if(segundos > MAX_INT) segundos = 0; } public int getValor(){ return segundos;}
Polimorfismo Es una forma de hacer que el compilador decida cual es el código correcto a cargar en tiempo de ejecución Se implementa por medio de clases y métodos abstractos Un método abstracto no tiene un código definido En una clase abstracta todos sus métodos son abstractos
Polimorfismo (cont) Se usa para definir una clase base de la cual heredarán otras clases con comportamientos en cómun Por ejemplo una clase de gráficos puede tener como clases derivadas a un rectángulo, un circulo y un triángulo Todos necesitan dibujarse pero de diferente manera
Ejercicios Revisar el API de Java para indagar la implementación de sus clases y paquetes Investigar cuales son los métodos de la clase String y sus clases relacionadas Investigar la clase Graphics Investigar la clase Applet y sus derivadas Revisar la página mictlan.utm.mx/~jorge para buscar más apuntes en la semana