Você está na página 1de 10

La programacin Orientada a objetos (POO) es una forma especial de programar,

ms cercana a como expresaramos las cosas en la vida real que otros tipos de
programacin.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en trminos de objetos, propiedades, mtodos y
otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea
base que permita soltarnos un poco con este tipo de programacin.

Clases en POO
Las clases son declaraciones de objetos, tambin se podran definir como
abstracciones de objetos. Esto quiere decir que la definicin de un objeto es la
clase. Cuando programamos un objeto y definimos sus caractersticas y
funcionalidades en realidad lo que estamos haciendo es programar una clase. En
los ejemplos anteriores en realidad hablbamos de las clases coche o fraccin
porque slo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases

Las propiedades o atributos son las caractersticas de los objetos. Cuando


definimos una propiedad normalmente especificamos su nombre y su tipo. Nos
podemos hacer a la idea de que las propiedades son algo as como variables
donde almacenamos datos relacionados con los objetos.
Mtodos en las clases

Son las funcionalidades asociadas a los objetos. Cuando estamos programando


las clases las llamamos mtodos. Los mtodos son como funciones que estn
asociadas a un objeto.

Objetos en POO
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar
tenemos que especificar la clase a partir de la cual se crear. Esta accin de crear
un objeto a partir de una clase se llama instanciar (que viene de una mala
traduccin de la palabra instace que en ingls significa ejemplar). Por ejemplo, un
objeto de la clase fraccin es por ejemplo 3/5. El concepto o definicin de fraccin

sera la clase, pero cuando ya estamos hablando de una fraccin en concreto 4/7,
8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instruccin especial que puede ser
distinta dependiendo el lenguaje de programacin que se emplee, pero ser algo
parecido a esto.
miCoche = new Coche()

Con la palabra new especificamos que se tiene que crear una instancia de la clase
que sigue a continuacin. Dentro de los parntesis podramos colocar parmetros
con los que inicializar el objeto de la clase coche.
La programacin orientada a objetos se basa en la programacin de clases; a
diferencia de la programacin estructurada, que est centrada en las funciones.
Una clase es un molde del que luego se pueden crear mltiples objetos, con
similares caractersticas.
Una clase es una plantilla (molde), que define atributos (variables) y mtodos
(funciones)
La clase define los atributos y mtodos comunes a los objetos de ese tipo, pero
luego, cada objeto tendr sus propios valores y compartirn las mismas funciones.
Debemos crear una clase antes de poder crear objetos (instancias) de esa clase.
Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un
objeto propiamente dicho.
La estructura de una clase es:
class [nombre de la clase] {
[atributos o variables de la clase]
[mtodos o funciones de la clase]
[main]
}

13.1. Modificadores

Los modificadores son elementos del lenguaje que se colocan delante de la


definicin de variables locales, datos miembro, mtodos o clases y que alteran o
condicionan el significado del elemento. En captulos anteriores se ha descrito
alguno, como es el modificador static que se usa para definir datos miembros
o mtodos como pertenecientes a una clase, en lugar de pertenecer a una
instancia. En captulos posteriores se tratarn otros modificadores

como final, abstract o synchronized. En este captulo se presentan los


modificadores de acceso, que son aquellos que permiten limitar o generalizar el
acceso a los componentes de una clase o a la clase en si misma.
13.2. Modificadores de acceso

Los modificadores de acceso permiten al diseador de una clase determinar quien


accede a los datos y mtodos miembros de una clase.
Los modificadores de acceso preceden a la declaracin de un elemento de la clase
(ya sea dato o mtodo), de la siguiente forma:
[modificadores]
[modificadores]

tipo_variable nombre;

tipo_devuelto nombre_Metodo ( lista_Argumentos );

Existen los siguientes modificadores de acceso:


