Programacion Java
Programacion Java
Tipos de atributos.
Objetivos:
a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos
en Java
b) Interpretar el código fuente de una aplicación Java donde aparecen distintos tipos
de atributos
c) Construir una aplicación Java sencilla, convenientemente especificada, que
emplee clases con diferentes tipos de atributos.
Los atributos, también llamados datos o variables miembro son porciones de
información que un objeto posee o conoce de sí mismo. Una clase puede tener
cualquier número de atributos o no Tener ninguno. Se declaran con un identificador y
el tipo de dato correspondiente.
• Modificador Visibilidad
• public Pública (+)
• protectec Protegida / en la herencia(#)
• private Privada(-)
• package De paquete (~)
Métodos.
Java como todo lenguaje de programación orientado a objetos utiliza los llamados
métodos. A continuación veremos cómo se crea un método y como se utilizan.
Se podría decir que existen 2 grandes tipos de métodos, el primer tipo de método son
métodos que realizan procesos, puedes realizar cualquier operación con ellos, sin
embargo el propósito es manipular variables existentes. El segundo tipo de métodos
son los que realizan un proceso o cálculo, y calculan una variable específica, un
ejemplo podría ser un método para obtener el valor de una multiplicación.
Los métodos en java pueden tener parámetros, es decir, que un método puede utilizar
variables predefinidas para ser utilizadas en sus procesos.
Encapsulamiento.
Como se puede observar de los diagramas, las variables del objeto se localizan en el
centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de
otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la
protección de sus métodos se le llama encapsulamiento. Típicamente, el
encapsulamiento es utilizado para esconder detalles de la puesta en práctica no
importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden
cambiar en cualquier tiempo sin afectar otras partes del programa.
El encapsulamiento de variables y métodos en un componente de software ordenado
es, todavía, una simple idea poderosa que provee dos principales beneficios a los
desarrolladores de software.
RETORNO DE VALORES
Los métodos pueden devolver un valor al llamador. Si el tipo de valor de retorno (el que
aparece antes del nombre de método) no es void, el método puede devolver el valor
mediante la palabra clave return. Una instrucción con la palabra clave return, seguida de
un valor que coincida con el tipo de valor devuelto, devolverá ese valor al llamador del
método.
La palabra clave return también detiene la ejecución del método. Si el tipo de valor
devuelto es void, una instrucción return sin ningún valor sigue siendo útil para detener la
ejecución del método. Sin la palabra clave return, el método detendrá la ejecución cuando
llegue al fin del bloque de código. Es necesario que los métodos con un tipo de valor
devuelto no nulo utilicen la palabra clave return para devolver un valor. Por ejemplo, estos
dos métodos utilizan la palabra clave return para devolver enteros:
Public class SimpleMath
{
public int AddTwoNumbers(int number1, int number2)
{
return number1 + number2;
}
public int SquareANumber(int number)
{
return number * number;
}
}
Para emplear un valor devuelto por un método, el método de llamada puede utilizar la
propia llamada del método en cualquier parte donde un valor del mismo tipo sea
suficiente.
2.5 Constructores y destructores declaración, uso y aplicaciones
Constructores y destructores
Los constructores y destructores son dos tipos de métodos especiales que se ejecutan,
respectivamente, al crear un nuevo objeto y cuando el recolector de basura detecta que
ya no lo estamos utilizando y es posible eliminarlo de la memoria. Hasta ahora no hemos
hecho uso nunca ni de los constructores ni de los destructores puesto que los ejemplos
que hemos venido utilizando eran bastante simples, pero a partir de ahora vamos a
empezar a utilizarlos bastante a menudo. Sobre todo en el caso de los constructores, ya
que los destructores no se suelen usar más que en contadas ocasiones.
Para crear un objeto se necesita reservar suficiente espacio en memoria e inicializar los
valores de los campos que representan el estado del objeto.
Este trabajo es realizado por un tipo especial de método denominado constructor.
Constructor
Un método constructor de una clase es un método especial que:
•Tiene el mismo nombre que la clase y
•No tiene tipo de retorno.
•Inicializa el estado de un objeto.
La sintaxis para la declaración de un método constructor es:
[atributos] [modificadores] <identificador> ( [parámetros] ) [inicializador]
{
// Cuerpo del constructor.
}
Dónde:
Atributos (opcional) es información declarativa adicional.
Modificadores (opcional) se restringen a extern y a los modificadores de acceso.
Identificador es el nombre del método constructor (igual al nombre de la clase).
Parámetros (opcional) es la lista de parámetros pasados al constructor.
Inicializador (opcional). Con el inicializador, el constructor invoca previamente a otro
constructor.
El inicializador puede ser uno de los siguientes:
· base([listaDeParámetros])
· this([listaDeParámetros])
Cuerpo del constructor es el bloque de programa que contiene las instrucciones para
inicializar la instancia de clase (objeto).
Ejemplo:
class Producto
{
private int clave;
private double precio;
public Producto( int c, double p)
{
clave = c;
precio = p;
}
public double daPrecio( )
{
return precio;
}
}
Destructor
En contraposición al constructor, el destructor elimina el vínculo y libera el espacio de
memoria de un objeto, para que pueda ser ocupado nuevamente.
Para empezar vamos a sobrecargar el operador suma('+') para que al sumar dos objetos
de la clase ComplexNum, es decir dos números complejos obtengamos un número
complejo que será la suma de ambas partes. Cabe destacar que los prototipos para
sobrecargar operadores serán:
public static Operando operator+(Operando a, Operando b)
Este es el prototipo para el operador +, el resto de operadores binarios van a seguir el
mismo patrón. Por tanto el código del método de sobrecarga será el siguiente:
public static ComplexNum operator+(ComplexNum a, ComplexNum b)
{
return new ComplexNum(a.Real + b.Real, a.Img + b.Img);
}
Este método sobrecarga el operador suma para que podamos sumar dos números
complejos. Un dato a tener en cuenta es que los métodos que sobrecargan operadores
deben ser static. Como se ve en el código los operandos son 'a' y 'b', que se reciben como
parámetro y el resultado de la operación es otro número complejo que es el que retorna el
método. Por tanto se limita a crear un nuevo número complejo con ambas partes
operadas. De la misma forma podemos crear la sobrecarga del operador resta('-') para
que lleve a cabo la misma función:
public static ComplexNum operator-(ComplexNum a, ComplexNum b)
{
return new ComplexNum(a.Real - b.Real, a.Img - b.Img);
}