Vous êtes sur la page 1sur 18

Conceptos bsicos

Constructor Encapsulamiento Niveles de acceso

Constructor

Las clases pueden implementar un mtodo especial llamado constructor. Un constructor es un mtodo que inicia un objeto inmediatamente despus de su creacin. De esta forma nos evitamos el tener que iniciar las variables explcitamente para su iniciacin.

public class ConstructorDemo{ public ConstructorDemo(){ System.out.println(Constructor sin argumentos"); } }

El constructor tiene exactamente el mismo nombre de la clase que lo implementa; no puede haber ningn otro mtodo que comparta su nombre con el de su clase. Una vez definido, se llamar automticamente al constructor al crear un objeto de esa clase (al utilizar el operador new).

ConstructorDemo
Cdobj = new ConstructorDemo ();

El constructor no devuelve ningn tipo, ni siquiera void. Su misin es iniciar todo estado interno de un objeto (sus atributos), haciendo que el objeto sea utilizable inmediatamente; reservando memoria para sus atributos, iniciando sus valores...

class rectangulo { private int ancho; private int alto;

public rectangulo(int n, int l)


{ ancho = n;

} }

alto = l;

Encapsulamiento

El encapsulamiento permite a los objetos elegir qu informacin es publicada y qu informacin es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus mtodos como interfaces pblicas y sus atributos como datos privados e inaccesibles desde otros objetos.

Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar mtodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados. Con el encapsulado de los datos se consigue que las personas que utilicen un objeto slo tengan que comprender su interfaz, olvidndose de cmo est implementada, y en definitiva, reduciendo la complejidad de utilizacin.

Ejemplo:

private int ancho; private int alto;

Niveles de acceso

En Java existen tres niveles de acceso (al igual que en C++): Publico (public), puede ser accedido desde cualquier parte.

Privado (private), solo se puede utilizar en metodos declarados dentro de la misma clase, no se heredan por las subclases y no son accesibles desde ellas.
Protegido (protected), se puede utilizar en metodos declarados dentro de la misma clase, las subclases y las otras clases definidas dentro del mismo paquete (agrupacion de clases).

Ejercicio1:

Implementar una aplicacin que tenga la clase triangulo, rectngulo, cuadrado y circulo. Cada clase tendr su constructor el cual va a iniciar el objeto y van a tener los metodos de calcular base y calcular perimetro. Aplicar los diferentes metodos de acceso y aplicar encapsulamiento.

Ejercicio2

Hacer una aplicacin como la tarea, tendr las siguientes operaciones:

Suma Resta Multiplicacin Divisin Potencia

Cada operacin es una clase, pedir los datos en el constructor y que estos sean accedidos solo por la clase y unicamente por los metodos de la misma En el caso especfico de la suma puede preguntar cuantos nmeros quiere sumar y verificar que sean hasta 5 nmeros, no mas.

Sobrecarga de Constructores

Una clase puede definir varios constructores (un objeto puede inicializarse de varias formas). Para cada instanciacin se usa el que coincide en nmero y tipo de argumentos. Si no hay ninguno coincidente se produce un error en tiempo de compilacin.

ejemplo

class Punto { int x , y ; Punto ( int a , int b ) { x = a ; y = b ; } Punto () { x = 0 ; y = 0; }}

Cuando se declaran varios constructores para una misma clase estos deben distinguirse en la lista de argumentos, bien en el nmero, bien en el tipo.

Esta caracterstica de definir mtodos con el mismo nombre se denomina sobrecarga y es aplicable a cualquier mtodo miembro de una clase

Ejercicio 3

Hacer una clase que se llame y que como el programa anterior va a calcular area y perimetro, que tenga sobrecarga de constructor y dependiendo de los parametros de entrada es el constructor que va a tener

Ejercicio 3

Hacer una aplicacin usando clases en donde se le dan 2 cadenas de entrada hasta de 50 caracteres. La clase va a tener los siguientes mtodos:

Invertir la cadena que se mande como parametro Contar el numero de caracteres de la cadena que entre como parametro.

Contar el numero de caracteres que existen de un carcter dado y de la cadena que entra como parametro