Algunas características de los lenguajes de programación orientados a objetos son:



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

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

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

Elementos léxicos del lenguaje de programación Java

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

Programación Orientada a Objetos con Java

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

Curso Introducción JAVA Pág.: 1

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Objetivo de aprendizaje del tema

Curso de Java POO: Programación orientada a objetos

Introducción al lenguaje de programación java

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Tema 1. Introducción a JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

2. Estructura de un programa en Java

Computación III. Objetivo de aprendizaje del tema

Java en 2 horas. Rodrigo Santamaría

Java Inicial (20 horas)

Programación orientada a objetos

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

Introducción a la programación orientada a objetos

Introducción a la Programación en Java. Page 1

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

TEMA 2. Agenda. Fundamentos de JAVA

Fundamentos del Lenguaje de Programación Java

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

INF 473 Desarrollo de Aplicaciones en

INTRODUCCIÓN A JAVA. Índice

Introducción a la Programación Orientada a Objetos

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

2.2.- Paradigmas de la POO

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS


Programación Orientada a Objetos en Java

Modulo 1 El lenguaje Java

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Programador en Plataforma Java y XML

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

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

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

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

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.

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Universidad de Cantabria

POLIMORFISMO "una interfaz, múltiples métodos".

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

9. Objetos y clases Clases

8. Sentencia return y métodos

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

JAVA PARA PRINCIPIANTES

Diseño orientado a los objetos

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

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

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

CAPITULO 3 VRML-JAVA-WWW

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Módulo 2. Inicio con Java

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Programación Orientada a Objetos. Java: Excepciones

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

19. Packages o paquetes

Programación en Java. Programación en OO

Preliminares. Tipos de variables y Expresiones

Modelo de Objetos Distribuidos

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

JAVA. 40 horas 60 días

El lenguaje de programación Java

PART II: Moviendo al jugador

Compilación y ejecución de programas en Java.

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

Tema 3 Elementos básicos de programación

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

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

2.1. Introducción al lenguaje Java

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Uso de excepciones en Java

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Objetivo de aprendizaje del tema

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador?

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

James Gosling, creador de Java

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

FACULTAD DE INGENIERÍA

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

Transcripción:

Programación Orientada a Objetos (POO) La programación orientada a objetos es un paradigma de programación que, como su nombre lo indica, se basa en el uso de objetos estructuras de datos que consisten en atributos y métodos para diseñar aplicaciones y programas de computadoras. Clase Una clase es el modelo/plano/template que se utiliza para crear instancias de sí mismo conocidas como: instancias de clase, objetos de clase o simplemente objetos. Una clase define los miembros que le permiten a un objeto tener un estado y un comportamiento. Los miembros conocidos como campos de datos o atributos permiten que un objeto tenga un estado. Los miembros conocidos como métodos determinan el comportamiento del objeto. Una clase generalmente representa a un sustantivo: una persona, un lugar o una cosa (posiblemente abstracta). Objeto o instancia Una instancia es una ocurrencia de una clase. Las instancias comparten los mismos atributos pero típicamente difieren en el contenido de dichos atributos. En tiempo de ejecución, cuando la máquina virtual de java (JVM) encuentra la palabra clave new, usará la clase adecuada para crear una instancia de dicha clase. Este objeto tendrá su propio estado y acceso a todos los métodos de comportamiento definidos por su clase. Estado Cada objeto tendrá su propio conjunto único de atributos (variables) como están definidos en su clase. Colectivamente, los valores asignados a los atributos de un objeto componen el estado del mismo. Comportamiento Cuando un programador crea una clase, crea métodos para dicha clase. Los métodos es donde se encuentra almacenada la lógica de la clase. Es en ellos donde se realiza el verdadero trabajo: es donde se ejecutan los algoritmos y se manipulan los datos. Abstracción Algunas características de los lenguajes de programación orientados a objetos son: La abstracción es el proceso de definir programas y sus datos con una representación similar a su significado (lo que representan), escondiendo los detalles de implementación. La abstracción trata de reducir y minimizar los detalles de manera que el programador se pueda concentrar en unos cuantos conceptos al mismo tiempo. Encapsulamiento

Muchos lenguajes soportan el concepto de ocultamiento de información o encapsulamiento, típicamente con especificadores de acceso. El diseñador puede definir qué variables de instancia y métodos de los objetos de una clase son visibles. En C++ y Java esto se consigue con las especificaciones private, protected y public. Sólo las variables y métodos definidos como públicos en un objeto serán visibles por todos los objetos. En cuanto a las subclases, que heredan las estructuras de las superclases, el diseñador puede controlar qué miembros de las superclases son visibles en las subclases. En el caso de Java y C++ los especificadores de acceso (private, protected, public) de los miembros de la superclase afectan también a la herencia. Una breve explicación de los especificadores de acceso mencionados: private restringe el acceso a la propia clase. Sólo métodos que son parte de la misma clase pueden acceder a miembros privados. protected permite a la propia clase y a sus subclases el acceso al miembro determinado. public significa que cualquier código puede accesar al miembro mediante su nombre. Modularidad La modularidad o programación modular consiste en dividir o segmentar un programa en módulos o secciones pequeñas de código de manera que se mucho más entendible y manejable. Herencia En la programación orientada a objetos, la herencia es una manera de modularizar y reutilizar el código, creando nuevos objetos basados en objetos previamente creados. Con ello se evita el rediseño, la modificación y verificación de la parte ya implementada. Las nuevas clases se conocen como Subclases o Clases hijas y heredan los atributos y el comportamiento (métodos) de las clases preexistentes, conocidas como Superclases o Clases padre. Estas relaciones de herencia dan lugar a la existencia de una jerarquía de clases. Interfaces Un poderoso compañero de la herencia es el uso de interfaces. Las interfaces son como superclases 100% abstractas que definen los métodos que una subclase debe de tener, pero no como deben de ser implementados. Polimorfismo Existen algunos conceptos que suelen confundirse con el polimorfismo:

