conceptos básicos del paradigma orientado a objetosymoyao/wp-content/uploads/2016/01/intro1... ·...

Post on 14-Feb-2018

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Conceptos Básicos del Paradigma

Orientado a Objetos

M.C Yolanda Moyao Martínez 1

Programación II

Programación Orientada a

Objetos-POO

• Es un paradigma de

programación

que usa objetos en

sus interacciones,

para

diseñar aplicacione

s y programas

informaticos.

POO

• La POO nació en 1969 con el Dr.Kristin

Nygaard pues trató de describir el

movimiento de los barcos.

• Se dio cuenta que era muy difícil simular del

mundo real(mareas, formas de líneas de

costas y los movimientos de los barcos) con

los métodos de programación existentes.

POO• Era mas fácil adecuar el

mundo real a la

computadora que al

revés.

• El primer lenguaje OO

fue Simula 67

Ejemplo

• Las partes de un

coche pueden ser

internamente

muy complejas

pero lo

importante es

como interactúan

entre si

Programa Orientado a Objetos

• Un programa OO se forma

de muchos componentes

independientes(objetos) y

diferentes cada uno con

funcionamiento específico

y que se comunican o dan

respuesta a solicitudes

(mensajes) de los demás

POO vs programación estructurada

POO Vs Programación estructurada

• Encapsula datos y métodos

Clase es la unidad de

programación

• Orientado a acciones.

Función es la unidad de

programación

Ejemplo: Algoritmo en POO

Encender un auto1. Identificar los objetos

llave, switch, clutch, palanca de velocidades

2. Relacionarlos de acuerdo a su funcionalidad

a. poner palanca de velocidades en neutral

b. colocar la llave dentro del switch

c. presionar el clutch al fondo

d. girar llave a la derecha hasta topar y soltar suavemente

e. si el auto encendió. Fin del algoritmo

f. Caso contrario. Girar llave a posición inicial, esperar 2 seg. y repetir inciso d.

Práctica 2

• En equipos de 4 resuelve los problemas.

1. Cambiar un neumático

2. Pintar una mesa

• Analicen el problema e identifiquen en una lista

todos los objetos.

• Usando los objetos de acuerdo a su funcionalidad,

escriban un algoritmo para resolver el problema.

Tarea 2

• Resuelve los problemas.

1. Hacer Tarea

2. trasladarse a la escuela

• Analiza el problema e identifica en una lista todos los

objetos.

• Usando los objetos de acuerdo a su funcionalidad,

escribe un algoritmo para resolver el problema.

POO

• La Programación Orientada a Objetos es

un paradigma de programación que usa

los objetos en sus interacciones, para diseñar

programas.

• En POO los TDA’s se refieren a las clases

• Está basado en varias técnicas, incluyendo herencia,

abstracción, polimorfismo y encapsulamiento.

• Abstracción

• Objeto

• Encapsulamiento

• Clase

• Jerarquía

• Herencia

• Modularidad

• Polimorfismo

Abstracción

• Aislar un elemento de su contexto o del resto de los

elementos que lo acompañan, identificando sus

características esenciales que lo distinguen de los

demás.

• Capacidad de conceptualizar entidades genéricas de

información a partir de cosas concretas.

Abstracción

• Hay muchas aves diferentes pero cuando vemos una

en particular la podemos reconocer inmediatamente

aunque nunca la hayamos visto antes.

• ¿Qué es una ave? Descríbela!!!!!

¿Todas son aves?

Ave

• vertebrado de sangre

caliente, provisto de

pico y alas, con el

cuerpo cubierto de

plumas, que se

reproduce por huevos

y tiene respiración

pulmonar y circulación

doble y completa.

Abstracción

• Se centra en las

características

esenciales de algún

objeto, en relación a la

perspectiva del

observador

Ejemplo: Abstracción de estudiante

TDA

Encapsulamiento

• Significa reunir en cierta estructura todos los

elementos que a determinado nivel de abstracción,

se pueden considerar de una misma entidad.

• Oculta lo que hace un objeto de lo que hacen otros

objetos del mundo exterior

Encapsulamiento

• Esconder detalles de como

funciona algo, detrás de una

interfaz.

• El usuario no se ve afectado

si se cambia el

funcionamiento interno del

objeto mientras no se cambie

la interfaz.

Ejemplo

• En el objeto

vehículo el

encapsulamiento

significa que el

conductor cuando

frena, no necesita

conocer el sistema

de frenado.

Clase y Objeto

• Objeto es una entidad tanto

tangible como intangible,

que se puede imaginar y que

tiene un estado, un

comportamiento y una

identidad.

