PROGRAMACIÓN ORIENTADA A OBJETOS. Java se parece mucho a C pero sin todo lo que nos traía problemas.

Documentos relacionados
El lenguaje de Programación C. Fernando J. Pereda

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.

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

La clase estándar Scanner

La Plataforma J2SE (Java 7) PROGRAMA HOLA MUNDO

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

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

Objective C (Desarrollo con Apple)

Java para programadores

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

James Gosling, creador de Java

GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)

FACULTAD DE INGENIERÍA

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

FAMILIARIZANDONOS CON JAVA

Java en 2 horas. Rodrigo Santamaría

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Ejercicios de evaluación de fundamentos de programación en Java

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

LENGUAJE. Tema 1 - Introducción

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

TÉCNICAS DE PROGRAMACIÓN Lenguaje Java. Introducción a Java Daniel Finol

Guía - Taller # 2 (JAVA)

Introduciendo datos desde el

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

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

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

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

Tema 2. El lenguaje JAVA

2. Estructura de un programa en Java

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

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

Ubicación e historia

Tutorial básico del entorno de desarrollo Eclipse.

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Clases y Objetos. Informática II Ingeniería Electrónica

Ejercicios del tema 7: Clases y objetos

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

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

1. Manejo de memoria estática 2. Manejo de memoria dinámica

15. Parámetros o argumentos

Introducción al lenguaje de programación java

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

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

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

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

EXAMEN PARCIAL 23 de Octubre de 2015 Programación I. Grado en Matemáticas e Informática ETSIINF UPM

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

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Metodología y Tecnología de la Programación

PRÁCTICA No1 POO Estructuras de Control Parte I

Soluciones Ejercicios Tema 3

JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Elementos del lenguaje Java

Java es el lenguaje de programación que


2.- PROGRAMACIÓN ORIENTADA A OBJETOS

Lección 10: Estructuras de Control. Autor: José Navarro. Referencias: C. Horstmann, Big Java Late Objects, Caps 3-4

Estructuras básicas de la programación en Java

Computación III. Objetivo de aprendizaje del tema

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

RESPUESTA Sí, una clase puede manejar objetos. Aunque esta frase es bastante ambigua, apréndetela de memoria para el examen y no le des más vueltas.

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

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

5. Sentencias selectivas o condicionales

Introducción a la Programación en Java

Objetivo de aprendizaje del tema

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.

Experto Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles. Sesión 1: Introducción al Lenguaje Java

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014

Capítulo 1. Creación y uso de objetos. 1.1 Creación de objetos

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

FACULTAD DE INGENIERÍA

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

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

Fundamentos del Lenguaje de Programación Java

TEMA 5. EXCEPCIONES EN JAVA DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS

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

El lenguaje de programación Java

Programación Estructurada

Programación orientada a objetos

Primer Parcial Septiembre 5 de 2009

Tema 7: Polimorfismo. Índice

Programación de Sistemas

8. Sentencia return y métodos

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

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

Curso Introducción JAVA Pág.: 1

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

Estructura de datos tipo vector.

Tema: Introducción a Java y Netbeans

Tema: Arreglos de Objetos en C++.

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

! Una variable declarada con final no puede volver a ser reinicializada. numero = 2;! ! Para definir constantes

Programación Orientada a Objetos en Java

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

Transcripción:

PROGRAMACIÓN Java se parece mucho a C... TEMA1: Introducción Manel Guerrero IGUAL int, double, float, char. +, -, *, /, %, ++, --, ==,!=, >=, <, &&,,!. if else, for, while, do while, switch case. int funcion(tipo_arg nombre_arg) {... return n; DIFERENTE boolean = true o false y byte. Un solo fichero (*.c (pri) y *.h (pub) -> *.java). Pero las cosas pueden ser «public» o «private». En lugar de un exe, un «bytecode».class y JVM. printf, scanf y String.... pero sin todo lo que nos traía problemas. Las variables se inicializan automáticamente a 0/null/false. Esto evita «segmentation faults» porque hemos olvidado una inicialización. No más &, *, ni ->. Porque no hay punteros... Bueno esto no es del todo cierto... Hay «referencias». Y si nos salimos de un vector el programa peta y nos dice a que posición estábamos intentando acceder. Hay una manera de saber el tamaño de un vector. /* Factorial.java */ De hecho ya casi sabemos programar en Java. public class Factorial { // C con "public static" delante public static int factorial(int n) { int i, f; for (f = 1, i = 2; i <= n; i++) { f *= i; return f; public static void main(string[] args) { int x = 6; System.out.println(x + "! = " + factorial(x)); // "String[] args" es nuevo // println() diferente a printf()

Ahora sólo falta aprender la parte de objetos,... C es un lenguaje de programación por procedimientos (procedural programming) y Java es Programación Orientada a Objetos (POO/OOP). Nos falta aprender que es todo esto de: clase, objeto o instancia, atributo, método, etc. Veremos que se parecen mucho a: struct, variable de tipo struct, campo de struct, función. (Un objeto es una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia.) y ver parte de su gran librería de funciones que nos facilita la vida. A la librería le llamamos la API de Java (Application Programming Interface). Contiene todas classes que se nos dan hechas (es como los includes de C). https://docs.oracle.com/javase/8/docs/api/ E incluye herramientas como ahora: arrays (vectores), conjuntos, listas, mapas (diccionarios), etc. A estas herramientas que agrupan objetos se les llamada collections. http://beginnersbook.com/java-collections-tutorials/ Pero, en menos de una hora...... ya sabéis el 70% de cómo programar en Java. Barra de progreso:

Pero, empecemos por el principio Versiones de Java C es un lenguaje de bajo nivel (se parece a como piensa un ordenador). Java y los lenguajes de POO son de alto nivel (se parecen más a como piensa una persona). En Java: Todo es un objeto (o un tipo de objeto). Y, cada objeto es de un tipo. Un objeto puede utilizar otros objetos. Un objeto tiene estado (su memoria con sus variables y otros objetos). Todos los objetos del mismo tipo pueden ser utilizados de la misma forma. Release Year JDK Beta 1994 JDK 1.0 1996 JDK 1.1 1997 J2SE 1.2 1998 J2SE 1.3 2000 J2SE 1.4 2002 J2SE 5.0 2005 Java SE 6 2006 Java SE 7 2011 https://en.wikipedia.org/wiki/ja va_version_history Release Year Java SE 8 2014 Java SE 9 2017 Java SE 10 (18.3) 3/2018 Java SE 11 (18.9 LTS) 9/2018 Java 9 is the main publicly supported version (with Java 7 no longer publicly supported and Java 8 end of support announced). OK OK A la práctica: Piedra de Rosetta C/Java Recordad el proyecto de programación de FO. Ahora cada cosa.c & cosa.h se convierte en cosa.java. Lo que estaba en cosa.h escribimos «public». Lo que estaba en cosa.c escribimos «private». Los campos del typedef struct ahora son atributos del objeto. Las funciones ahora son métodos de la clase. point.h typedef struct { double x; double y; t_point; void invert_coordinates(t_point *p); void print_point(t_point p); point.c //falta includes stdio y point void invert_coordinates(t_point *p) { double aux = p >x; p >x = p1 >y; p >y = aux; void print_point(t_point p) { printf("(%lf,%lf)", p.x, p.y); Point.java public class Point { public double x; // atributo public double y; // atributo public Point(double x, double y) { this.x = x; this.y = y; // constructor public void invertcoordinates() { double aux = x; x = y; y = aux; // metodo @Override public String tostring() { return "(" + x + "," + y + ")"; // metodo usado por print // Sin *, &, > : )

Piedra de Rosetta C/Java (2) Ahora solo Java calcula.c #include <stdio.h> #include "point.h" void main() { t_point p1 = {3,2; printf("point 1: "); print_point(p1); printf("\n"); printf("i invert coordinates\n"); invert_coordinates(&p1); printf("point 1: "); printf("(%lf,%lf)\n", p1.x, p1.y); PointTester.java public class PointTester { public static void main(string[] args) { Point p1 = new Point(3, 2); System.out.println(p1); System.out.println("I invert coordinates"); p1.invertcoordinates(); System.out.println("(" + p1.x + "," + p1.y + ")"); Point.java public class Point { public double x; public double y; public Point(double x, double y) { this.x = x; this.y = y; public void invertcoordinates() { double aux = x; x = y; y = aux; @Override public String tostring() { return "(" + x + "," + y + ")"; // Sin *, &, > : ) PointTester.java public class PointTester { public static void main(string[] args) { Point p1 = new Point(3, 2); System.out.println(p1); System.out.println("I invert coordinates"); p1.invertcoordinates(); System.out.println("(" + p1.x + "," + p1.y + ")"); // UpperCamelCase & lowercamelcase Y el scanf()? Y el scanf()? (2) import java.util.scanner; // Include public class AreaTriangleScanner { public static void main(string[] args) { double base, altura, area; String nombre; Scanner in = new Scanner(System.in); System.out.print(" Como te llamas? "); nombre = in.nextline(); System.out.println("Hola " + nombre + "! Vamos a calcular el area de un triangulo. : )"); System.out.print(" Base: "); base = in.nextdouble(); System.out.print(" Altura: "); altura = in.nextdouble(); area = base * altura / 2; System.out.println("El area de un triangulo de base " + base + " y altura " + altura + " es " + area + "."); // nextline(), nextint(), nextfloat(), nextdouble(), // next() para leer una palabra

PROGRAMACIÓN PROGRAMACIÓN Preguntas Veamos ahora los códigos W1. t4_sin_cos_b.c / MyBadMath.java Series de McLaurin notables https://es.wikipedia.org/wiki/serie_de_taylor