Tema 3: Programación orientada a objetos (I)

Tema 3: Programación orientada a objetos (I) ‰ ‰ ‰ ‰ ‰ ‰ ‰ Ventajas del enfoque orientado a objetos Clases y Objetos Métodos y Mensajes Algoritmos y

10 downloads 102 Views 112KB Size

Recommend Stories


Tema 11: Programación orientada a objetos
Tema 11: Programación orientada a objetos Índice 1 La Programación Orientada a Objetos...............................................................

Persistencia Orientada a objetos
Persistencia Orientada a objetos Prof. Mg. Javier Bazzocco 2011 1 Bazzocco, Javier Persistencia orientada a objetos. - 1a ed. - La Plata : Universi

POO - Programación Orientada a Objetos
Última modificación: 08-03-2016 230086 - POO - Programación Orientada a Objetos Unidad responsable: 230 - ETSETB - Escuela Técnica Superior de Ingen

Programación Orientada a Objetos. Sesión 4: Herencia
Programación Orientada a Objetos Sesión 4: Herencia Contextualización Cuando hablamos de informática, podemos contemplar varios elementos que se uti

Conceptos de Programación Orientada a Objetos
Conceptos de Programación Orientada a Objetos ¿Qué es un objeto en el mundo real? Un objeto es un elemento real o abstracto, que tiene un estado, un c

Programación orientada a objetos en Visual Basic.NET
Programación orientada a objetos en Visual Basic .NET Índice Introducción 1 Lección: Entender el concepto de clase 2 Lección: Trabajar con clases

LABORATORIO #7 PARTE I INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN LABORATORIO #7 – PARTE I INTRODUCCIÓN A LA PRO

4.3. Estructuras de programación orientada a objetos Tablas
GAmuza Hybrid live coding / 4. L e n g u a j e modular application 4.3. Estructuras de programación orientada a objetos La programación orientada

5 C A P I T U L O. Programacion orientada a objetos con Java. 5.1 Introduccion a Java Caracteristicas
5 CAPITULO Programacion orientada a objetos con Java En este capitulo haremos una breve introduccion al lenguaje de Java1, mostrando la relacion entr

Story Transcript

Tema 3: Programación orientada a objetos (I) ‰ ‰ ‰ ‰ ‰ ‰ ‰

Ventajas del enfoque orientado a objetos Clases y Objetos Métodos y Mensajes Algoritmos y Sentencias Construcción de software orientado a objetos Búsqueda de las clases Comenzando a programar en Java

© F.Escolano & M.I.Alfonso

PG -

1

Ventajas del enfoque orientado a objetos (I)

‰ La calidad como objetivo de la producción de software

‰ ¿Qué es la calidad? Conjunto de características que debe presentar un producto software (factores internos y externos) Corrección Robustez Fiabilidad Extensibilidad

Reutilización Eficiencia Portabilidad Facilidad de uso

‰ El enfoque orientado a objetos favorece la © F.Escolano & M.I.Alfonso

calidad PG -

2

1

Clases y Objetos

‰ Sistema orientado a objetos = Conjunto de OBJETOS, pertenecientes a alguna CLASE, que se comunican mediante MENSAJES

‰ ¿Qué es un objeto? Es una entidad observada por el sistema, que encapsula un conjunto de OPERACIONES y un ESTADO

‰ ¿Qué es una clase? Es una ABSTRACCIÓN de las propiedades comunes y comportamiento de un conjunto de objetos

© F.Escolano & M.I.Alfonso

PG -

3

Objetos (I)

‰ Representación de un objeto: nombreObjeto: clase

Identificación

atributo1= valor_atributo atributo2= valor_atributo ... attributoN= valor_atributo

Propiedades

operación1(parámetros) operación2(parámetros) ... operaciónM(parámetros)

Definen la estructura Determinan el ESTADO

Servicios Definen el comportamiento Determinan la INTERFAZ

© F.Escolano & M.I.Alfonso

PG -

4

2

Objetos (II) Clase a la que pertenece

‰ Ejemplo de objeto: empleado: Trabajador nombre= Marcelo fecha_nacim = 25/12/67 sueldo = 150.000 departamento = bancario calcular_edad() aumentar_sueldo() cambiar_depto()

