Entorno en Java y Diseño orientado a objetos. ELO-329 Diseño y programación orientados a objetos 1s09

Documentos relacionados
Introducción a Java. Diseño y Programación Orientados a Objetos 1

Programación Orientada a Objetos en Java

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

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

Principios de Computadoras II

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

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Introducción a la Programación en Java

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

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

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

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

Programación Orientada a Objetos

Modulo 11. Clases y Objetos en Java

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

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

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Principios de Computadoras II

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

Java en 2 horas. Rodrigo Santamaría

Resultado de Aprendizaje:

Universidad Salesiana de Bolivia

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Conceptos de Programación Orientada a Objetos

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

JAVA 7 Los fundamentos del lenguaje Java

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

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Bloque III. Herramientas

Lenguaje de programación con JAVA

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

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

FUNDAMENTOS DE INFORMÁTICA

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

Java para no Programadores

1

Estructuras básicas de la programación en Java

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Programación Interactiva Introducción a Java. Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Paquete de curso Programación Java SE (Exclusivo Estudiantes y catedráticos)

TECNOLOGÍAS DE DESARROLLO: JAVA

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

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

Usando el Sistema Operativo

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

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

Seminario de Java. Contenido

Programación en Java. Temario. David Contreras Bárcena

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

PROGRAMACION ORIENTADA A OBJETOS EN C++

Constructores y Destructores

Clase adicional 3. Métodos. Temas

Programación con Visual C#

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

Java Básico. Introducción a Java. Copyright

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

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

Bloque II. Herramientas

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Programador en Plataforma Java y XML

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

Java y Eclipse. Lenguajes y Entornos de Programación Libre

Tema 1. Introducción a JAVA

Derechos de Acceso: COMPOSICION

Tema: Clases y Objetos en C#. Parte II.

ESCUELA DE INFORMÁTICA

Lenguaje de Programación

Guía del Curso Analista Programador Java: Business Apps Expert

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

CURSO EXPERTO EN MACROS CON MICROSOFT EXCEL NIVEL AVANZADO

Capítulo 16. Diagrama de Clases UML

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

LENGUAJE PHP Y CAKEPHP FRAMEWORK

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Problemática con la actualización de Java 7 update 45

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Java desde Consola Utilizando Java sin Path

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

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

1. INTRODUCCIÓN El lenguaje de Programación Java. Características del lenguaje. 8 A. García-Beltrán y J.M. Arranz

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

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

Curso de Java POO: Programación orientada a objetos

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Tema 7.- Fundamentos de la Programación Orientada a Objetos

(volver a Tabla de Contenidos)

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

Transcripción:

Entorno en Java y Diseño orientado a objetos ELO-329 Diseño y programación orientados a objetos 1s09 1

Java: Motivaciones de su origen Deja atrás características problemáticas: Punteros Asignación de memoria (malloc) Herencia múltiple Sobrecarga de operadores Independiente de: Tipo de computador Sistema operativo Sistema de ventanas (win32, Motif, etc...) 2

Compilación Tiempo Compilación PC Tiempo Carga y ejecución PC +JVM Texto fuente Java Mac bytecode Mac +JVM *unix *unix +JVM JVM es la Java Virtual Machine, Una para cada plataforma. 3

Trabajando con Java Diseño Creación programa: Con editor crear programa *.java (FirstSample.java) Editor Hacer uso de documentación en manuales.elo.utfsm.cl FirstSample.java Compilación: vía el comando el línea $ javac FirstSample.java $javac FirstSample.java Ejecución: $java FirstSample FirstSample.class Hay ambientes de trabajo más amigables para hacer estas tareas. $java FirstSample 4

Editores de texto Recomiendo aprender a digitar bien. Emacs (win o Linux), Kate (linux), Usar ambientes integrados de Desarrollo (IDE) como: Jgraps Eclipse netbean Hay otros, ver conveniencia. No usar notepad o similar. 5