M.C Yolanda Moyao Martínez 24

Ejemplos

seguro es un objeto intangible que tiene propiedades tales como tipo de cobertura, costo, vigencia, etc. Además tiene cierto comportamiento tal que este puede ser contratado, renovado, cancelado, modificado, etc.

Seguro

-Tipo_Cobertura

-Costo

-Vigencia

+Contratar(..)

+Renovar(…)

+Cancelar(…)

+Modificar(…)

Ejemplo

mesa Objeto tangible, tiene propiedades tales como color, largo, ancho, etc. Y tiene comportamiento tal que puede ser pintada, restaurada, modificada, etc.

Mesa

-Color

-Largo

-Ancho

+Pintar(..)

+Restaurar(…)

+Modificar(…)

Clase

• Clase Tipo de molde o

plantilla que dicta lo que los

objetos son y pueden o no

hacer.

• Es un conjunto de objetos

que comparten una

estructura y un

comportamiento.

Animales

Ejemplo

Servicios es una clase que define

objetos que tienen propiedades tales

como tipo de cobertura, costo,

vigencia, etc.

Además tienen cierto

comportamiento tal que estos puede

ser contratados, renovados,

cancelados, modificados, etc.

M.C Yolanda Moyao Martínez 28

Servicios

+Tipo_Cobertura+Costo+Vigencia

+Contratar()+Renmovar()+Cancelar()+Modificar()

Atributos

• Atributos son los datos necesarios para describir los objetos

creados a partir de alguna clase en particular.

M.C Yolanda Moyao Martínez 29

Ejemplo

el objeto Servicios_Juan es identificado por los atributos:

tipo de cobertura, costo, vigencia, etc.

M.C Yolanda Moyao Martínez 30

Servicios_Juan

-Tipo_Cobertura

-Costo

-Vigencia

+Contratar()

+Renovar()

+Cancelar()

+Modificar()

Estado

• Posibles condiciones en

que un objeto puede existir.

• El estado de un objeto

puede cambiar durante el

tiempo.

Ejemplo

Servicios_Juan

Amplia

150,000

3 años

Contratar()

Renovar()

Cancelar()

Modificar()

Método

• Método es una secuencia

de instrucciones que una

clase u objeto sigue para

realizar una tarea.

• Es un conjunto de

operaciones que

manipulan a los atributos

del objeto.

M.C Yolanda Moyao Martínez 33

Ejemplo

• En la clase Servicios

los métodos que

manipulan a los

atributos de los objetos

son: contratar,

renovar, cancelar,

modificar, etc

M.C Yolanda Moyao Martínez 34

Java

Implementaciones

Java es un lenguaje robusto

• En lugar de los punteros se emplean referencias a

objetos, los cuales son identificadores simbólicos.

• El gestor de memoria de Java lleva una contabilidad

de las referencias a los objetos. Cuando ya no existe

una referencia a un objeto, éste se convierte en

candidato para la recogida de basura (garbage

collection).

Lenguaje portable

• El principal objetivo de los diseñadores de Java, y

dado el gran crecimiento de las redes en los últimos

años, fue el de desarrollar un lenguaje cuyas

aplicaciones una vez compiladas pudiesen ser

inmediatamente ejecutables en cualquier máquina

y sobre cualquier sistema operativo.

• Por ejemplo, un programa desarrollado en Java en

una estación Sun que emplea el S.O Solaris, debería

poderse llevar a un PC que utilice S.O. Windows NT.

Lo mas simple posible

• Los diseñadores de Java trataron de mantener las

facilidades básicas del lenguaje en un mínimo y

proporcionar un gran número de extras con las

librerías de clases.

Lenguaje seguro

• Se pretendía construir un lenguaje que no pudiera

acceder a los recursos del sistema de manera

incontrolada. Por este motivo se eliminó la

posibilidad de manipular la memoria mediante el uso

de punteros evitando así todo acceso ilegal a la

memoria.

Máquina virtual

Crear programas en java

- Aplicaciones

• Escribir el programa fuente en cualquier editor y guardarlo con extensión .java

• Compilar el fichero fuente mediante:

javac miPrograma.java. //genera el fichero .class

• Ejecutarlo (interpretar los byte-code) :

• java miPrograma

Características

• Java no tiene funciones definidas fuera de las clases.

• Métodos y variables deben estar definidas dentro de una

clase.

• El main debe ir dentro de una clase aunque no pertenezca a

ninguna.

Sintaxis

JAVA

Comentarios

// comentarios para una sola línea

/* comentarios de una o más líneas */

/** comentario de documentación, de una o más líneas */

Tipos

• Java es un lenguaje con control fuerte de Tipos

