Programación Orientada A Objetos en Java Elogos
Programación Orientada A Objetos en Java Elogos
_________________________________________________________________________________________________________
Programación
orientada a objetos
en java:
LAS CLASES
1
LENGUAJE JAVA
_________________________________________________________________________________________________________
CLASES OBJETOS
Nombre de la clase Nombre nombre del objeto
nombre
Atributos (Datos Miembro) valores de los atributos del objeto
Características de la clase nombre memoria o estado
lo que se es o cómo está nombre particular de cada objeto
.....
Nombre
Métodos Todos los objetos de una clase
Lo que puede hacerse
nombre pueden hacer exactamente
con objetos de esa clase: nombre lo mismo
Posible comportamiento. nombre
.....
2
LENGUAJE JAVA
_________________________________________________________________________________________________________
// Métodos de la clase
public String getNombre( ) {
return nombre;
}
public void setNombre(String n) {
nombre=n;
}
}
Cuando un método devuelve un valor en su definición hay que indicar el tipo del valor
que devuelve, si no devuelve nada, se indica con la palabra clave void.
Para crear un objeto a partir de una clase, se hace con el operador new. Los objetos
se almacenan en variables. Los objetos se tratan como si fueran datos normales, es
decir, se guardan en variables.
Cuando creamos una clase debemos de abstraernos del uso particular que tendrá cada
objeto en los programas. Tan solo hay que pensar en cómo conseguir la funcionalidad
que pretendemos dar a la clase con sus datos miembro y métodos, sin pensar nunca en
el programa que va a dar uso a esos objetos.
3
LENGUAJE JAVA
_________________________________________________________________________________________________________
Ahora para probar si mi clase funciona y esta correctamente escrita, lo primero que
hacemos es compilar. Una vez depurada y sin errores realizamos un pequeño programa
de prueba en el método main( ).
4
LENGUAJE JAVA
_________________________________________________________________________________________________________
Hacer una clase : ClsCalculadora.java que será capaz de sumar,..., DOS numeros.
Hacer una clase ClsOperacioenes.java que desde su método MAIN ejecute los
métodos de la clase ClsCalculadora.
Realizar un programa que genere números aleatorios dentro de un rango. El usuario nos
dará la cantidad de números a generar así como el número más pequeño y el número
más grande a generar.
Métodos:
5
LENGUAJE JAVA
_________________________________________________________________________________________________________
6
LENGUAJE JAVA
_________________________________________________________________________________________________________
7
LENGUAJE JAVA
_________________________________________________________________________________________________________
8
LENGUAJE JAVA
_________________________________________________________________________________________________________
9
LENGUAJE JAVA
_________________________________________________________________________________________________________
10
LENGUAJE JAVA
_________________________________________________________________________________________________________
11
LENGUAJE JAVA
_________________________________________________________________________________________________________
Crear una clase llamada “Pila” que contenga cadenas de caracteres (String):
Crear un MENU:
12
LENGUAJE JAVA
_________________________________________________________________________________________________________
13
LENGUAJE JAVA
_________________________________________________________________________________________________________
14
LENGUAJE JAVA
_________________________________________________________________________________________________________
15
LENGUAJE JAVA
_________________________________________________________________________________________________________
num = Integer.parseInt(string)
num = Math.random( )
Los métodos estáticos operan directamente con los valores de sus parámetros, no con
los objetos.
Para crear un método estático se hace al definir el método después de la palabra clave
public con el modificador static, antes de indicar el valor que devuelve.
Los métodos estáticos tienen sus limitaciones, por ejemplo, no pueden utilizar los datos
miembro de la clase ya que estos son características internas de los objetos de la
clase y los métodos estáticos no dependen de ningún objeto, salvo que los datos
miembro estén definidos como estáticos.
16
LENGUAJE JAVA
_________________________________________________________________________________________________________
class Prueba {
public static double cuadrado (int num) {
return num*num;
}
}
.............
.............
Prueba.cuadrado(20);
Un dato miembro estático no tiene mucho sentido excepto si ese dato miembro
queremos que sea una constante. Por Ej. el valor de pi(π). Ese valor lo pueden utilizar
cualquier método estático. Es útil si queremos definir una constante que será utilizada
por varios métodos estáticos diferentes.
class prueba {
private static int iva = 16;
public static float calculo( )
{ …… }
}
En el ejemplo de arriba, por ser static “iva” todos los objeto que usen esta clase,
compartiran dicha variable (es como una constante).
Si no fuese static cada objeto que use esta clase trabajará con su propia copia de la
variable “iva”.
Sí en una clase tiene que llamar a un método de la propia clase es suficiente con poner
el nombre del método:
class aleatorio {
public int total( ) {
…..........................…
}
public void generar( ) { ó
for (int i=0; i < total( ) ; i++) for (int i=0; i< this.total( ); i++)
…..........................…
}
}
17
LENGUAJE JAVA
_________________________________________________________________________________________________________
Un método estático no puede llamar a ningún método de su propia clase a no ser que
ese método sea estático, ya que si el método no es estático es porque está asociado al
propio objeto.
Constantes
Una constante es una variable que tiene un valor fijo y se crea con la palabra “final”
delante del tipo de dato. La palabra final delante del tipo de dato en la definición de
una variable la convierte en una constante por la que a partir de entonces no se le
puede cambiar su valor.
class prueba
{
private final float iva = 16.0;
iva =17; Error⇒ No se puede volver a modificar su valor por ser una constante.
}
Las constantes pueden ser públicas o privadas. Si una constante es pública lo normal es
que sea estática ya que no se encuentra asociada a ningún objeto:
18
LENGUAJE JAVA
_________________________________________________________________________________________________________
LAS CLASES:
ESTRUCTURA DE UNA CLASE
Ámbito Modifica- objeto Nombre Si Hereda de Si implementa
Visibilidad dores CLASE CLASE otra Clase un Interface
El control de acceso o el ambito de una clase determina la relaccion que tiene esa clase
con otras clases de otros paquetes. El cuerpo de la clase consta en general de una
serie de modificadores de acceso( public, protected y private), atributos, mensajes y
metodos.
c) nada(asume package): Una clase con nivel de acceso de paquete puede ser
utilizada solo por las clases de su paquete (no estará disponible para
otros paquetes, ni siquiera para los subpaquetes de ese paquete.
REFERENCIA “ this “
Cada objeto mantiene su propia copia de los atributos, pero no de los métodos de su
clase, de los cuales sólo existe una copia para todos los objetos de esa clase. Esto es,
cada objeto almacena sus propios datos, pero para acceder y operar con ellos, todos
comparten los mismos métodos definidos en su clase.
19
LENGUAJE JAVA
_________________________________________________________________________________________________________
Por lo tanto, para que un método conozca la identidad del objeto particular para el que
ha sido invocado, Java proporciona una referencia denominada this , que referencia al
propio objeto en el que estamos. this hace referencia a la propiedad (dato miembro) o
al método de la clase en la que estamos.
super: Hace referencia a la superclase de la que se ha heredado.
Clases: Modificadores
Un modificador es una palabra clave que modifica el nivel de protección, ya sea de una
clase, de un método o de un dato miembro.
a) abstract: Cuando una clase se diseña para ser generica es casi seguro qe no
necesitaremos crear objetos de ella; la razón de su existencia es la de
proporcionar los atributos y métodos que serán compartidos por todas sus
subclases. Siempre habrá alguna de sus funciones miembro que no tenga
código. La subclase perteneciente a esa clase abstracta tendra que
implementar el código. Una clase será abstract cuando algunos de sus
metodos sea abstract. Un metodo abstract lo reconocemos porque va
definido por el modificador abstract, no lleva código y termina en “;” .
b) final: Cuando una clase se declara final estaremos impidiendo que de esa clase se
puedan derivar subclases. No se puede heredar de una clase final. Además
todos sus métodos se convierten automáticamente en final y no se pueden
sobrescribir.
20
LENGUAJE JAVA
_________________________________________________________________________________________________________
FUNCIONES O MÉTODOS:
ESTRUCTURA DE FUNCIONES ó MÉTODOS
Ámbito Modifica- tipo Nombre ( parámetros) {sentencias}
Visibilidad dores retorno MÉTODO que recibe
{
public static sentencias
private final TipoDatoX metodoX (tipo,tipo,...) }
ó nada abstract ó ó
(package) ó void (vacio) ó { vacio}
nada
21
LENGUAJE JAVA
_________________________________________________________________________________________________________
b) final: declararemos una propiedad final cuando queramos que sea una constante,
no se podrá modificar. Esa referencia solo podra utilizarse para
referenciar a ese objeto.
22
LENGUAJE JAVA
_________________________________________________________________________________________________________
protected: (protegido). Solo accesible si se hereda. Solo lo ven las clases que
lo extienden.
RESUMEN:
23
LENGUAJE JAVA
_________________________________________________________________________________________________________
7.2-
programación
orientada a objetos en
java:
CONSTRUCTORES
1
LENGUAJE JAVA
_________________________________________________________________________________________________________
7.2. CONSTRUCTORES
• Concepto de constructor
• Cómo se crea un constructor
• Constructores con parámetros
Un constructor es un método que hay dentro de una clase pero que tiene una
característica especial, que es que se ejecuta automáticamente cuando se crea un
objeto de esa clase.
Los constructores pueden recibir parámetros pero no pueden devolver nunca nada, por
eso no hay que poner ni void, ni int, ni nada. El nombre del constructor tiene que ser
el mismo que el de la clase.
class MiClase
{
String nombre;
public MiClase (String c)
{
nombre = c;
}
}
En java es obligatorio que todas las clases tengan un constructor, si creamos una clase
y no ponemos ningún constructor, java lo crea automáticamente, ahora bien, lo crea sin
parámetros y no hace nada. Esto es lo que se conoce como el constructor por defecto:
2
LENGUAJE JAVA
_________________________________________________________________________________________________________
Por ello, si creamos objetos a partir de la clase “MiClase” definida más arriba debemos
de introducir algún parámetro de tipo String, sino dará error:
3
LENGUAJE JAVA
_________________________________________________________________________________________________________
4
LENGUAJE JAVA
_________________________________________________________________________________________________________
5
LENGUAJE JAVA
_________________________________________________________________________________________________________
6
LENGUAJE JAVA
_________________________________________________________________________________________________________
Continuación:
7
LENGUAJE JAVA
_________________________________________________________________________________________________________
042-ContadorEnApplet
8
LENGUAJE JAVA
_________________________________________________________________________________________________________
9
LENGUAJE JAVA
_________________________________________________________________________________________________________
10
LENGUAJE JAVA
_________________________________________________________________________________________________________
11
LENGUAJE JAVA
_________________________________________________________________________________________________________
Hacer una copia de la clase PILA DE CADENAS y modificarlo para que utilize
CONSTRUCTORES en lugar del Metodo “Inicializa”. Lo demás se puede respetar:
SOLUCION:
12
LENGUAJE JAVA
_________________________________________________________________________________________________________
RESTO DE MÉTODOS:
13
LENGUAJE JAVA
_________________________________________________________________________________________________________
14
LENGUAJE JAVA
_________________________________________________________________________________________________________
• SOBRECARGA DE MÉTODOS
16
LENGUAJE JAVA
_________________________________________________________________________________________________________
Debemos definir los tipos de los datos con mucho cuidado para evitar errores o
resultados imprevisibles.
17
LENGUAJE JAVA
_________________________________________________________________________________________________________
DATOS MIEMBRO:
CONSTRUCTORES:
1º: Un método inicializa cada dato miembro con un valor por defecto.
Triangulo( );
MÉTODOS:
18
LENGUAJE JAVA
_________________________________________________________________________________________________________
19
LENGUAJE JAVA
_________________________________________________________________________________________________________
20
LENGUAJE JAVA
_________________________________________________________________________________________________________
21
LENGUAJE JAVA
_________________________________________________________________________________________________________
22
LENGUAJE JAVA
_________________________________________________________________________________________________________
RESULTADOS
EN PANTALLA
23
LENGUAJE JAVA
_________________________________________________________________________________________________________