You are on page 1of 24

Programacin Orientada a

Objeto
Introduccin

Pedro Rodrguez Moreno


Programacin Orientada a Objeto (ICInf)
Departamento de Sistemas de Informacin
Facultad de Ciencias Empresariales

Programacin Orientada a Objetos


La Programacin Orientada a Objetos (POO u OOP

para la sigla en ingls) es un paradigma de


programacin que define los programas en trminos
de "clases de objetos.
Una clase de objetos define un tipo, define un conjunto

de elementos u objetos homogneos, con las mismas


caractersticas o propiedades.
Por ejemplo, la clase Humanos define al conjunto de

todos los seres humanos. En particular, cada ser


humano, individuo o espcimen constituye un objeto.

Ejemplo 1: en lenguaje Java


Supongamos que este programa est contenido en un
archivo de texto llamado Hello.java:

public class Hello {


public static void main (String[] args)
{
System.out.println("Hello World!");
}
}

Ejemplo 2
Veamos ahora la creacin de un objeto dentro del mtodo main():
public class Hello
{
static String hello;
public static void main(String args[])
{
String s = new String("Este ejemplo usa objetos de la clase String!!");
hello = new String("Hello World!!!");
int lh = hello.length(); // length() es un mtodo de la clase String
System.out.println(hello + " tiene " + lh + " caracteres");
System.out.println(s + " tiene " + s.length() + " caracteres");
}
}

Como compilar y ejecutar un programa


en Java
Compilacin:
Forma general:

javac <programa fuente con extensin .java>


Ejemplo:

javac Hello.java
Ejecucin:
Forma general:

java <nombre programa que contiene mtodo main>


Ejemplo:

java Hello
Hello World!!

Proceso de compilacin y la portabilidad


Intrprete
Linux
Fuente
Java

Compilador
javac

bytecode

Intrprete
Solaris
Intrprete
Windows
Intrprete
Mac OS X
java/appletviewer

Caractersticas de un programa java


Un programa en Java est compuesto por 1 o ms clases.
Las diferentes clases pueden ser escritas en un solo archivo

fuente, pero cuando un programa es muy grande es preferible


escribir cada clase en un archivo separado.
Una de las clases debe contener el mtodo main().
Para compilar el programa se usa el archivo que contiene la

clase con el mtodo main().


El nombre del archivo que contiene la clase con el mtodo

main() debe ser el mismo nombre de la clase que contiene


este mtodo.

Qu es un programa en Java?
Desde el punto de vista del diseo, un programa, es un conjunto

de clases.
Un programa en ejecucin es un conjunto de objetos que

interactan entre s para realizar una tarea o resolver un


problema.
Esto

difiere de los lenguajes procedurales/estructurados


tradicionales (ej. C), en los cuales los datos y los procedimientos
estn separados y casi sin relacin alguna.

El paradigma OO est pensado para hacer programas ms

modulares, ms fciles de escribir, mantener y reutilizar.

Definicin de Clase y Objeto

Definicin de clase
Una clase (o clase de objetos) corresponde a una plantilla o

molde que define y describe a un conjunto de objetos con las


mismas propiedades y el mismo comportamiento.
Las propiedades (o tambin atributos) corresponden a las

variables definidas en la clase, las cuales guardan datos.


El comportamiento est dado por los mtodos (funciones)

definidos en la clase.
Una clase corresponde a un tipo de datos.
Cuando creamos nuevas clases, Java las tratar como si

fueran tipos de datos propios.

Definicin de objeto
Un objeto es una instancia de una clase.
Una clase es a una especie, como un objeto es a

un espcimen.
Un objeto o instancia corresponde a un ejemplar

de una clase.
Por ejemplo, la clase Persona, que representa al

conjunto de todas las personas. Un objeto de esta


clase podra ser el seor Daniel Lpez, Rut:
22.222.222-2.

Caractersticas de los objetos

Los objetos son entidades que combinan estado

(datos) y comportamiento (funciones o mtodos).


Un objeto es creado mediante el operador new.
En Java, todos los objetos son estructuras dinmicas

(estn contenidos en el heap).

Estructura de una clase

[public|protected|private] class <nombre de la clase>


{
<variable(s) de instancia>
<constructor (es)>
<mtodos>
}

Ejemplo 3: clculo de la potencia de


un nmero (xe)
Ingresar los valores de la base (x) y del exponente (e).
La base es un nmero real mientras que el exponente

es de tipo entero.
El exponente debe ser mayor o igual cero.
Escribir un programa en Java que calcule la potencia

de un nmero x e imprima por pantalla el resultado.

Ejemplo 4: Suma de vectores

Dado dos vectores de tipo entero, cuyos valores

son generados de forma aleatoria.


La tamao de los vectores debe ser ingresado

desde teclado y es de tipo entero.


Escribir un programa en Java que calcule la

suma de los vectores e imprima por pantalla el


resultado.

Ejemplo 5: definicin de una lista de


elementos de tipo entero
Queremos crear una lista de elementos que almacenen datos

de tipo entero.
Los elementos de la lista son nodos ligados.

h
20

50

70

10

90

NULL

Estructura de la Clase Nodo


class Nodo {
int
valor; // Variable de instancia
Nodo
next; // Variable de instancia
El
constructor
es un
mtodo

Nodo() {
// Constructor
valor = 0;
next = null;
Tenemos dos }

ejemplares del
constructor
Nodo()

Nodo(int v, Nodo n) {
Significa que
valor = v;
el constructor
next = n;
est
sobrecargado }
}

Cmo creamos un objeto de la


clase Nodo?
Por ejemplo, definimos una variable de tipo

Nodo:
Nodo n;
n = new Nodo();
n = new Nodo(10, null);

Variables de instancia
Corresponden a los atributos de un objeto y almacenan el estado de

ste.
Las variables de instancia corresponden a las propiedades que

caracterizan a un tipo de objeto.


Ejemplo:

class Persona {
String nombre;
String ap_paterno;
String ap_materno;
int edad;

Variables de
instancia.
Almacenan el
estado de un
objeto

Mtodos
Los mtodos definen el comportamiento de los objetos.
Son similares a las funciones en el lenguaje C.
Los mtodos pueden o no retornar un valor, pueden

tener parmetros formales, variables locales y tambin


pueden ser recursivos.
Existen dos tipos de mtodos:
Los constructores.
Los mtodos de la clase.

El Constructor de la clase
Corresponde a un mtodo especial.
A travs de ste se crean los objetos de la clase.
El constructor es invocado con el operador new con el cual se

reserva memoria para el nuevo objeto y se inicializan las variables


de instancia del objeto.
No retorna valor alguno.
Se pueden definir cero o ms constructores.
El constructor tambin se puede sobrecargar.
El nombre del constructor corresponde al nombre de la clase.

Estructura general de un constructor

nombre([parmetros formales])
{
[variables locales]
[conjunto de instrucciones]
}

Mtodos de la clase
Un mtodo en Java es un conjunto de instrucciones definidas dentro

de una clase.
Un mtodo realiza una tarea especfica.
Tienen un nombre y sin invocados o llamados a travs de ese nombre.
Pueden o no retornar un valor.
Constituyen la lgica de una clase que manipula el estado de los

objetos.
Constituyen el mecanismo para implementar los mensajes entre un

objeto y otro (a travs de la llamada y el retorno del mtodo).

Estructura general de un mtodo

[especificador] tipo nombre([parmetros formales]) [throws Exceptions]


{
[variables locales]
[conjunto de instrucciones]
[return valor:]
}