Conceptos Básicos del Paradigma Orientado a Objetos

Documentos relacionados
Conceptos Básicos del Paradigma Orientado a Objetos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

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

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

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

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

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Datos Elementales y formato de un programa en Java

Construcciones del Lenguaje Java

3.3 Conceptos Básicos del Lenguaje Java

Tema 2. El lenguaje de programación Java (Parte 1)

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

Programación Orientada a Objetos

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

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

Los parámetros: son los campos que se comunican a los métodos de los objetos.

JAVA 1. Introducción

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

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

Estructura de datos y Programación

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

Lección 2 Introducción al lenguaje C

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Introducción a Java. Introducción a Java. Programación I

Java. Introducción a la Programación Orientada a Objetos

Elementos léxicos del lenguaje de programación Java

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

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

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

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

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

Programación Estructurada. Sesión 2:El lenguaje de programación C

Estructuras de Datos Declaraciones Tipos de Datos

4. Operadores Operador asignación

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Principios de Computadoras II

Tema 2: Programación basada en Objetos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

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

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

LENGUAJE. Tema 2 Elementos de un programa

Tema 2. El lenguaje JAVA

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Tema 05: Elementos de un programa en C

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

Bloque II. Elementos del lenguaje de programación Java

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

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

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

Programación Estructurada

Introducción y conceptos de POO

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

PROGRAMACIÓN EN JAVA

Capítulo 3. Introducción a la programación. Continuar

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Fundamentos de Programación 2017-I

Los tipos de datos primitivos

POO: Clases y objetos

Concurso: Cuánto sabes de JAVA?

Fundamentos del Lenguaje de Programación Java

Programación I Teoría I.

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

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

Java para programadores

PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017

Estructuras de control selectivas

Elementos de un programa en C

RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

Tema 1. Herencia y Polimorfismo

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

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Java en 2 horas. Rodrigo Santamaría

Introducción a la Programación

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.

Transcripción:

Conceptos Básicos del Paradigma Orientado a Objetos Programación II M.C Yolanda Moyao Martínez 1

Programación Orientada a Es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicacione s y programas informaticos. Objetos-POO

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.

Era mas fácil adecuar el mundo real a la computadora que al revés. POO El primer lenguaje OO fue Simula 67

Las partes de un coche pueden ser internamente muy complejas pero lo importante es como interactúan entre si Ejemplo

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 auto 1. 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?

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. Ave

Se centra en las características esenciales de algún objeto, en relación a la perspectiva del observador Abstracción

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.

En el objeto vehículo el encapsulamiento significa que el conductor cuando frena, no necesita conocer el sistema de frenado. Ejemplo

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. Servicios +Tipo_Cobertura +Costo +Vigencia +Contratar() +Renmovar() +Cancelar() +Modificar() M.C Yolanda Moyao Martínez 28

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. Servicios_Juan -Tipo_Cobertura -Costo -Vigencia +Contratar() +Renovar() +Cancelar() +Modificar() M.C Yolanda Moyao Martínez 30

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. Ejemplos: int i; char letra; tipo_variable nombre ; // Declaracion de un entero // 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: \t: \b: \r: Salto de línea Tabulador Backspace. 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 Enteros Grupo de operadores Operadores de comparación que devuelven un valor boolean Operadores numéricos, que devuelven un valor int o long Operadores < (menor), <= (menor o igual), > (mayor), >= (mayor o igual), == (igual),!= (distinto) + (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 Coma flotante Booleanos Grupo de operadores Operadores de comparación que devuelven un valor boolean Operadores numéricos, que devuelven un valor float o double Operadores booleanos Operadores < (menor), <= (menor o igual), > (mayor), >= (mayor o igual), == (igual),!= (distinto) + (unario, positivo), - (unario, negativo), + (suma), - (resta), * (multiplicación), / (división), % (resto), ++ (incremento), -- (decremento). == (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,

//muy sencillo public class Primero { Modificador de acceso } Ejemplo public static void main(string[] args) { } Palabra reservada System.out.println( Hola Todos ); Clase Objeto Nombre de la clase Definición del método Llamado del método para imprimir Argumentos del método

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 servicios public 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.

Contratar() Ejemplo

Ejemplo: Contratar public 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

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

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 gaviota águila Vuela Vuela

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); } }

Clases Describe 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

Objeto tierra Clase planetas

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 Versión 1 Versión 2 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++; }