Вы находитесь на странице: 1из 29

3.

3 VARIABLES MIEMBRO

A diferencia de la programacin algortmica clsica,


que estaba centrada en las funciones, la
programacin orientada a objetos est centrada en
los datos. Una clase est constituida por unos datos
y unos mtodos que operan sobre esos datos.

Variables miembro de objeto


Cada objeto, es decir cada ejemplar concreto de la
clase, tiene su propia copia de las variables
miembro. Las variables miembro de una clase
(tambin llamadas campos) pueden ser de tipos
primitivos (boolean, int, long, double, ) o
referencias a objetos de otra clase
(composicin).Un aspecto muy importante del
correcto funcionamiento de los programas es que
no haya datos sin inicializar. Por eso las variables
miembro de tipos primitivos se inicializan siempre
de modo automtico, incluso antes de llamar al
constructor (false para boolean, el carcter nulo
para char y cero para los tipos numricos). De
todas formas, lo ms adecuado es inicializarlas
tambinen el constructor. Las variables miembro
pueden tambin inicializarse explcitamente en la
declaracin, como las variables locales, por medio
de constantes o llamadas a mtodos.

Variables miembro de clase (static)


Las variables de clase se crean anteponiendo la
palabra static a su declaracin. Para llamarlas se
suele utilizar el nombre de la clase (no es
imprescindible, pues se puede utilizar tambin el
nombre de cualquier objeto), porque de esta forma
su sentido queda ms claro. Por
ejemplo:Circulo.numCirculos, es una variable de
clase que cuenta el nmero de crculos creados. Si
no se les da valor en la declaracin, las variables
miembro static se inicializan con los valores por
defecto para los tipos primitivos (false para
boolean, el carcter nulo para char y cero para los
tipos numricos), y con null si es una referencia.
Las variables miembro static se crean en el
momento en que pueden ser necesarias: cuando
se va a crear el primer objeto de la clase, en
cuanto se llama a un mtodo static o en cuanto se
utiliza una variable static de dicha clase. Lo
importante es que las variables miembro static se
inicializan siempre antes que cualquier objeto de la

3.4: AMBITO REFERENTE A UNA CLASE


Una clase acta como cualquier otro tipo de dato con respecto al mbito. Todos los
miembros de una clase se dice que estn en el mbito de esa clase; cualquier miembro de
una clase puede referenciar a cualquier otro miembro de la misma clase. Las funciones
miembro de una clase tienen acceso no restringido a los miembros dato de esa clase. El
acceso a los miembros dato y funciones de una clase fuera del mbito de la clase est
controlado por el programador. La idea es encapsular la estructura de datos y funcionalidad
de una clase, de modo que el acceso a la estructura de datos de la clase desde fuera de las
funciones miembro de la clase, sea limitada o innecesaria. El nombre de la clase tiene que
ser nico dentro de su mbito.Especificadores de acceso a los miembros de una clase En
una definicin de clase, un especificador de acceso se utiliza para controlar la visibilidad de
los miembros de una clase fuera del mbito de la clase. Los miembros de una clase pueden
ser pblicos, privados o protegidos. Las palabras reservadas public, private y protected se
utilizan para controlar el modo de acceso a la clase. Dentro de una declaracin de clase,
cada una de estas palabras se puede utilizar para preceder a una o ms declaraciones de
los miembros de una clase:- Acceso protegido. Los miembros protegidos significan que slo
se puede acceder a ellos por funciones miembro dentro de la misma clase y por funciones
miembro de clases derivadas de esta clase.- Acceso pblico. Los miembros pblicos son
accesibles por cualquier parte del programa.- Acceso privado. Los miembros privados slo
pueden ser utilizados por las funciones miembro de la clase y las funciones amigas de la
clase. Funciones miembro Son miembros de una clase y son funciones diseadas para
implementar las operaciones permitidas sobre los tipos de datos de una clase. Para declarar
una funcin miembro hay que situar su prototipo en el cuerpo de la clase. No hay que definir

3.5.ESPECIFICADORES DE ACCESO