TODO objeto es instancia de alguna CLASE

Instancia = representa a un objeto particular, diferente de otro

© F.Escolano & M.I.Alfonso

5

PG -

Objetos (III)

‰ Relación de una clase con sus instancias: (objeto)

(objeto)

(clase)

daphne:Persona shaggy: Persona (objeto)

Persona freddy: Persona

(objeto) velma:Persona

© F.Escolano & M.I.Alfonso

PG -

6

3

Clases (I)

‰ Representación de una clase: NombreClase atributo1: tipo_atributo atributo2: tipo_atributo ... attributoN= tipo_atributo operación1(parámetros) operación2(parámetros) ... operaciónM(parámetros)

Identificación

Propiedades Comunes a todos los objetos de la clase (*)

Servicios Ocultan la implementación (*)

© F.Escolano & M.I.Alfonso

PG -

7

Clases (II)

‰ Ejemplo de clase: Animal peso altura color numeroDePatas comer() moverse() dormir()

león: Animal (objeto instancia)

caballo: Animal (objeto instancia)

rana: Animal (objeto instancia)

© F.Escolano & M.I.Alfonso

objetos de clase Animal

PG -

8

4

Métodos y Mensajes (I)

‰ Los MÉTODOS determinan el comportamiento de los objetos

‰ Los prototipos de los métodos determinan la INTERFAZ del objeto Conocer la interfaz de un objeto es indipensable para poder comunicarnos con él

‰ La comunicación entre objetos se lleva a cabo mediante MENSAJES

‰ MENSAJE = llamada a un método de un objeto Un mensaje es una petición a un objeto para la obtención de algún comportamiento deseado del mismo © F.Escolano & M.I.Alfonso

PG -

9

Métodos y Mensajes (II)

‰ Esquema del envío de un mensaje puerta mensaje robot puerta.abrir( ) métodos: abrir( ) cerrar( )

© F.Escolano & M.I.Alfonso

PG -

10

5

Algoritmos y Sentencias (I)

‰

¿Qué es un algoritmo? Es una ennumeración precisa y no ambigua de los pasos (sentencias) que hay que seguir para resolver un problema

‰

Ejemplo de algoritmo para realizar una llamada de teléfono 1. 2. 3. 4. 5. 6.

Buscar en nuestra agenda el número de teléfono Descolgar al auricular del teléfono Esperar el tono de marcado Marcar el número de teléfono Hablar con nuestro interlocutor Colgar el auricular © F.Escolano & M.I.Alfonso

PG -

11

Algoritmos y Sentencias (II)

‰

Otro ejemplo

algoritmo entrar_habitacion()

robot mano= brazo_articulado posición_inicial= fuera posición_final= nil levantar_brazo( ) bajar_brazo ( ) apoyar_brazo ( ) empujar( ) adelante( ) parar( ) entrar_habitacion( )

levantar_brazo( ); apoyar_brazo ( ); puerta.abrir( ); empujar( ); bajar_brazo ( ); adelante( ); parar( ); posición_final = dentro;

© F.Escolano & M.I.Alfonso

PG -

12

6

Algoritmos y Sentencias (III)

‰

Tipos de sentencias – Llamadas a métodos provocan un comportamiento del objeto o un cambio de estado en el mismo. Ejemplo: puerta.abrir

– Sentencias de asignación proporcionan un valor a una variable. Tienen la forma variable = valor. Ejemplo: posicion_inicial = dentro

– Sentencias de control Permiten alterar el flujo secuencial de ejecución del algoritmo • Condicionales –

Ejemplo: if (posicion_inicial = fuera) then entrar_habitacion()

• Repetición –

Ejemplo: while (posicion_final != dentro) adelante() © F.Escolano & M.I.Alfonso

PG -

13

Algoritmos y Sentencias (IV)

‰

Llamadas a métodos con parámetros Los parámetros permiten ejecutar un mismo algoritmo con distintas entradas

‰

Ejemplo levantar_brazo(altura)

Un parámetro es una variable de ENTRADA del algoritmo (*)

‰

Posibles llamadas: levantar_brazo(25) levantar_brazo(50) ...

Cada parámetro puede tomar valores de un tipo determinado

