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
public
en el mismo archivo (error de compilación) - Si un archivo
.java
está 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
import
s, también se puede escribir el nombre completo de la clase (incluyendo paquetes). Esto no es demasiado práctico. Nótese quejava.lang
se importa automáticamente.
Para compilar:
javac -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