Sistema de Desarrollo Lo puede bajar de SUN: http://java.sun.com http://www.elo.utfsm.cl/~install Versiones: Java EE (Enterprice Edition), Java SE (Standar Edition), Java ME (Micro-Edition) 6

Cómo diseñamos programas de computación? 7

Modelado En todas las aplicaciones, los programadores crean modelos Problema Modelo Sub-modelos Clima Atmósfera Nubes, mar, viento Obra Civil Puente Torres, cubierta, pilares Contabilidad Libro contable Clientes registro, registro ahorros Juego Mundo virtual Dragones, calabozos Programas modelas el comportamiento de objetos del mundo real Necesitamos una formalidad para crear modelos de software de los objetos que un programa maneja El diseño de software orientado a objetos usa Clases de objetos (class) Métodos que manipulan esos objetos 8

Diseño Orientado a Objetos Clases Son las abstracciones del sistema. Definen el comportamiento de un grupo similar de objetos Clase Puente Dragon Cuenta bancaria Comportamiento Colapsa con vientos sobre 50km/h. Flexión de cubierta proporcional a la carga. Puede ser creado con más de una vida. Si le cae un rayo de más de 4 GVolts, se encoge y transforma en un montículo de polvo de oro. Cada cuenta puede tener distinta tasa de interés. Sólo se permite retiros de hasta 200 K$ diarios. 9

Diseño orientado a objetos Clases Las definiciones de clases son abstracciones. Ellas definen el comportamiento de la abstracción. El cómo es logrado ese comportamiento no es materia de quien usa la clase, sino sólo de quien la implementa. Las clases son cajas negras. En su implementación las clases definen también atributos para las abstracciones. 10

Calculadora 11

Calculadora 12

Calculadora 13

Calculadora 14

Clases Cada clase define comportamientos o responsabilidades o mensajes que pueden ser enviados a la clase Puntos Líneas Tienen distancia desde origen puede ser trasladados,... tienen largo, pendiente puede interceptar otra,... Rectángulos tienen largo, ancho, diagonal perímetro, área,. 15

Una Clase- múltiple objetos Podemos instanciar (crear) múltiple objetos de una misma clase crear puntos en diferente lugar del espacio crear conjunto de líneas - todas con diferentes pendientes y largos 16

Clases e invocación de métodos Luego de crear un objeto, podemos aplicar operaciones de su clase a éste Encontrar la distancia de un punto al origen Mover un punto a una posición nueva Determinar el largo de la línea Preguntar si dos líneas se interceptan Formalmente, decimos que invocamos métodos o enviamos mensajes de la clase a un objeto de la clase. 17

Clases Cada clase tiene dos componentes atributos especifican o califican el estado o las características individuales de un objeto Punto: Rectángulo: coordenadas x, y ancho, alto RectanguloLleno: color (red, green, blue,. ) métodos Sigue => 18

Clases Métodos Operaciones o servicios sobre objetos de una clase Crear (constructor) y destruir objetos obtener valores de los atributos de un objeto Encontrar coordenadas x, y de un punto Encontrar el largo de una línea Encontrar el perímetro de un rectángulo modificar los atributos de un objeto trasladar un punto cambiando sus coordenadas estirar un línea expandir un rectángulo cambiando su ancho y alto 19

Ejemplo de clase Rectangle Consideremos primero los métodos: Rectangle crea (construye) un rectángulo getwidth obtiene el ancho getheight obtiene el alto setwidth cambia el ancho SetHeight cambia el alto para hacer la clase más útil, definimos getperimeter getarea calcula el perímetro calcula el área 20

Ejemplo de clase Rectangle Consideremos primero los métodos: Rectangle getwidth getheight setwidth SetHeight Notar crea la convención (construye) de un nombres rectángulo en Java obtiene operationtarget el ancho obtiene el alto cambia el ancho cambia el alto Mayúscula inicial minúscula para hacer la clase más útil, definimos No es obligación.. getperimeter calcula Fuertemente el perímetro recomendada - getarea calcula la API el área de Sun la usa 21