Hay tres nuevas palabras clave para establecer las


fronteras de una estructura: public, private y
protected. Su uso y significado es bastante claro.
Los especificadores de acceso se usan solo en la
declaracin de las estructuras, y cambian las
fronteras para todas las declaraciones que los
siguen. Cuando use un especificador de acceso,
debe ir seguido de : .

3.6 CREACION DE OBJETOS


Para disponer de espacio en la memoria para guardar la informacin de uno de esos
alumnos tendremos que crear un objeto con el patrn (clase) alumno. Los objetos se
crean con la palabra reservada new.
En la siguiente instruccin: uno = new alumno(); Creamos un objeto de la clase alumno
que referenciamos con la variable uno
La variable tendr que haberse declarado antes, y la declaramos como una variable
del tipo alumno, ya que la vamos a usar para guardar informacin de objetos del tipo
alumno.
Un programa con la declaracin de la variable y la creacin del objeto sera:
public class p2t1p5
{ public static void main(String[] args){
alumno uno; // 1
uno = new alumno(); // 2
uno.nombre = "Joan"; // 3
uno.apellido = "Rosell Mas"; // 4
System.out.println(uno.nombre + " " + uno.apellido);
}

3.7:PUNTERO THIS

El this es un puntero (C++) o referencia (Java) al


objeto.El programador no lo crea ni lo inicializa.
Cuando se llama a una funcin miembro, el cdigo
oculto genera el this con la direccin del objeto y
lo pasa como parmetro.En el cuerpo de mtodo
se puede referir al objeto actual, desde donde fue
llamado el mtodo, utilizando el this. En Java, slo
se puede usar this dentro del cuerpo de la
definicin de un mtodo de instancia, nunca en el
cuerpo de un mtodo de clase

3.8:CONSTRUCTORES Y DESTRUCTORES
Constructores

Un constructor es un mtodo que se llama


automticamente cada vez que se crea un objeto
de clase. la principal misin del constructor es
reservar memoria e inicializar las variables
miembro de la clase. Los constructores no tienen
valor de retorno y su nombre es el mismo que el
de la clase. Un constructor puede llamar a otro
previamente definido en la misma clase por medio
de la palabra this, y esta palabra solo aparece en
la primera sentencia de un constructor.

Destructores

A diferencia de c++, JAVA no tiene destructores ya


que el sistema se ocupa de liberar memoria de los
objetos que ya no tienen referencia, estos es, objetos
que ya no tienen ningn nombre que permita acceder
a ellos. a esta caractersticas de JAVA se le llama
"garbage collection" recoleccion de basura. Como
ya se ha dicho una forma de hacer que un objeto
quede sin referencia es cambiar esta a nula, haciendo
por ejemplo:objetoref = null;en JAVA no se sabe
exactamente cuando se va a activar la recoleccion
de basura. Si no falta memoria es posible que no se
llegue a activar.


Una variable miembro se declara de la siguiente manera:

Variables Miembro

[acceso] [static] [final] tipo nombreVariable[=ValorInicial];


Todos los modificadores que van entre corchetes [...] son opcionales para cada situacin e iremos explicando cada uno de ellos a lo largo de este post.

Bien, existen 2 clases de variables miembro:

De Objeto (Instancias)
De Clase (static)

Variables miembro de Objeto:


Son variables concretas del objeto.
Las variables miembro pueden ser de tipo primitivo o referencias a objetos de otra clase
No se puede dejar ninguna sin inicializar. Se pueden inicializar en constructores(es el siguiente tema) y en la propia declaracin.
Cada Objeto que se crea de una clase, tiene su propia copia de las variables miembro.
Pueden tener cualquier tipo de los 4 modificadores de acceso (public, protected, default (package), private). Si no le ponemos ninguno, el modificador ser
"default (Package)"
Variables miembro de Clase (static):
Son variables propias de la clase y no del objeto, por lo tanto el valor de estas variables es compartido por todos los objetos de una misma clase.
Se reserva espacio en memoria una sola vez.
Si un objeto camba el valor de la variable "static", este cambia para todos los objetos de esa clase.
Las variables de clase, se crean anteponiendo la palabra "static" a su declaracin
Se suele utilizar para definir "constantes" o variables que solo tienen sentido para toda la clase
Variables Finales
Son las Constantes, una variable declarada como "final" no puede cambiar su valor a lo largo de la ejecucin del programa y solo pueden ser inicializadas en
la declaracin o en el constructor.
El nombre de la variable "constante" es en maysculas en su totalidad.
Un Objeto no puede ser constante.
Ejemplos:
*[acceso] static final double PI=3.14------>Constante
*[acceso] static int numero=3---------------> Variable de clase
*[acceso] int numero=3---------------------->Variable de Objeto
*El acceso entre corchetes [acceso], indica que podemos elegir el que ms se adapte a nuestras necesidades.

Miembros de una clase en POO

Los modificadores ms importantes desde el punto de vista del


diseo de clases y objetos, son los que permiten controlar la
visibilidad y acceso a los mtodos y variables que estn dentro de
una clase. Uno de los beneficios de las clases, es que pueden
proteger a sus variables y mtodos (tanto de instancia como de
clase) del acceso desde otras clases.
Java soporta cuatro niveles de acceso a variables y
mtodos. En orden, del ms pblico al menos
pblico son: pblico (public), protegido (protected),
sin modificador (tambin conocido como package)
y privado (private).

mbito referente a una clase


Una clase acta como cualquier otro tipo de dato
con respecto al mbito. Todos los miembros de una
clase se dice que estn en el mbito de esa clase;
cualquier miembro de una clase puede referenciar
a cualquier otro miembro de la misma clase. Las
funciones miembro de una clase tienen acceso no
restringido a los miembros dato de esa clase. El
acceso a los miembros dato y funciones de una
clase fuera del mbito de la clase est controlado
por el programador.

Especificadores de acceso
Los especificadores determinan el alcance de la
visibilidad del elemento al que se refieren.
Referidos por ejemplo a un mtodo, pueden hacer
que el mtodo sea visible slo para la clase que lo
utiliza (private), para stas y las heredadas
(protected), para todas las clases del mismo
paquete (friendly) o para cualquier clase del tipo
que sea
(public).
Este
programa
pide al usuario el nombre y la edad
del mismo, estos mismos datos son utilizados para
mostrar si el usuario es mayor de edad o no. cada
uno de los mtodos son pblicos ya que son
llamados para cualquier clase del tipo que sea. por
ser un programa sencillo no es necesario utilizar
especificadores mas complejos.

Puntero this
Un puntero o apuntador es una variable que da
referencia a una regin de memoria; en otras
palabras es una variable cuyo valor es una
direccin de memoria. Si se tiene una variable ' p '
de tipo puntero que contiene una direccin de
memoria en la que se encuentra almacenado un
valor ' v ' se dice que ' p ' apunta a ' v '. El
programador utilizar punteros para guardar datos
en memoria en muchas ocasiones, de la forma que
se describe a continuacin. Un puntero o
apuntador es una variable que da referencia a una
regin de memoria; en otras palabras es una
variable cuyo valor es una direccin de memoria.
Si se tiene una variable ' p ' de tipo puntero que
contiene una direccin de memoria en la que se
encuentra almacenado un valor ' v ' se dice que ' p
' apunta a ' v '. El programador utilizar punteros
para guardar datos en memoria en muchas
ocasiones, de la forma que se describe a
continuacin.

un puntero this jamas puede ser declarada dentro


del cuerpo principal de la clase ya que este solo
puede apuntar o redirigirse a la llamada de un
mtodo publico dentro de otro mtodo publico,
como se muestra en la imagen, claro esta que los
mtodos pueden ser llamados desde el void main
por la forma:
NombreDeLaClase.nombredelmetodo, en este caso
se utiliza un constructor, se puede visualizar por el
comando new, en este caso la clase es persona, al
declararse el constructor es llamado persona 1
igualado por new persona. con este constructor
llamamos al mtodo mostrar el cual este apunta a
los otros mtodos de la clase.

Вам также может понравиться