Sobrecarga.- Es cuando se tienen 2 o más métodos que se llaman igual pero que reciben parámetros diferentes. Sobreescritura.- Es cuando una clase hija reemplaza el método de la super clase o clase padre con un método propio. El polimorfismo es enlazamiento tardío, por ejemplo, se cuando se llaman los métodos de la clase padre pero es hasta el tiempo de ejecución que la aplicación conoce cuál es el objeto en sí que se utiliza, puede ser una clase hija cuyos métodos son diferentes. Esto es posible ya que cualquier clase hija puede ser utilizada cuando se define una clase padre (particularmente obvio en las clases abstractas). Diferencias entre polimorfismo y sobrecarga La sobrecarga se da siempre dentro de una sola clase, mientras que el polimorfismo se da entre clases distintas. En definitiva: La sobrecarga se resuelve en tiempo de compilación utilizando los nombres de los métodos y los tipos de sus parámetros; el polimorfismo se resuelve en tiempo de ejecución del programa, esto es, mientras se ejecuta, en función de a qué clase pertenece un objeto. Qué es Java? Java es un lenguaje de programación desarrollado en 1995 originalmente por James Gosling de Sun Microsystems (que ahora es un subsidiario de la corporación Oracle). El lenguaje deriva gran parte de su sintaxis de los lenguajes C y C++ pero tiene un modelo de objeto más simple y capacidades disminuidas de menor nivel. Las aplicaciones Java se compilan a código byte (bytecode o archivo class) que puede ser ejecutado en cualquier Máquina Virtual de Java (JVM, Java Virtual Machine) independientemente de la arquitectura de la computadora. Java es un lenguaje de propósito general, concurrente, basado en clases y orientado a objetos que está diseñado específicamente para tener la menor cantidad de dependencias de implementación como sea posible. Su propósito es que los desarrolladores escriban una vez, ejecuten donde sea ( write once, run anywhere ). Java es actualmente uno de los lenguajes de programación más populares, particularmente para aplicaciones web cliente-servidor. Plataforma Como se mencionó anteriormente, una característica de Java es la portabilidad, lo cual significa que un programa escrito en Java debe de poder ejecutarse en cualquier hardware/sistema operativo. Esto se logra compilando el código a una representación intermedia conocida como Java bytecode, en lugar de compilarlo directamente a código máquina específico para una plataforma. Las instrucciones en Java bytecode son análogas al código máquina, pero son interpretadas por una máquina virtual desarrollada específicamente para el hardware huésped. Los usuarios finales usan el Entorno de Ejecución de Java (JRE, Java Runtime Environment) el cual

está instalado en su máquina para las aplicaciones Java locales o en un navegador Web para los applets Java. A cambio, la existencia de ese paso intermedio hace que los programas Java no son tan rápidos como puede ser un programa realizado en C, C++ o Pascal y optimizado para una cierta máquina en concreto. Los programas en Java tienen la reputación de ser más lentos y requerir más memoria que los escritos en C. De cualquier forma, la velocidad de ejecución de los programas en Java ha mejorado significativamente con la introducción de Just-in-time compilation en 1998 para Java1.1, la adición de características del lenguaje para un mejor análisis del código y diversas optimizaciones de la máquina virtual. Java 2.0 tiene aproximadamente la mitad del desempeño del código en C, sin embargo, se espera que esto mejore con Java 5.0. Java soporta el manejo de hilos (threads), excepciones, está preparado para la realización de aplicaciones cliente/servidor, es independiente de la máquina, es más fiable y seguro que C++ (no existen los punteros) y cada vez incorpora más facilidades para la creación y manipulación de gráficos, para el acceso a bases de datos, etc. Qué hace falta para usar un programa creado en Java? La mayoría de los equipos actualmente tienen preinstalada por default la máquina virtual de Java y la gran mayoría de los navegadores web actuales tienen soporte nativo. Sin embargo, en caso de que no sea así, basta con instalar en el ordenador de destino el JRE. Qué hace falta para crear un programa en Java? La herramienta más habitual para crear programas en Java es la que suministra Sun: el Kit de Desarrollo Java (JDK, Java Development Kit). Es de libre distribución y se puede conseguir en: Java JRE and JDK download http://www.oracle.com/technetwork/java/javase/downloads/index.html Sun además provee su propio IDE o Entorno de Desarrollo Integrado (Integrated Development Environment) llamado Netbeans, el cual puede ser obtenido en la misma página. Java API En la API de Java se puede encontrar la descripción: atributos, comportamiento, subclases y superclases, de todas las clases existentes en Java. Java API (Application Programming Interface) http://download.oracle.com/javase/6/docs/api/ Tipos primitivos de datos en JAVA Los datos primitivos en Java son 8: byte short