public - Todo el mundo puede acceder al elemento. Si es un dato
miembro, todo el mundo puede ver el elemento, es decir, usarlo y
asignarlo. Si es un mtodo todo el mundo puede invocarlo.
private - Slo se puede acceder al elemento desde mtodos de la clase,
o slo puede invocarse el mtodo desde otro mtodo de la clase.
protected - Se explicar en el captulo dedicado a la herencia.
sin modificador - Se puede acceder al elemento desde cualquier clase del
package donde se define la clase.
Pueden utilizarse estos modificadores para cualquier tipo de miembros de la
clase, incluidos los constructores (con lo que se puede limitar quien puede crear
instancias de la clase).
En el ejemplo los datos miembros de la clase Punto se declaran como private, y
se incluyen mtodos que devuelven las coordenadas del punto. De esta forma el
diseador de la clase controla el contenido de los datos que representan la clase e
independiza la implementacin de la interface.

classPunto{
privateintx,y;
staticprivateintnumPuntos=0;
Punto(inta,intb){
x=a;y=b;
numPuntos++;
}
intgetX(){
returnx;
}
intgetY(){
returny;
}
staticintcuantosPuntos(){
returnnumPuntos;
}
}
Si alguien, desde una clase externa a Punto, intenta:
...
Puntop=newPunto(0,0);
p.x=5;
...
obtendr un error del compilador.
13.3. Modificadores de acceso para clases

Las clases en si mismas pueden declararse:

public - Todo el mundo puede usar la clase. Se pueden crear instancias


de esa clase, siempre y cuando alguno de sus constructores sea accesible.
sin modificador - La clase puede ser usada e instanciada por clases dentro
del package donde se define.
Las clases no pueden declararse ni protected , ni private .
13.4. Son importantes los modificadores de acceso?

Los modificadores de acceso permiten al diseador de clases delimitar la frontera


entre lo que es accesible para los usuarios de la clase, lo que es estrictamente
privado y 'no importa' a nadie ms que al diseador de la clase e incluso lo que
podra llegar a importar a otros diseadores de clases que quisieran alterar,
completar o especializar el comportamiento de la clase.
Con el uso de estos modificadores se consigue uno de los principios bsicos de la
Programacin Orientada a Objetos, que es la encapsulacin: Las clases tienen un
comportamiento definido para quienes las usan conformado por los elementos
que tienen un acceso pblico, y una implementacin oculta formada por los
elementos privados, de la que no tienen que preocuparse los usuarios de la clase.
Los otros dos modificadores, protected y el acceso por defecto (package)
complementan a los otros dos. El primero es muy importante cuando se utilizan
relaciones de herencia entre las clases y el segundo establece relaciones de
'confianza' entre clases afines dentro del mismo package. As, la pertenencia de
las clases a un mismo package es algo ms que una clasificacin de clases por
cuestiones de orden.
Cuando se disean clases, es importante pararse a pensar en trminos de quien
debe tener acceso a que. Qu cosas son parte de la implantacin y deberan
ocultarse (y en que grado) y que cosas forman parte de la interface y deberan ser
pblicas.

El concepto de encapsulacin

La encapsulacin es un mecanismo que consiste en organizar datos y mtodos de una estructura,


conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por
cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulacin garantiza la
integridad de los datos que contiene un objeto.

Ocultacin de datos
El usuario de una clase en particular no necesita saber cmo estn estructurados los datos dentro
de ese objeto, es decir, un usuario no necesita conocer la implementacin Al evitar que el usuario
modifique los atributos directamente y forzndolo a utilizar funciones definidas para modificarlos
(llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse
de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran
dentro del periodo de tiempo esperado).
La encapsulacin define los niveles de acceso para elementos de esa clase. Estos niveles de
acceso definen los derechos de acceso para los datos, permitindonos el acceso a datos a travs
de un mtodo de esa clase en particular, desde una clase heredada o incluso desde cualquier otra
clase. Existen tres niveles de acceso:

pblico: funciones de toda clase pueden acceder a los datos o mtodos de una clase que

se define con el nivel de acceso pblico. Este es el nivel de proteccin de datos ms bajo
protegido: el acceso a los datos est restringido a las funciones de clasesheredadas, es

decir, las funciones miembro de esa clase y todas lassubclases


privado: el acceso a los datos est restringido a los mtodos de esa clase en particular.
Este es nivel ms alto de proteccin de datos

HERENCIA:

-CONCEPTOS:

herncia:Es una propiedad que permite que los objetos sean creados a partir de
otros ya existentes, obteniendo caractersticas (mtodos y atributos) similares
a los ya existentes. Es la relacin entre una clase general y otra clase mas
especifica. Es un mecanismo que nos permite crear clases derivadas a partir de
clase base, Nos permite compartir automticamente mtodos y datos entre
clases subclases y objetos. Por ejemplo: Si declaramos una clase prrafo
derivada de un clase texto todos los mtodos y variables asociadas con la clase
texto son automticamente heredados por la subclase prrafo.[1]

herencia:Este quizas es el tema que mas problemas causa al estudiante; sin


embargo, no es dificil en su concepcin.
El objeto Persona es un objeto muy generico y limitado en si; asi que se puede
considerar como un objeto Abstracto; ya que por si mismo no puede crear una
persona completa; sin embargo, sus funciones basicas son las mismas en todos
los seres humanos, con diferencias puntuales, asi que podemos crear dos
objetos Hombre y Mujer, que hereden todas sus caracteristicas genericas como
respirar, hablar, nombre, etc, del objeto Persona, y sea en la implementacin
de cada objeto donde empiezen las diferencias.[5]

-Ejemplo en Java [editar] public class Mamifero


{

private int patas;


private String nombre;

public void imprimirPatas()


{
System.out.println(nombre + tiene + patas + patas\n);
}

public Mamifero(String nombre, int patas)


{
this.nombre = nombre;
this.patas = patas;
}
}

public class Perro extends Mamifero


{
public Perro(String nombre){
super(nombre, 4);
}
}

public class Gato extends Mamifero{


public Gato(String nombre){
super(nombre, 4);
}
}

public class CreaPerro {


public static void main(String [] args) {
Perro bobi = new Perro(Bobi);
bobi.imprimirPatas(); /*Est en la clase mamfero*/
}
}

De forma general un ArrayList en Java se crea de la siguiente forma:


ArrayList nombreArray = new ArrayList();
Esta instruccin crea el ArrayList nombreArray vaco.
Un arrayList declarado as puede contener objetos de cualquier tipo.
Por ejemplo:
ArrayList a = new ArrayList();

a.add("Lenguaje");
a.add(3);
a.add('a');
a.add(23.5);
Los elementos del arrayList a son:
Lenguaje 2 a 23.5
Es decir, un ArrayList puede contener objetos de tipos distintos.
En este ejemplo, el primer objeto que se aade es el String Lenguaje. El resto no son
objetos. Son datos de tipos bsicos pero el compilador los convierte automticamente
en objetos de su clase envolvente (clase contenedora o wrapper) antes de aadirlos
al array.
Un array al que se le pueden asignar elementos de distinto puede tener alguna
complicacin a la hora de trabajar con l. Por eso, una alternativa a esta declaracin es
indicar el tipo de objetos que contiene. En este caso, el array solo podr contener
objetos de ese tipo.
De forma general:
ArrayList<tipo> nombreArray = new ArrayList<tipo>();
tipo debe ser una clase. Indica el tipo de objetos que contendr el array.
No se pueden usar tipos primitivos. Para un tipo primitivo se debe utilizar su clase
envolvente.
Por ejemplo:
ArrayList<Integer> numeros = new ArrayList<Integer>();
Crea el array numeros de enteros.

MTODOS DE ARRAYLIST
Algunos mtodos que proporciona ArrayList son:
MTODO

DESCRIPCIN

size()

Devuelve el nmero de elementos (int)

add(X)

Aade el objeto X al final. Devuelve true.

add(posicin, X)

Inserta el objeto X en la posicin indicada.

get(posicion)

Devuelve el elemento que est en la posicin indicada.

remove(posicion)

Elimina el elemento que se encuentra en la posicin


indicada. Devuelve el elemento eliminado.

remove(X)

Elimina la primera ocurrencia del objeto X. Devuelve true si


el elemento est en la lista.

clear()

Elimina todos los elementos.

set(posicin, X)

Sustituye el elemento que se encuentra en la posicin


indicada por el objeto X. Devuelve el elemento sustituido.

contains(X)

Comprueba si la coleccin contiene al objeto X. Devuelve

true o false.
indexOf(X)

Devuelve la posicin del objeto X. Si no existe devuelve -1

Você também pode gostar