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

Documentos relacionados
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Elementos de un programa en C

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Computación II. Introducción a Visual Basic

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Tema 2. El lenguaje JAVA

PROGRAMACION ORIENTADA A OBJETOS EN C++

Modulo 11. Clases y Objetos en Java

Programación Orientada a Objetos (POO)

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Ficha de Aprendizaje N 13

4. Operadores Operador asignación

Estructuras de Datos Declaraciones Tipos de Datos

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Programación Estructurada

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Lección 2 Introducción al lenguaje C

El lenguaje C. 1. Identificadores, constantes y variables

Diseño Basado en Componentes. Curso 2008 / 09

Tema 3. Programación orientada a objetos en Java (Parte 1)

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

GUÍA DE ESTILO EN JAVA

Curso de Java POO: Programación orientada a objetos

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

LENGUAJE. Tema 2 Elementos de un programa

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

FUNDAMENTOS DE INFORMÁTICA

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Elementos léxicos del lenguaje de programación Java

Principios de Computadoras II

Guía práctica de estudio 04: Clases y objetos

Repaso de las características más importantes de la programación Java y su adaptación a Android

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Derechos de Acceso: COMPOSICION

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Curso Introducción JAVA Pág.: 1

Guía - Taller # 2 (JAVA)

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Tema: Entorno a C# y Estructuras Secuenciales.

Fundamentos de Programación 2017-I

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Expresiones y sentencias

ESCUELA DE INFORMÁTICA

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Tema 13: Apuntadores en C

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Manual de turbo pascal

Aplicaciones de Escritorio

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Forma Básica Clase Java

Programación estructurada (Introducción a lenguaje C)

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Fundamentos de programación JAVA

Guía práctica de estudio 05: Diagramas de flujo

1 ELEMENTOS BASICOS DEL LENGUAJE

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Java para programadores

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Lenguaje de programación con JAVA

Java para no Programadores

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Universidad de Managua

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Unidad II: Análisis semántico

Definición de Memoria

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

Fundamentos de Programación Visual Basic

Estatutos de Control C# Estatutos de Decisión (Selección)

Clase adicional 2. Estructuras básicas de control. Temas

Tema II: Metodología para la construcción de programas

Capítulo 16. Diagrama de Clases UML

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

1

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Transcripción:

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 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 calidad 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 3 Objetos (I) Representación de un objeto: nombreobjeto: clase atributo1= valor_atributo atributo2= valor_atributo... attributon= valor_atributo operación1(parámetros) operación2(parámetros)... operaciónm(parámetros) Identificación Propiedades Definen la estructura Determinan el ESTADO Servicios Definen el comportamiento Determinan la INTERFAZ 4 2

Objetos (II) Ejemplo de objeto: empleado: Trabajador nombre= Marcelo fecha_nacim = 25/12/67 sueldo = 150.000 departamento = bancario Clase a la que pertenece TODO objeto es instancia de alguna CLASE calcular_edad() aumentar_sueldo() cambiar_depto() Instancia = representa a un objeto particular, diferente de otro 5 Objetos (III) Relación de una clase con sus instancias: (objeto) shaggy: Persona (clase) daphne:persona (objeto) (objeto) Persona (objeto) freddy: Persona velma:persona 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 (*) 7 Clases (II) Ejemplo de clase: Animal peso altura color numerodepatas comer() moverse() dormir() león: Animal (objeto instancia) rana: Animal (objeto instancia) caballo: Animal (objeto instancia) objetos de clase Animal 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 9 Métodos y Mensajes (II) Esquema del envío de un mensaje robot mensaje puerta.abrir( ) puerta métodos: abrir( ) cerrar( ) 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. Buscar en nuestra agenda el número de teléfono 2. Descolgar al auricular del teléfono 3. Esperar el tono de marcado 4. Marcar el número de teléfono 5. Hablar con nuestro interlocutor 6. Colgar el auricular 11 Algoritmos y Sentencias (II) Otro ejemplo robot mano= brazo_articulado posición_inicial= fuera posición_final= nil levantar_brazo( ) bajar_brazo ( ) apoyar_brazo ( ) empujar( ) adelante( ) parar( ) entrar_habitacion( ) algoritmo entrar_habitacion() levantar_brazo( ); apoyar_brazo ( ); puerta.abrir( ); empujar( ); bajar_brazo ( ); adelante( ); parar( ); posición_final = dentro; 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() 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 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) 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 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 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); 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 19 Comenzando a programar en Java Modificadores aplicados a una CLASE Modificador Significado public Accesible donde se use el paquete abstract No se pueden crear objetos final No se pueden crear subclases static Clase de nivel máximo, no interna Modificadores para los MIEMBROS de una clase Modificador Significado public Accesible donde se use la clase private Accesible sólo en su clase protected Accesible en su paquete y sus subclases abstract Los métodos se implementan en las subclases final No se puede cambiar el valor No se puede ocultar el método static Miembro accesible a través de la clase 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 21 Comenzando a programar en Java Tipos numéricos predefinidos en Java Tipo Representación Valor inicial Almacenamiento Valor máximo byte Entero con 0 8 bits 127 signo short Entero con 0 16 bits 32767 signo int Entero con signo 0 32 bits 2147483647 long Entero con 0 64 bits 9,223 10 1018 signo float Punto flotante 0 32 bits 4294967295 1038 double Punto flotante 0 64 bits 1,84467 10 10308 Conversión de tipos (tipo) expresión; no hace falta byte short int long float double conversión necesaria 22 11

Comenzando a programar en Java Expresiones Son fórmulas que pueden ser evaluadas Operador Significado Ejemplos Resultado + Suma 15 + 2.1 17.1 Resta 10 (4 + 3) 3 * Multiplicación 34 * (12 136 8) / División 9 * 15/5 + 59 % Operación módulo (resto de la división entera) 32 81 % 11 4 Instrucción de asignación variable = nombre; El valor asignado a una variable tiene que ser uno de los permitidos por su tipo 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 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; y= 0.0; z= 0.0; asignación x,y,z pueden usarse en Triple() y sum() lasuma solamente puede usarse en sum() double sum() conversión de tipos { double lasuma= 0.0; lasuma= x + y + (double)z; return lasuma; 25 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 26 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 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 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 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); 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) { 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.*; 32 16