Conceptos clave de la Programación Orientada a Objetos:
- Encapsulación (abstracción)
- Herencia
- Polimorfismo
Notas sobre Java
Java es muy específico con la estructura de archivos. Una carpeta es un paquete
y un archivo .java es un clase.
- No pueden haber dos clases
publicen el mismo archivo (error de compilación) - Si un archivo
.javaestá dentro de una carpeta, la primera línea del archivo debe serpackage <nombrecarpeta>desde el subdirectorio raíz (separando cada nombre con.. - No hace falta usar
imports, también se puede escribir el nombre completo de la clase (incluyendo paquetes). Esto no es demasiado práctico. Nótese quejava.langse importa automáticamente.
Para compilar recomiendo añadir la flag -Xlint:all para que el compilador te
de consejos sobre cómo mejorar tu código, mostrar warnings varios, etc.
javac -Xlint:all -d <build_dir> <src_dir>/**/*.java
Para ejecutar hay que especificar dónde está la clase principal usando
la classpath:
java -cp <build_dir> <MainClass>
Para recompilar todo a un archivo .jar, añada todos los archivos *.class
mantiendo la estructura de directorios. Tenga en cuenta que un archivo .jar es
solo un .zip, asi que puede abrirlo para comprobar que está bien.
jar -cfm <NombreJAR>.jar manifest.mf <archivos .class>
Recuerde añadir un archivo manifest.mf que indique la clase principal de la
siguiente forma:
Main-Class: <MainClass>
Para ejecutar el archivo .jar:
java -jar <NombreJAR>.jar
Teniendo un .class se puede ver su contenido usando javap:
javap -p <.class>: muestra todas las clases y miembrosjavap -v <.class>: mucha información, tamaño del stack, argumentos de métodos, Constant pool, etc.javap -c <.class>: desensambla la clase