(Strongly Typed).

• Esto significa que cada variable y cada expresión

tiene un Tipo que es conocido en el momento de la

compilación

Tipos primitivos

• boolean : Puede contener los valores true o false.

• byte : Enteros. Tamaño 8-bits. Valores entre -128 y 127.

• short : Enteros. Tamaño 16-bits. Entre -32768 y 32767.

• int : Enteros. Tamaño 32-bits. Entre -2147483648 y 2147483647.

• long : Enteros. Tamaño 64-bits. Entre -9223372036854775808 y 9223372036854775807.

• float : Números en coma flotante. Tamaño 32-bits.

• double : Números en coma flotante. Tamaño 64-bits.

• char : Caracteres. Tamaño 16-bits. Unicode. Desde '\u0000' a '\uffff' inclusive. Esto es desde 0 a 65535

• El tamaño de los tipos de datos no depende de la implementación de Java. Son siempre los mismos.

Identificadores

• Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar.

• En Java, un identificador comienza con una letra, un subrayado (_) o un símbolo de dólar ($). Los siguientes caracteres pueden ser letras,dígitos,$,_.

• Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima.

Ejemplos

• nombre_usuario

• Nombre_Usuario

• _variable_de_sistema

• $transacción

• var2

Variables

• Una variable es un área en memoria que tiene un

nombre y un Tipo asociado.

• Es obligatorio declarar las variables antes de usarlas.

tipo_variable nombre ;

Ejemplos:

int i; // Declaracion de un entero

char letra; // Declaracion de un carácter

boolean flag; // Declaracion de un booleano

Asignación

• La declaración y la asignación se pueden combinar en una

sola expresión:

int i = 5;

char letra = 'c';

boolean flag = false;

No existen variables globales pues todas deben estar dentro de

alguna clase.

Literales caracter

• Un carácter entre apóstrofes (') o bien una sequencia de escape (también entre ').

• Las secuencias de escape están formadas por el símbolo \ y una letra o un número. Algunas secuencias de escape útiles:

• \n: Salto de línea

• \t: Tabulador

• \b: Backspace.

• \r: Retorno de carro

• \uxxxx: donde xxxx es el código Unicode del carácter.