Ejemplo de clase- Código java class Rectangle { private double width, height; // atributos Rectangle.java public Rectangle( double w, double h ) { // constructor width = w; // fija atributos según height = h; // parámeteros double Height( ) { return height; // simplemente retorna // valor de atributo double Width( ) { return width; double getarea( ) { return width*height; // retorna el valor de un atributo // el cual es calculado double getperimeter( ) { return 2.0*(width + height); void setheight( double h ) { height = h; // actualización (mutador) // cambia el valor de un atributo void setwidth( double w ) { width = w; 22

Ejemplo de clase- Código java class Rectangle { private double width, height; // atributos Rectangle.java class Rectangle { public Rectangle( double w, double h ) { // constructor width = w; // fija atributos según height = h; // parameteros double Height( ) { return height; // simplemente retorna // valor de atributo double Width( ) { return width; private double width, height;... Nombre de la clase double getarea( ) { return width*height; // retorna el valor de un atributo // el cual es calculado double getperimeter( ) { return 2.0*(width + height); // atributos void setheight( double h ) { height = h; // actualización (mutador) // cambia el valor de un atributo void setwidth( double w ) { width = w; 23

Ejemplo de clase- Código java class Rectangle { private double width, height; // atributos class Rectangle { Rectangle.java public Rectangle( double w, double h ) { // constructor width = w; // fija atributos según height = h; // parameteros double Height( ) { return height; // simplemente retorna // valor de atributo double Width( ) { return width; private double width, height;... Nombre de la clase double getarea( ) { return width*height; // retorna el valor de un atributo // el cual es calculado double getperimeter( ) { return 2.0*(width + height); Delimitadores de bloque void setheight( double h ) { height = h; // atributos // actualización (mutador) // cambia el valor de un atributo void setwidth( double w ) { width = w; 24

Ejemplo de clase- Código java class Rectangle { private double width, height; // atributos Rectangle.java class Rectangle { public Rectangle( double w, double h ) { // constructor width = w; // fija atributos según height = h; // parameteros double Height( ) { return height; // simplemente retorna // valor de atributo double Width( ) { return width; private double width, height;... Nombre de la clase double getarea( ) { return width*height; // retorna el valor de un atributo // el cual es calculado double getperimeter( ) { return 2.0*(width + height); void setheight( double h ) { height = h; // atributos Atributos Delimitadores de bloque // actualización (mutador) // cambia el valor de un atributo void setwidth( double w ) { width = w; 25

Ejemplo de clase- Código java class Rectangle { private double width, height; // atributos Rectangle.java class Rectangle { public Rectangle( double w, double h ) { // constructor width = w; // fija atributos según height = h; // parameteros Nombre de la clase double Height( ) { return height; // simplemente retorna // valor de atributo double Width( ) { return width; private double width, height; double getarea( ) { return width*height; // retorna el valor de un atributo // el cual es calculado void setheight( double h ) { height = h; // atributos... Atributos double getperimeter( ) { return 2.0*(width + height); Notar: salvo excepciones, los atributos deben ser privados private! En buenos diseños, void setwidth( las double clases w ) { son width = w; Cajas negras! // actualización (mutador) // cambia el valor de un atributo 26

Cajas negras? Una clase modela el comportamiento de algún conjunto de objetos similares en comportamiento. Los métodos definen el comportamiento de una clase. Atributos? El implementador los elige No son de incumbencia del usuario Siempre y cuando la implementación sea correcta! Ocultarlos en una caja negra El acceso a ellos vía métodos Ejemplo... Puntos en espacio 2-D 27

Principio de ocultación de la información Nuestro usuario intrigado puede ver nombre de la clase métodos: XCoord, YCoord, Distance, Angle 28

Principio de ocultación de la información Mirando dentro, el usuario puede ver dos conjuntos de atributos diferentes! 29

Principio de ocultación de la información El usuario se da cuenta que no necesita saberlo! El usuario sólo quiere usar los puntos para hacer líneas! 30