(*) Dependiendo del lenguaje también puede constituir una SALIDA del algoritmo © F.Escolano & M.I.Alfonso

PG -

14

7

Construcción de software orientado a objetos

‰

Basa la arquitectura de cualquier sistema software en módulos deducidos de los tipos de objetos que manipula lema de los objetos: "No pregunte primero qué hace el sistema: ¡pregunte a qué se lo hace!"

‰

Se analizan las especificaciones para descubrir las clases del sistema (tipos de objetos)

© F.Escolano & M.I.Alfonso

PG -

15

Búsqueda de las clases (I)

‰

En el documento de requisitos: – Verbos = acciones – Nombres = objetos El ascensor cerrará la puerta antes de moverse hacia otro piso ascensor

‰ ‰

puerta

piso

mover()

Debemos evitar las clases inútiles Debemos evitar pasar por alto las clases importantes

© F.Escolano & M.I.Alfonso

PG -

16

8

Búsqueda de las clases (II)

‰

Debemos evitar una mala elección de una clase Una clase no hace una cosa, sino que ofrece un cierto número de servicios (características) aplicables a los objetos de un cierto tipo

‰

La clase ideal – Tiene asociada una clara abstracción de datos – El nombre de la clase es un nombre o adjetivo – Se dispone de órdenes para consultar y cambiar el estado de una instancia © F.Escolano & M.I.Alfonso

PG -

17

Comenzando a programar en Java

‰ Lenguaje Java – –

sintaxis (forma) semántica (significado)

‰ Programa Java = conjunto de clases ‰ Esquema general de la declaración de una clase: modificadores class nombreclase { // declaración de variables y constantes // constructores modificadores nombreclase (parametros); // métodos de clase modificadores nombre_método (parámetros); // métodos de objeto modificadores nombre_método (parámetros); } © F.Escolano & M.I.Alfonso

PG -

18

9

Comenzando a programar en Java

‰ El nombre de una clase es un identificador Un identificador en Java consta de letras, símbolos de subrayado y dígitos, pero deben empezar por una letra. Ejemplos: abrir_puerta, banderaTricolor, numero4765

‰ Los modificadores indican cómo se van a usar los objetos y los miembros de los objetos. Ejemplos: static, final, public Su significado depende de si se aplican a una clase o a un miembro de una clase

© F.Escolano & M.I.Alfonso

PG -

19

Comenzando a programar en Java

‰ Modificadores aplicados a una CLASE Modificador public abstract final static

Significado Accesible donde se use el paquete No se pueden crear objetos No se pueden crear subclases Clase de nivel máximo, no interna

‰ Modificadores para los MIEMBROS de una clase Modificador public private protected abstract final static

Significado Accesible donde se use la clase Accesible sólo en su clase Accesible en su paquete y sus subclases Los métodos se implementan en las subclases No se puede cambiar el valor No se puede ocultar el método Miembro accesible a través de la clase © F.Escolano & M.I.Alfonso

PG -

20

10

Comenzando a programar en Java

‰ Variables y Constantes Las variables pueden modificar su valor, las constantes NO. Se pueden declarar en cualquier parte de la clase

‰ Declaración de variables

tipo nombre; tipo nombre1, nombre2, nombre3; tipo nombre = valor;

‰ Cualquier variable tiene un tipo asociado – –

puede ser un tipo predefinido, o puede ser un objeto de alguna clase © F.Escolano & M.I.Alfonso

PG -

21

Comenzando a programar en Java

‰ Tipos numéricos predefinidos en Java Tipo byte short int long float double

Representación Entero con signo Entero con signo Entero con signo Entero con signo Punto flotante Punto flotante

‰ Conversión de tipos

Valor inicial 0

Almacenamiento 8 bits

Valor máximo 127

0

16 bits

32767

0

32 bits

2147483647

0

64 bits

1018 18 9,223⋅10

0 0

32 bits 64 bits

1038 4294967295 10308 19 1,84467⋅10

(tipo) expresión;

no hace falta

byte → short → int → long →float → double

conversión necesaria © F.Escolano & M.I.Alfonso

PG -

22

11

Comenzando a programar en Java

‰ Expresiones Son fórmulas que pueden ser evaluadas Operador + − * / %

Significado Suma Resta Multiplicación

Ejemplos Resultado 15 + 2.1 17.1 3 10 − (4 + 3) 136 34 * (12 −8) División 59 9 * 15/5 + 32 Operación módulo 81 % 11 4 (resto de la división entera)

‰ Instrucción de asignación variable = nombre;

El valor asignado a una variable tiene que ser uno de los permitidos por su tipo

© F.Escolano & M.I.Alfonso

PG -

23

Comenzando a programar en Java

‰ Tipos de variables –

Variables de clase El almacenamiento para la variable se crea una sola vez para la clase Se debe anteponer el modificador static al tipo de la variable en su declaración



Variables de objeto (de instancia) Se crean una vez para cada objeto instanciado de esa clase



Variables locales a un método Se declaran en un método y solamente tienen significado dentro de dicho método El ámbito de una variable es la porción de código en donde se puede usar dicha variable © F.Escolano & M.I.Alfonso

PG -

24

12

Comenzando a programar en Java

‰ Ejemplo

class Triple //Almacena y manipula tripletas de números flotantes; { double x,y; float z; //variables de instancia static h; //variable de clase

declaraciones Triple() { x= 0.0; x,y,z pueden usarse en Triple() y sum() y= 0.0; laSuma solamente puede usarse en sum() z= 0.0; } asignación double sum() conversión de tipos { double laSuma= 0.0; laSuma= x + y + (double)z; return laSuma; } } © F.Escolano & M.I.Alfonso

