14
¡HOLA MUNDO!

¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

¡HOLA MUNDO!

Page 2: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

htp://gts.ehu.es/German

C

C++ C#

COBOLFORTRAN

Clojure

Haskell

JAVA

Javascript

Ocaml

SCALA

Python

Pascal

Lispt

Page 3: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

Clase es a tpo como objeto es a variable

int var1;Persona pepe;

var1 es una variable de tpo entero

pepe es un objeto de clase persona

Una clase es un “tpo complejo”; una agrupación de variables (constantes), objetos, e incluso código que puede actuar sobre sus propios elementos u otros.

Un objeto es una cápsula (de memoria de ordenador) que tene un “estado” (determinado por los valores de sus variables y el estado de sus objetos) así como un comportamiento (defnido por el código que encierra).

La clase es la “defnición” a partr de la cual se generan (“instancian”) los elementos que partcipan en la aplicación. (esto tene cuestones de detalle que se matiarán más adelante)

Antes de ver la versión Java… …aclaremos la cuestón CLASE / OBJETO

Page 4: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

HolaMundo.javaHolaMundo.java

Clase ( )( )Método

public class GeneradorDeHolaMundo{public static void main(String[] args) {

System.out.println("Hola mundo");}

}

Page 5: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

HolaMundo.javaHolaMundo.java

System.javaSystem.java

Clase ( )( )Método

public class GeneradorDeHolaMundo{public static void main(String[] args) {

System.out.println("Hola mundo");}

}

Page 6: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

HolaMundo.javaHolaMundo.java

System.javaSystem.java

PrintStream.javaPrintStream.java

Clase ( )( )Método

public class GeneradorDeHolaMundo{public static void main(String[] args) {

System.out.println("Hola mundo");}

}

Page 7: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

¿QUÉ TENDRÉ A MI DISPOSICIÓN PARA DESARROLLAR EN JAVA?

Page 8: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

Core Java 2 (Java1.3)

Estructura del contenido de C:\...\jdk1.3\jre\lib\rt.jarMucho mayor en 1.8

Ojo: 1.9 ya no tiene rt.jar(pero la biblioteca se estructura igual)

La biblioteca de ejecución de JavaLa biblioteca de ejecución de Java

htp://gts.ehu.es/German

2017: mucho más de lo mostrado aquí

Page 9: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

Una visión estructurada del entorno de desarrollo y ejecución de JavaUna visión estructurada del entorno de desarrollo y ejecución de Java

htp://gts.ehu.es/German

Page 10: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

htp://gts.ehu.es/German

El “bin”

Las herramientas de ejecución y desarrollo de JavaLas herramientas de ejecución y desarrollo de Java

Page 11: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

Un programa Java comienia por la ejecución de un fchero (una clase) que puede ir invocando la ejecución de otras dentro de uno o varios subárboles de directorios o fcheros JAR (cada subárbol o cada JAR es una “biblioteca de clases”)

Compilar y ejecutar estando en “MiAplicacion”>javac ejemplos/HolaMundo.java>java ejemplos.HolaMundoCompilar y ejecutar estando en otro directorio>javac –cp c:/Desarrollo/MiAplicacion ejemplos/HolaMundo.java>java –cp c:/Desarrollo/MiAplicacion ejemplos.HolaMundoEjecutar mediante un JAR>java –cp c:/Desarrollo/MiAplicacion/ejemplos/HolaMundo.jar HolaMundo>java –jar c:/Desarrollo/MiAplicacion/ejemplos/HolaMundo.jar

OJO: para hacer esta prueba hay que incluir la líneapackage ejemplos;en el código fuente de HolaMundo.java

Compilación y ejecuciónCompilación y ejecución

htp://gts.ehu.es/German

Page 12: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

DocumentaciónDocumentación

htp://gts.ehu.es/German

Page 13: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

Decompilación: probar con Java Optmize and Decompile Environment (JODE)→ “Ofuscacion”

C:>javap -c HolaMundoCompiled from "HolaMundo.java"public class HolaMundo extends java.lang.Object{public HolaMundo(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return

public static void main(java.lang.String[]); Code: 0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3; //String Hola, mundo 5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return

}

Los programas ejecutables Java.Desensamblado de codebytes y decompilaciónLos programas ejecutables Java.Desensamblado de codebytes y decompilación

htp://gts.ehu.es/German

HolaMundo.java

HolaMundo.class

=

Sobre el “Magic Number”

Grateful Dead

Magicnumber

Minorversion

Mayorversion

Page 14: ¡HOLA MUNDO!gtts.ehu.es/German/Docencia/1819/TAP/temas/(3)TAP18+.pdf · Clase es a tpo como objeto es a variable int var1; Persona pepe; var1 es una variable de tpo entero pepe es

htp://gts.ehu.es/German

Comprobar el funcionamiento:Escritura de GeneradorDeHolaMundo.javaEn shell del SO: compilar, ejecutar, desensamblar, documentar.Idem con packageDecompilarIdem en Netbeans.