Miembro de una clase
Las variables y los métodos que usted tiene en Person y Employee
son variables y métodos de instancia. Para usarlos, usted debe crear
instancias de la clase que necesita o tener una referencia a la instancia. Cada
instancia de objetos tiene variables y métodos y, para cada uno, el
comportamiento exacto (por ejemplo, lo que se genera al llamar a printAudit())
será diferente porque se basa en el estado de la instancia de los objetos.
Las clases mismas también pueden tener variables y métodos,
que se llaman miembros de clases. Usted declara miembros de clases con
la palabra clave static. Las diferencias entre los miembros de clases y los
miembros de instancias son las siguientes:
- Cada instancia de una clase comparte una sola copia de una variable de clase.
- Puede llamar a los métodos de clases en la clase misma, sin tener una instancia.
- Los métodos de instancias pueden acceder a las variables de clases pero los métodos de clases no pueden acceder a variables de instancias.
- Los métodos de clases pueden acceder solo a las variables de clases.
Ámbito referente a
una clase
Una clase actúa como cualquier otro tipo de dato con
respecto al ámbito. Todos los miembros de una clase se dice que están 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 definición de clase, un especificador de acceso se utiliza para controlar la visibilidad de los miembros de una clase fuera del ámbito de la clase.
En una definición 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 públicos, privados o
protegidos. Las palabras reservadas public, private y protected se utilizan
para controlar el modo de acceso a la clase.
Dentro de una declaración de clase, cada una de estas palabras se puede utilizar para preceder a una o más declaraciones de los miembros de una clase:- Acceso protegido.
Dentro de una declaración de clase, cada una de estas palabras se puede utilizar para preceder a una o más declaraciones de los miembros de una clase:- Acceso protegido.
Los miembros protegidos significan que sólo se puede acceder
a ellos por funciones miembro dentro de la misma clase y por funciones miembro
de clases derivadas de esta clase.- Acceso público. Los miembros públicos son
accesibles por cualquier parte del programa.- Acceso privado. Los miembros
privados sólo 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
diseñadas para implementar las operaciones permitidas sobre los tipos de datos
de una clase. Para declarar una función miembro hay que situar su prototipo en
el cuerpo de la clase. No hay que definir la función dentro de la clase; dicha
definición puede estar fuera de la clase e incluso en un archivo independiente,
aunque también pueden ser definidas en línea dentro de la clase.
Las funciones miembro son necesarias para acceder a los
datos privados. En general, son públicas; si no lo fueran, ninguna otra función
podría llamarlas. Se pueden declarar para devolver valores con tipos incluyendo
objetos de clases, punteros o referencias. Pueden ser declaradas también para
aceptar cualquier número y tipo de argumentos. Los argumentos por defecto están
permitidos, así como la notación de puntos suspensivos.
ESPECIFICADORES DE ACCESO
C++ introduce 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 declaración de las estructuras, y cambian las fronteras para todas las declaraciones que los siguen. Cuando use un especificador de acceso, debe ir seguido de “:” .
ESPECIFICADORES DE ACCESO
C++ introduce 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 declaración de las estructuras, y cambian las fronteras para todas las declaraciones que los siguen. Cuando use un especificador de acceso, debe ir seguido de “:” .
CREACION DE OBJETOS
Para disponer de espacio en la memoria para guardar la información de uno de esos alumnos tendremos que crear un objeto con el patrón (clase) alumno. Los objetos se crean con la palabra reservada new.
En la siguiente instrucción:
uno = new alumno();
Creamos un objeto de la clase alumno que referenciamos con la variable uno
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 información de objetos del tipo alumno.
Un programa con la declaración de la variable y la creación
del objeto sería:
public
class p2t1p5{
public static void main(String[] args){
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);
}
uno.nombre = "Joan"; // 3
uno.apellido = "Rosell Mas"; // 4
System.out.println(uno.nombre + " " + uno.apellido);
}
}
Constructores y
destructores
Constructores
Los constructores son unos métodos especiales que se
ejecutan automáticamente al crear un objeto de la clase. En su declaración no
se especifica el tipo de dato que devuelven, y poseen el mismo nombre que la
clase a la que pertenecen. Al igual que otros métodos, puede haber varios
constructores sobrecargados, aunque no pueden existir constructores virtuales.
Como característica especial a la hora de implementar un constructor,
justo después de la declaración de los parámetros, se encuentra lo que se llama
"lista de inicializadores". Su objetivo es llamar a los constructores
de los atributos que conforman el objeto a construir.
Cabe destacar que no es necesario declarar un constructor al
igual que un destructor, pues el compilador lo puede hacer, aunque no es la
mejor forma de programar.Tomando el ejemplo de la Clase Punto, si deseamos que
cada vez que se cree un objeto de esta clase las coordenadas del punto sean
igual a cero podemos agregar un constructor.
Existen varios tipos de constructores en C++:
Constructor predeterminado: Es el constructor que no recibe
ningún parámetro en la función. Si no se definiera ningún constructor, el
sistema proporcionaría uno predeterminado. Es necesario para la construcción de
estructuras y contenedores de la STL.
Constructor de copia: Es un constructor que recibe un objeto
de la misma clase, y realiza una copia de los atributos del mismo. Al igual que
el predeterminado, si no se define, el sistema proporciona uno.
Constructor de conversión: Este constructor, recibe como
único parámetro, un objeto o variable de otro tipo distinto al suyo propio. Es
decir, convierte un objeto de un tipo determinado a otro objeto del tipo que
estamos generando.
Destructores
Los destructores son funciones miembro especiales llamadas
automáticamente en la ejecución del programa, y por tanto no tienen por qué ser
llamadas explícitamente por el programador. Su cometido es liberar los recursos
computacionales que el objeto de dicha clase haya adquirido en tiempo de
ejecución al expirar este.
Los destructores son invocados automáticamente al alcanzar
el flujo del programa el fin del ámbito en el que está declarado el objeto.
Existen dos tipos de destructores pueden ser públicos o privados, según si se declaran:
si es público se llama desde cualquier parte del programa para destruir el objeto.
si es privado no se permite la destrucción del objeto por el usuario.
Existen dos tipos de destructores pueden ser públicos o privados, según si se declaran:
si es público se llama desde cualquier parte del programa para destruir el objeto.
si es privado no se permite la destrucción del objeto por el usuario.
El destructor es muy similar al constructor, excepto que es
llamado automáticamente cuando cada objeto sale de su ámbito de validez.
Recordemos que las variables automáticas tienen un tiempo de vida limitado, ya
que dejan de existir cuando se sale del bloque en que han sido declaradas.
Cuando un objeto es liberado automáticamente, su destructor,
si existe, es llamado automáticamente.Un destructor tiene el mismo nombre que
la clase a la que pertenece, pero precedido con una tilde (~). Igual que el
constructor, un destructor no devuelve nada.
Si algún bloque de memoria fue reservado dinámicamente en un objeto, se puede utilizar el destructor para liberarlo antes de que se pierdan los punteros a esas variables.
Si algún bloque de memoria fue reservado dinámicamente en un objeto, se puede utilizar el destructor para liberarlo antes de que se pierdan los punteros a esas variables.
Clases predefinidas
Uno de los puntos fuertes de Java es la gran cantidad
de clases predefinidas que aporta. Abarcan temas como comunicaciones, web,
diseño gráfico, utilidades matemáticas, contenedores genéricos y muchas más.
Para utilizar algunas de ellas es necesario importar el
paquete en el que se encuentran, indicándolo con la sentencia import
seguida del nombre del paquete y de la clase a importar
import paquete.clase;
import paquete.*; //importa todas las clases de ese paquete
import paquete.*; //importa todas las clases de ese paquete
Desde NetBeans se dispone, en el menú contextual del código
fuente, de la opción "Reparar importaciones" que detecta
automáticamente los "import" que son necesarios.
Reutilización de
paquetes y librerías
En Java y en varios lenguajes de programación más, existe el
concepto de librerías. Una librería en Java se puede entender como un conjunto
de clases, que poseen una serie de métodos y atributos. Lo realmente
interesante de estas librerías para Java es que facilitan muchas operaciones.
De una forma más completa, las librerías en Java nos permiten reutilizar
código, es decir que podemos hacer uso de los métodos, clases y atributos que
componen la librería evitando así tener que implementar nosotros mismos esas
funcionalidades.
Manejo de excepciones
El manejo de
excepciones es una técnica de programacion
que permite al programador controlar los errores
ocasionados durante la ejecución de un programa informático. Cuando ocurre cierto
tipo de error, el sistema reacciona ejecutando un fragmento de código que
resuelve la situación, por ejemplo retornando un mensaje de error o devolviendo
un valor por defecto.
Que desastre de redaccion
ResponderBorrar