You are on page 1of 20

M.S.C.

Enrique Martnez Tllez


Unidad 5 y 6
2
Clase
Clase
a) Conjunto de datos (atributos) y funciones (mtodos)
que definen la estructura de los objetos y los
mecanismos para su manipulacin.
b) Atributos y mtodos junto con interfaces y clases
anidadas constituyen los miembros de una clase.
3
Que es una Clase ?
En el software orientado a objetos es posible tener
muchos objetos que compartan caractersticas
comunes: clientes, facturas, pedidos, artculos,
notas de ventas, pagos cuentas etc.
Una clase software es una plantilla genrica que define
las variables de instancia y mtodos de instancia de
todos los objetos (instancias de clase) que forman la
coleccin de objetos.
A partir de una clase es posible crear objetos que
compartan el mismo comportamiento, pero que cada
uno de ellos posea un estado particular distinto.
4
Clase (Plantilla Genrica)
5
Estructura de una clase
class NombreDeLaClase {
// declaracin de las variables de instancia
// declaracin de las variables de la clase
metodoDeInstancia() {
// variables locales
// cdigo
}
metodoDeClase() {
// variables locales
// cdigo
}
}
Todo forma parte de una clase
Java NO soporta funciones o variables GLOBALES
6
Variables de la Clase
Adems de las variables de instancia, de las cuales cada
objeto posee un conjunto de las mismas; la clase puede
obtener variables propias cuyo valor es nico para
todos los objetos de la clase.
Estas variables son conocidas como variables de clase, y
pueden considerarse como variables globales a todos
los objetos de la clase.
Las variables de clase en java se declaran con la palabra
static.
7
Instancia de una clase.
Al disear sus primeros programas en Java, pudo notar que
todo gira alrededor de instancias de Objetos que son
manipuladas a travs de referencias:

Lampara candil = new Lampara();
candil.prender();

Al utilizar referencias en Java estas pueden ser inicializadas
sin que pertenezcan a ninguna instancia de Objeto:

String let;

8
Instancia de una clase.
La declaracin anterior genera una referencia, sin embargo,
esta no es asociada con ninguna instancia de Objeto, para
llevar acabo este proceso es necesario utilizar el vocablo
new.

String let = new String("Algo sencillo")

La declaracin anterior no solo genera una instancia nueva
de la Clase String, sino le asigna un valor inicial ("Algo
sencillo") el cual es asignado a la referencia let; este
mecanismo de agregar valores al generar una instancia es
llevada acabo a travs de mtodos denominados
constructores los cuales sern descritos posteriormente.
9
Instancia de una clase.

Para su uso es necesaria la declaracin, la instanciacin y la

inicializacin del objeto.
class Empleado{
long idEmpleado = 0;
String nombre = "SinNombre";
double sueldo = 0;
}
Declaracin.
Empleado e;
Instanciacin.
e = new Empleado();
Se puede resumir en una nica instruccin:
Empleado e = new Empleado();
10
Instancia de una Clase
11
Instancia de una Clase
12
DEFINICIN DE CONSTRUCTORES
El constructor de una clase es un mtodo estndar
para inicializar los objetos de esa clase. Es una funcin
que se ejecuta siempre al crear un objeto.
Los constructores de una clase tienen siempre el nombre
de la clase y no tiene ningn valor devuelto (ni
siquiera void).
Si el usuario no declara un constructor el sistema (En
este caso Java) siempre crea un constructor por
defecto sin argumentos.
En el momento en el que el usuario define un constructor
el constructor del sistema se elimina y es sustituido
por el, o los, constructores definidos (al tratarse de un
mtodo ms el constructor puede sobrecargarse).
13
Constructores de la clase
El constructor lo que hace es crear o reservar en
memoria la cantidad de bytes necesaria para la
clase, y regresa la direccin donde esta este
espacio, el cual es guardado en la identificador:

Deben tener el mismo nombre de la clase.

No es obligatorio definir un constructor para la
clase. Si no se hace, el Java Runtime System
provee uno por default, el cual crea la instancia
de la clase.
14
Que es un constructor de la clase
a) Constructor por omisin (constructor no-args):
Asignatura(){}
b) Bloques de sentencias declarado dentro de una clase
con el mismo nombre que la clase y sin valor de
retorno.
c) Las sentencias inicializan la instancia y se invocan
despus de asignar los valores por omisin de los
atributos.
d) Para inicializar un objeto basta con llamar a su
constructor despus de la palabra reservada new y
asignarlo a una referencia declarada previamente.
e) Un constructor es un mtodo que se ejecuta cada
vez que se crea un objeto, el propsito de este
procedimiento es el de inicializar los datos del objeto.
El nombre del constructor siempre es igual al nombre
de la clase.
15
Ejemplo de constructor de la clase
Empleado(String nom){ //constructor
nombre = nom;
}

//creacin del objeto
Empleado e = new Empleado(Enrique Martnez);
Un constructor Se invoca automticamente cuando
new crea un objeto de esa clase.
16
Ejemplo Constructores 1/2
package unidad_5;

public class Arboles {
public static void main(String args[])
{
Arboles arbol1 = new Arboles();
Arboles arbol2 = new Arboles("Cedro");
Arboles arbol3 = new Arboles(4);
Arboles arboli4 = new Arboles(6, "pino");
}
public Arboles() {
System.out.println("Clasificacion de los Arboles");
}

17
Ejemplo Constructores 2/2
public Arboles(String tipo) {
System.out.println("Este arbol se llama " + tipo);
}
public Arboles(int altura) {
System.out.println("y tiene una altura de " + altura + " metros");
}
public Arboles(int altura,String tipo) {
System.out.println("Este arbol se llama " + tipo + " y tiene una altura
de " + altura + " metros");
}
}
18
Ejemplo (Clase Arboles)

a) Como en todo programa Java , primeramente se define
la Clase a travs del vocablo class.
b) Posteriormente son definidos 4 Constructores; ntese
que cada uno recibe el mismo nombre de la Clase y
posee distintos argumentos de entrada.
c) Dentro del mtodo principal (main) son generadas
cuatro instancias de la Clase, como se puede
observar, al ser generada la instancia a travs del
vocablo new se pasa un parmetro, y es dependiendo
de este parmetro que es llamado el Constructor
correspondiente, el cual a su vez invoca la Clase
System.out.println que imprime a pantalla.

19
Modificadores de clase
public, todo el mundo puede acceder a ella. Sin este modificador
slo podran acceder los miembros de su clase o los de las clases
de su paquete.
abstract, clase incompleta de la que no se pueden crear
instancias. Se utiliza para implementar superclases que las
clases hijas debern completar.
final, no admite subclases por lo que no se podrn sobreescribir.
Todos sus mtodos sern a su vez final, por lo que no podrn ser
Sobreescritos.
synchronizable, todos sus mtodos son sincronizables, es decir
no se puede acceder a ellos desde distintos hilos (threads) de
ejecucin.
20
Accesibilidad de las clases
a) Por omisin: acceso de paquete (friendly o
amistoso).
La clase slo puede ser utilizada por otras clases del
paquete.
b) Modificador public: permite que sea utilizada por
otras clases.
Slo puede haber una clase pblica por unidad de
compilacin.
Su nombre debe coincidir con el de la unidad de
compilacin.
Puede haber una unidad de compilacin sin clases
pblicas.
a) No hay clases private.

You might also like