Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
tipo_variable nombre;
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
El concepto de encapsulacin
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
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]
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()
add(X)
add(posicin, X)
get(posicion)
remove(posicion)
remove(X)
clear()
set(posicin, X)
contains(X)
true o false.
indexOf(X)