int long float double char boolean Nombre Valor mínimo Valor Máximo Tamaño (bytes) byte -128 127 1 short -32,768 32,767 2 int -2.147.483.648 2.147.483.647 4 long -9.223.372.036.854.775.808 9.223.372.036.854.775.807 8 float 1.401298E-45 3.402823E38 4 double 4.94065645841247E-324 1.79769313486232E308 8 Los otros dos tipos de primitivos no son para datos numéricos: char es una letra del alfabeto, un dígito numérico o un símbolo de puntuación (2 bytes). boolean utilizado para evaluar condiciones, tiene 2 estados únicamente: true y false. Se debe tener cuidado de no confundir un tipo primitivo con su clase envolvente (Wrapper Class). Las clases envolventes de los tipos primitivos se utilizan para dotar de métodos a los tipos primitivos cuando esto es necesario. Las clases envolventes se escriben igual que su primitivo correspondiente pero con mayúscula (ej. Int, Byte, Boolean, etc.). Declaración de variables int a; byte x; boolean nuevo; short z, w, y; double a, b, c; Se indica primero el tipo de la variable y a continuación el nombre: Se pueden declarar distintas variables al mismo tiempo: Además se pueden inicializar al momento de ser declaradas: int x = 5, y = 8; boolean v=true, f=false; Tipos de variables

Variables Locales.- Las variables que se encuentran dentro de un método se conocen como variables locales y únicamente son conocidas por el método en el cual fueron declaradas. Variables globales.- Las variables que se encuentran fuera de cualquier método se conocen como variables globales y pueden ser utilizadas por cualquier método que las requiera. Nombres legales para las variables o identificadores Los nombres de variables (identificadores) deben comenzar con una letra, un signo de moneda $ o un carácter de conectividad como un guión bajo _. Los identificadores no pueden comenzar con número. Después del primer caracter, los identificadores pueden contener cualquier combinación de letras, números, signos de moneda o caracteres de conectividad. En la práctica, no existe un límite para el tamaño de un identificador. No se pueden utilizar palabras reservadas por JAVA como identificadores. Las palabras reservadas por Java son: abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile y while. Los identificadores son sensibles a mayúsculas y minúsculas, nombre y Nombre son dos identificadores distintos. Operadores matemáticos Operadores relacionales + Suma - Resta * Multiplicación / División (cociente) % Residuo >> Desplazamiento a la derecha << Desplazamiento a la izquierda >>> Desplazamiento derecha con relleno de 0 & Producto lógico and Suma lógica or ^ Suma exclusiva xor ~ Complemento

> Mayor que < Menor que >= Mayor o igual que <= Menor o igual que == Igual!= Diferente Operadores lógicos && And Or Not Estructuras de control de flujo if - Estructura if (condición) { sentencias a realizar si se cumple la condición if (condición){ sentencias a realizar si se cumple la condición else{ Sentencias a realizar si no se cumple la condición switch - Estructura switch (expresion) { case valor1: sentencias1; case valor2: sentencias2; case valor3: sentencias3; default: sentenciasdefault; //opcional Ej. switch ( x * 10) { case 30: System.out.println( "El valor de x era 3" ); case 50: System.out.println( "El valor de x era 5" );

case 60: System.out.println( "El valor de x era 6" ); default: System.out.println( "El valor de x no era 3, 5 ni 6" ); Ej. switch ( x ) { case 1: case 2: case 3: System.out.println( "El valor de x estaba entre 1 y 3" ); case 4: case 5: System.out.println( "El valor de x era 4 o 5" ); case 6: System.out.println( "El valor de x era 6" ); valortemporal = 10; System.out.println( "Operaciones auxiliares completadas" ); default: System.out.println( "El valor de x no estaba entre 1 y 6" ); Operador condicional condicion? resultado_si cierto : resultado_si_falso Ej. int mayor = (x >= y)? x : y; for - Estructura for(inicio; condición de continuación; incremento){ sentencias a realizar la cantidad de veces que delimiten los parámetros Ej. for (int contador=0; contador <= 10; i++){ while - Estructura

while (condicion de continuacion){ do{ while (condición de continuación) Conventions Classes and interfaces The first letter should be capitalized, and if several words are linked together to form the name, the first letter of the inner words should be uppercase (a format that's sometimes called "camelcase"). For classes, the names should typically be nouns. For example: Dog Account PrintWriter For interfaces, the names should typically be adjectives like Runnable Serializable Methods The first letter should be lowercase, and then normal camelcase rules should be used. In addition, the names should typically be verb-noun pairs. For example: getbalance docalculation setcustomername