Vous êtes sur la page 1sur 27

Clases y Objetos en JAVA

Docente: Paul Beltrand Urra

1
Paul Beltrand Urra
Paradigmas de Programacin
Existen de distintas clases y cada uno con
su propio objetivo.
Estructurados (C, Pascal, Basic, etc.)
Funcionales (CAML)
Declarativos (Prolog)
Orientados a Objetos (C#, VB.NET, Smalltalk,
Java)
Orientados a Aspectos
Hbridos (Lisp, Visual Basic)
Un Mundo de Objetos
Todo el mundo esta compuesto de
entidades que se relacionan e interactan
entre si;
por ejemplo: un auto con su conductor,
una persona con su computadora, etc.
Qu es un Objeto?
Informalmente, un objeto representa una
entidad del mundo real
Entidades Fsicas
(Ej.:Auto, Computadora, Cliente)
Entidades Conceptuales
(Ej.: Transaccin Bancaria)
Entidades de Software
(Ej.: Interfaz Grfica)
Qu es un Objeto?
Definicin Formal (Rumbaugh):
Un objeto es un concepto, abstraccin o cosa
con un significado y lmites claros en el
problema en cuestin
Un objeto posee (Booch):
Estado
Comportamiento
Identidad
Un objeto posee Estado
Lo que el objeto sabe
El estado de un objeto es una de las posibles condiciones en que el
objeto puede existir
El estado normalmente cambia con el transcurso del tiempo
El estado de un objeto es implementado por un conjunto de
propiedades (atributos), adems de las relaciones que puede tener
con otros objetos

Atributos
Edad:35
Dra. Juanita Peso:70 kg.
Prez Altura:1.60 mts.
Domicilio: Calle Falsa 123
Titulo: Doctora
Un objeto posee
Comportamiento
Lo que el objeto puede hacer
El comportamiento de un objeto determina cmo ste acta y
reacciona frente a las peticiones de otros objetos
Es modelado por un conjunto de mensajes a los que el objeto
puede responder (operaciones que puede realizar)
Se implementa mediante mtodos

Descansa
Cocina

Juega al Ftbol Trabaja


Un objeto posee Identidad
Cada objeto tiene una identidad nica, incluso si su estado es
idntico al de otro objeto.
Cada Objeto es nico en el mundo por mas que haya otro objeto
con iguales atributos.
Qu es una Clase?
Una clase es una descripcin de un grupo de
objetos con:
Propiedades en comn (atributos)
Comportamiento similar (operaciones)
La misma forma de relacionarse con otros objetos
(relaciones)
Una semntica en comn (significan lo mismo)
Una clase es una abstraccin que:
Enfatiza las caractersticas relevantes
Suprime otras caractersticas (simplificacin)
Un objeto es una instancia de una clase
Objetos y Clases
Una clase es una definicin abstracta de un objeto
Define la estructura y el comportamiento compartidos por los
objetos
Sirve como modelo para la creacin de objetos
Los objetos pueden ser agrupados en clases
Ejemplo de una Clase
Clase: Curso
Estado (Atributos)
Nombre
Ubicacin
Das Ofrecidos
Horario de Inicio
Horario de Trmino
Comportamiento (Mtodos)
Agregar un Alumno
Borrar un Alumno
Entregar un Listado del Curso
Determinar si est Completo
Clases en Java
Lenguaje tipado estticamente
Legible
No separacin en fichero interfaz e
implementacin.
Lenguaje semi-interpretado: Mquina
Virtual Java + bytecodes
Atributos y variables de clase
Mtodos de instancia y de clase
Incluye metaclases (Reflexin)
Ejemplo: Cuenta
Creacin de Objetos
Constructores: mtodos con el nombre de la
clase que no devuelven nada (void).
Acceso a las variables de instancia de la
clase mediante mtodos de instancia (set y
get).

Cuenta c = new Cuenta (pedro);


c.reintegro(10000);
c.ingreso(20000);
int x = c.getSaldo();

Propiedades de clase: static
class Cuenta
{
private String titular;
public static int interes=3;
public int setInteres(int cantidadPts)
{
interes= cantidadPts
}

Que ocurre ?
Propiedades de clase
No podemos acceder desde variables
de clase a variables de instancia.

// Mtodo de clase
public static int setInteres(int cantidadPts)
{
interes= cantidadPts
}
Propiedades de clase
public class HelloWorld {
public static void main(String[] args) {
Cuenta.setInteres(12);
Math.sqrt(9);
}
}

Las propiedades de clase son vlidas


para todos los objetos de la clase.
Clases Java y Ocultacin de
Informacin
package
accesible por las clases del paquete, no
accesible a los clientes del paquete
public
accesible por todas las clases
private
slo accesible por los mtodos de la clase
protected
accesible por las clases del paquete y por
las subclases
Visibilidad
public protected package private

The class itself Si Si Si Si

Clases del mismo paquete Si Si Si No

Subclases de otro paquete Si Si No No

No-subclases de otro paquete Si No No No


Asignacin
Un objeto asociado a una variable cambia
cuando se evala una expresin de
asignacin.
variable = expresin
miObjeto= otroObjeto;

El operador = no hace una copia del objeto


Asignacin y cloning
Point p = new Point (1,1);
Point p2 = p;
p2.setLocation(120,120);
//Aliasing
System.out.println("Valor de p:" + p.getX());
System.out.println("Valor de p2:" +
p2.getX());

Point p3 = (Point)p.clone();
p3.setLocation(40,40);
System.out.println("Valor de p:" + p.getX());
System.out.println("Valor de p3:" +
p3.getX());
Copia en Java
La clase Object incluye el mtodo
protected Object clone( ) {..} ..}
que implementa una copia superficial.

Para poder clonar objetos de una clase


se debe
Declarar que implementa la interfaz
Cloneable
Redefinir y hacer pblico el mtodo clone()
Dejar la versin original (copia superficial)
o bien hacer una copia de mayor
profundidad.
Paso de Parmetros
class PassByValue {
public static void modifyPoint(Point pt, int j)
{
pt.setLocation(5,5);
j = 15;
}
public static void main(String args[])
{
Point p = new Point(0,0); //1
int i = 10;
modifyPoint(p, i); //2
//3
}}
Arrays y Clases
Cuenta lista_cuentas [] = new Cuenta[10];
O bien:
Cuenta lista_cuentas[];
lista_cuentas = new Cuenta [10];

Qu ocurre si ahora intento hacer lo


siguiente ?
lista_cuentas[0].ingreso(100);
Arrays y clases
La inicializacin del array no instancia n
objetos del tipo establecido !!!
Los deja a null por defecto
Cuenta lista_cuentas [] = new Cuenta[10];
Cuenta micuenta = new Cuenta(pedro);
Cuenta sucuenta = new Cuenta(pepe);
lista_cuentas[0] = micuenta;
lista_cuentas[1] = sucuenta;
lista_cuentas[0].ingreso(100);
Arrays: Tipo parametrizable
int lista [] = new int[100];
lista[0]=1;
for (int i=0;i<lista.length;i++)
lista[i]=0;
int lista[] = {1,2,3,4};
Perro lista2 = new Perro[100];
lista2[0] = new Perro ();
Object lista3 = new Object [100][100];
CONSULTAS?

27

Vous aimerez peut-être aussi