You are on page 1of 7

Clases y Paquetes Definicin de una Clase: Una clase es un tipo definido por el usuario que describe los atributos

y los mtodos de los objetos que se crearan a partir de la misma. Los atributos definen el estado de un determinado objeto y los mtodos son las operaciones que definen su comportamiento. Forman parte de estos mtodos los constructores, que permiten iniciar un objeto, y los destructores, que permiten destruirlo. Los atributos y los mtodos se denominan en general miembros de la clase.

La definicin de una clase consta de dos partes: El nombre de la clase precedido por la palabra reservada class, y el cuerpo de la clase encerrado entre llaves. Esto es: Class nombre_clase { Cuerpo de la clase } El cuerpo de la clase en general consta de modificadores de acceso (public, protected y prvate), atributos, mensaje y mtodos. Un mtodo implcitamente define un mensaje (el nombre del mtodo es el mensaje) Atributos Los atributos constituyen la estructura interna de los objetos de una clase. Para declarar un atributo, se procede igual que se ha hecho para declarar cualquier otra variable dentro de un mtodo. Ejemplo: Class circulo { Prvate double, x,y; Prvate double radio; } En una clase, cada atributo debe tener un nombre nico. En cambio, se pude utilizar el mismo nombre con atributos, y con miembros en general, que pertenezcan a diferentes clases, porque una clase define su propio mbito. Es posible asignar un valor inicial a un atributo de una clase. Class circulo { Prvate double, x,y; Prvate double radio=1;

Tambin podemos declarar como atributos de una clase, referencias a otros objetos de clases existentes. Control de acceso a los miembros de la clase:

Class circulo { //Miembros privados Prvate doubl x,y; Prvate doubl radio; //Miembros protegidos Protected void msgEsNegativo() { System.out.println(El radio es negativo. Se convierte a positivo); } //Miembors pblicos Public circulo () //Constructor sin parametros {} }

Acceso predeterminado: Class CRacional { Int Numerado; Int denominador; } Void asignar datos(int num, int den) { Numerador = num; If (den==0) den-1; Denominador=den; } Void visualizarRacional() { System.out.println(Numerador + / Denominador); } } Un miembro de una clase declarado sin modificadores que indiquen el control de acceso, puede ser accedido por cualquier clase perteneciente al mismo paquete. Ninguna otra clase, o subclase, fuera de este paquete puede tener acceso a estos miembros. Acceso publico Un miembro de una clase declarado public(publico) puede ser accedido por un objeto de esa clase en cualquier parte de la aplicacin donde el objeto en cuestin sea accesible. Los miembros pblicos de una clase constituyen la interfaz publica de los objetos de esa clase. Public class Test { Public static void main (String[] args) { Circulo c=new Cirulo (100.0, 200.0, 10); Double area = c.areacirculo(); //correcto, miembro public } } Acceso privado Un miembro de una clase declarado prvate(privado) puede ser accedido por un objeto de esa clase solo desde los mtodos de dicha clase. Esto significa que no puede ser accedido por los mtodos de cualquier otra clase, incluidas las subclases. Public class Test { Public static void main (String[] args) { Circulo c=new Cirulo (100.0, 200.0, 10); Double r=c.radio; //error; //miembro privado }}

Acceso protegido Un miembro de una clase declarado protected(Protegido) se comporta exactamente igual que uno privado para los mtodos de cualquier otra clase, excepto para los mtodos de las clases del mismo paquete o de sus subclases con independencia del paquete al que pertenezcan, para las que se comporta como un miembro pblico. Implementacion de una clase public class CFecha { //Atributos private int dia, mes, ano; //metodos protected boolean bisiesto() { return ((ano%4==0)&&(ano%100!=0)||(ano%400==0)); } public void asignarFecha(int dd, int mm, int aaaa) { dia = dd; es=mm; ano=aaaa; } public obtenerFecha(int[] fecha) { fecha[0]=dia; fecha[1]=mes; fecha[2]=ano; } public boolean fechaCorrecta() { boolean diaCorrecto, mesCorrecto, anoCorrecto; //ano correcto? anoCorrecto=(ano>1582); //mes correcto? mesCorrecto=(mes>1)&&(mes<=12); switch (mes) //dia correcto? case 2: if (bisiesto()) diaCorrecto=(dia>=1 && dua <29); else diaCorrecto=(dia>=1 && dia<28); break; case 4: case 6: case 9: case 11;

diaCorrecto=(dia>=1 && dia<=31); } return diaCorrecto && mesCorrecto &&anoCorrecto; } } }

Referencia This Cada objeto mantiene su propia copia de los atributos pero no de los mtodos de su clase, de los cuales solo 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 mismo mtodos definidos en su clase. Por lo tanto, para que un mtodo conozca la identidad del objeto particular para el que ha sido invocado, Java proporciona una referencia al objeto denominada this. Asi por ejemplo si creamos un objeto fecha1 y a continuacin le enviamos el mensaje asignarFecha, Fecha1.asignarFecha(dia, mes, ano); Java define la referencia this para permitir referirse al objeto fecha1 en el cuerpo del mtodo que se ejecuta como respuesta al mensaje. Esa definicin es asi: Final CFecha this =fecha1; Variables, mtodos y clases finales

Asigna memoria para el objeto por medio del operador new

Inicia los atributos de ese objeto, ya sea con los valores especificados en su propia declaracin, o en su defecto con los valores predeterminados por el sistema: los atributos numricos a ceros, los alfanumricos a nulos, y las referencias a objetos null. Llama al constructor de la clase que puede ser uno entre varios, segn se expone a continuacin: Dado que los constructores son mtodos, admiten parmetros igual que estos, cuando en una clase no especificamos ningn constructor, el compilador aade un o publico por omisin sin parmetros Public CFecha() {// Sin cdigo}

Destructor Un destructor es un mtodo especial de una clase que se ejecuta antes de que un objeto de esa clase sea eliminado fsicamente de la memoria. Un destructor se distingue fcilmente porque tiene el nombre predeterminado finalize. Cuando en una clase no especificamos un destructor, el compilador proporciona uno a atraves de la Clase Object cuya sintaxis es la siguiente: Protected void finalize() throws Throwable{//Sin Codigo}

You might also like