Cap1 POO Introduccion

Click here to load reader

download Cap1 POO Introduccion

of 24

description

Programacion

Transcript of Cap1 POO Introduccion

Diapositiva 1

IntroduccinProgramacin Orientada a ObjetoPedro Rodrguez MorenoProgramacin Orientada a Objeto (ICInf)Departamento de Sistemas de InformacinFacultad de Ciencias EmpresarialesProgramacin Orientada a ObjetosLa 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 JavaSupongamos 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 2Veamos 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 StringSystem.out.println(hello + " tiene " + lh + " caracteres");System.out.println(s + " tiene " + s.length() + " caracteres");}}Como compilar y ejecutar un programa en JavaCompilacin:Forma general:

javac

Ejemplo:javac Hello.java

Ejecucin:Forma general:

java

Ejemplo:java Hello

Hello World!!Proceso de compilacin y la portabilidadFuenteJavaCompiladorjavac bytecodeIntrpreteLinuxIntrpreteSolarisIntrpreteWindowsIntrpreteMac OS Xjava/appletviewerCaractersticas de un programa javaUn 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 ObjetoDefinicin de claseUna 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 objetoUn 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 objetosLos 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 {

}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 vectoresDado 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 enteroQueremos crear una lista de elementos que almacenen datos de tipo entero.

Los elementos de la lista son nodos ligados.2050701090hNULLEstructura de la Clase Nodoclass Nodo {int valor; // Variable de instancia Nodo next; // Variable de instancia

Nodo() { // Constructorvalor = 0;next = null;}

Nodo(int v, Nodo n) {valor = v;next = n;}}

El constructor es un mtodoTenemos dos ejemplares del constructor Nodo()

Significa que el constructor est sobrecargadoCmo 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 instanciaCorresponden 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 objetoMtodosLos 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 claseCorresponde 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 constructornombre([parmetros formales]){[variables locales][conjunto de instrucciones]}Mtodos de la claseUn 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:]}