• Por ejemplo \u0027 es el apostrofe (')

Operaciones sobre tipos primitivos

Tipos

Grupo de

operadoresOperadores

Enteros

Operadores

de

comparación

que

devuelven

un valor boolean

< (menor) , <= (menor o igual) , >

(mayor), >= (mayor o igual), ==

(igual), != (distinto)

Operadores

numéricos,

que

devuelven un valor int

o long

+ (unario, positivo), - (unario,

negativo), + (suma) , - (resta) , *

(multiplicación), / (división), %

(resto), ++ (incremento), --

(decremento), <<, >>, >>> (rotación)

, ~ (complemento a nivel de bits), &

(AND a nivel de bits), | (OR a nivel

de bits) ^(XOR a nivel de bits)

Tipos

Grupo de

operadoresOperadores

Coma

flotante

Operadores de

comparación que

devuelven un valor boolean

< (menor) , <= (menor o igual)

, > (mayor), >= (mayor o

igual), == (igual), !=

(distinto)

Operadores

numéricos, que

devuelven un valor float o double

+ (unario, positivo), -

(unario, negativo), + (suma) ,

- (resta) , *

(multiplicación), / (división),

% (resto), ++ (incremento), --

(decremento).

BooleanosOperadores

booleanos

== (igual), != (distinto), !

(complemento), & (AND), |

(OR), ^ (XOR), && (AND

condicional), || (OR

condicional)Los operadores de java son los mismos y tienen la misma

prioridad y asociatividad que en C

Palabras reservadas

• Abstract, boolean, break, byte, case, catch, char, class,

const, continue, default, do, double, else, extends,

final, finally, float, for, goto, if,implements, import,

instanceof, int, interface, long, native, new, package,

private, protected, public, return, short, static, super,

switch, this, throw, throws, transient, volatil, while,

void, synchronized,

Ejemplo//muy sencillo

public class Primero

{

public static void main(String[] args)

{

System.out.println(“Hola Todos”);

}

}

Palabra reservada Nombre de la clase

Definición del método

Argumentos del

método

Llamado del método para

imprimir

Modificador

de acceso

Objeto Clase

Objeto out para flujo de salida

estándar

• Algunos de sus métodos son: println(), print()

• Ejemplos

System.out.println(“Hola Todos”);

System.out.println(“Factorial”+facto);

System.out.print(“Hola Todos”);

Ejemplo: Clase serviciospublic class Servicios

{

public static void main(String[] args)

{

System.out.println(“Servicios”);

}

public void contratar()

{

System.out.println(“contratar”);

}

}

Creación de objetos

Una vez que una clase se modela o se define, es posible

crear o instanciar uno o más objetos que se

identifican con dicha clase.

Servicios_Juan

Amplia

150,000

3 años

Contratar()

Renovar()

Cancelar()

Modificar()

Servicios_Teresa

Limitada

100,000

2 años

Contratar()

Renovar()

Cancelar()

Modificar()

Ejemplo: Instanciar objetos

public class servicios{

public static void main(String[] args) {

servicios k = new servicios();

System.out.println("Hola Todos!");

}

public void contratar()

{

System.out.println("contratar");

}

}

Mensaje

• Es una instrucción que se envía

a un objeto, el cual se ejecutará al

recibirlo;

• Incluye el identificador que

contiene la acción a realizar por

el objeto.

• Incluye los datos que este necesita

para efectuar su trabajo.

EjemploContratar()

Ejemplo: Contratarpublic class servicios{

public static void main(String[] args) {

servicios juan = new servicios();

System.out.println("Hola Todos!");

juan.contratar();

}

public void contratar()

{

System.out.println("contratar");

}

}

Practica 3

• En equipo de 4 realiza el modelado para las clases:

aparatos_electrónicos, animales y medios_de

transporte.

• Implementa en Java las 3 clases modeladas.

Tarea 3

• Modela las clases: mochilas, juguetes, libros.

• Implementa en Java las 3 clases modeladas.

Objeto

Estado

El estado de un objeto lo establecen los valores concretos de los atributos y los enlaces que el objeto pueda tener con otros objetos.

public class Servicios{ string tipo; int monto, vigencia;

public static void main(String[] args) {

Servicios juan = new Servicios();

System.out.println(“Servicios disponibles!");

juan.contratar(“amplio”,150,3);

}

public void contratar(String t, int m, int v)

{

tipo=t; monto=m; vigencia=v;

System.out.println("contratar"+"\n"+"tipo de cobertura

"+tipo+"\n"+"Pago "+monto+"\n"+"La vigencia es de

"+vigencia); } }

Comportamiento

• Determina como un objeto actúa y reacciona a las

peticiones de otros objetos.

• Se modela con un conjunto de mensajes a los que puede

responder

Identidad: su nombre• Cada objeto tiene identidad única, aunque en un momento

dado el estado puede ser idéntico al de otros objetos

VuelaVuela

gaviota águila

public class Servicios{ string tipo; int monto, vigencia;

public static void main(String[] args) {

Servicios juan = new Servicios();

Servicios carla = new Servicios();

System.out.println(“Servicios disponibles!");

juan.contratar(“amplio”,150,3);

carla.contratar(“amplio”,150,3);

}

public void contratar(String t, int m, int v)

{

tipo=t; monto=m; vigencia=v;

System.out.println("contratar"+"\n"+"tipo de cobertura "+tipo+"\n"+"Pago

"+monto+"\n"+"La vigencia es de "+vigencia);

} }

ClasesDescribe un grupo de objetos que

tienen

• Propiedades en común

(atributos)

• Comportamiento

común(Métodos)

• Relaciones comunes con otros

objetos(Asociación)

Clases V.S. Objetos• La clase es una definición

abstracta de los objetos.

• Define su estructura y

comportamiento

• Sirve como plantilla para

crear objetos

• Objeto es una instancia

concreta de una

clase(ejemplar).

• Los objetos se agrupan

en clases

Clase planetas

Objeto tierra

Atributos de clase static

• No es específico de cada objeto. Solo hay una copia

del mismo y su valor es compartido por todos los

objetos de la clase.

• Podemos considerarlo como una variable global a la

que tienen acceso todos los objetos de la clase.

• Existe y puede utilizarse aunque no existan objetos

de la clase.

• Para acceder a un atributo de clase se escribe:

• NombreClase.atributo

final – variable constante

final permite definer variables como constantes

Ejemplo

public static final x=20;

Métodos de clase static

• Tiene acceso solo a los atributos estáticos de la clase.

• No es necesario instanciar un objeto para poder

utilizarlo.

• Para acceder a un método de clase se escribe:

• NombreClase.método()

Ejemplo

public class m{

static int k=0; int p;

public static void

main(String args[ ]){ }

cuenta(); //omite la clase

public static int cuenta(){k++; }

}

public class m{

static int k=0; int p;

public static void

main(String args[ ]){ }

z.cuenta(); //no omite clase

}

class z{

public static cuenta(){k++; }

}

Versión 1 Versión 2

top related