PG -

25

PG -

26

Comenzando a programar en Java

‰ Declaración de Constantes static final tipo nombre = valor; Las declaraciones de constantes pueden ocurrir SÓLO dentro de las clases

‰ Constructores – – –

Utilizados para crear objetos de una clase Tienen el mismo nombre que la clase Puede haber más de un constructor

© F.Escolano & M.I.Alfonso

13

Comenzando a programar en Java

‰ Declaración de objetos modificador nombreClase nombreObjeto = new constructor(parámetros) ;

‰ Ejemplo

class Flores { public Flores () {...} public Flores (int n) {...} ... } Flores margarita = new Flores(); Flores crisantemo = new Flores(2); Flores rosa = new Flores();

la palabra reservada new permite crear instancias de una clase

© F.Escolano & M.I.Alfonso

PG -

27

Comenzando a programar en Java

‰ Métodos –

Métodos de clase Solamente son aplicables a una clase Se debe utilizar el modificador static



Métodos de objeto Solamente son aplicables a un objeto

‰ Modelo de declaración de método modificadores salida nombre (parámetros) { //declaraciones e instrucciones; return expresión; // sólo para métodos con resultado }

© F.Escolano & M.I.Alfonso

PG -

28

14

Comenzando a programar en Java

‰ "Salida" puede tomar los valores – – –

void Ejemplo: void abrir(); tipo predefinido Ejemplo: double sum(); una clase Ejemplo: Triple buscar();

‰ Llamadas a métodos método(parámetros); // declarado en esa clase objeto.método(parámetros); //declarado en otro objeto nombreClase.método(parámetros); //declarado static en //otra clase

© F.Escolano & M.I.Alfonso

PG -

29

Comenzando a programar en Java

‰ Parámetros – –

En la declaración de un método Ejemplo: public aumentar(25) { ... }; En la llamada a un método Ejemplo:

int calcular_años(int año_cese, int año_alta) {...} calcular_años (20,10); calcular_años(2*4,1+6);

es equivalente a int año2 = 20; int año1 = 10; calcular_años (año2,año1); © F.Escolano & M.I.Alfonso

PG -

30

15

Comenzando a programar en Java

‰ Esquema mínimo de un programa class NombreClase { public static void main (String [ ] nombreArg) { //declaraciones e instrucciones } }

‰ Ejemplo de un programa que no hace nada class Nada { public static void main (String [ ] nombreArg) { } }

© F.Escolano & M.I.Alfonso

PG -

31

Comenzando a programar en Java

‰ Paquete = conjunto de clases relacionadas lógicamente y que se encuentran implementadas en un mismo fichero Ejemplos: io, text, awt, applet, awt.event

‰ Acceso a un paquete de Java import java.nombrePaquete.*;

© F.Escolano & M.I.Alfonso

PG -

32

16

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.