Sintaxis Básica de Java
Repaso de la sintaxis básica de este lenguaje de programación. Esto incluye cosas como reglas para nombrar componentes, modificadores de acceso, tipos de variables, etc., entre otras cosas básicas.
Lo Básico
- Java es case sensitive, lo que significa que distingue entre mayúsculas y minúsculas.
- Los nombres de las clases siempre inician con mayúscula.
- Los nombres de los métodos deben iniciar con minúscula.
- El nombre del archivo debe tener el mismo nombre que la clase que contiene, y debe terminar con la extensión .java. En caso de que no se tenga una clase pública en el archivo, éste se puede llamar de otra forma. Tampoco es obligatorio tener una clase pública en el archivo.
- El programa siempre inicia desde el método
main()
, el cual es necesario para iniciar todo programa Java.
Identificadores
Todos los componentes necesitan un nombre, a este nombre se le conoce como identificador. Todas las clases, métodos, variables, etc. deben tener un identificador.
- Todos los identificadores pueden iniciar con una letra (A-Z, a-z), símbolo de dólar ($) o guión bajo (_).
- Después del primer carácter se puede continuar el identificador con cualquier combinación.
- Está prohibido usar Keywords como identificadores ya que están apartadas por Java.
Ejemplos de como nombrar identificadores:
✅ age, $salary, _value, __1_value
❎ 123abc, -salary
Modificadores
Es posible modificar clases, métodos, etc. usando modificadores.
Modificadores de Acceso
default
: Cuando no se especifica el modificador de acceso para la clase, método o miembro, se dice que tiene el modificador por defecto, o sea eldefualt
. Esto significa que las cosas con este modificador solo son accesibles en el mismo paquete.private
: Todo lo que sea declarado comoprivate
es sólo accesible en la clase en la que son declarados.- Cualquier otra clase del mismo paquete no puede acceder a estos miembros.
- Clases de top-level o interfaces no pueden ser
private
.
protected
: Todo lo que sea declarado comoprotected
sólo es accesible desde el mismo paquete o subclase en diferentes paquetes.public
: Tiene el alcance más grande. Todo lo declarado comopublic
puede ser accesible desde cualquier parte del programa.
default | private | protected | public | |
---|---|---|---|---|
Misma clase | ✅ | ✅ | ✅ | ✅ |
Misma subclase de paquete | ✅ | ❎ | ✅ | ✅ |
Misma no-subclase de paquete | ✅ | ❎ | ✅ | ✅ |
Diferente subclase de paquete | ❎ | ❎ | ✅ | ✅ |
Diferente no-subclase de paquete | ❎ | ❎ | ❎ | ✅ |
Modificadores Sin Acceso
final
: En una clase indica que esta no puede ser extendida, o que un método no puede ser sobrescrito.static
: La entidad a la que se le asigna está disponible fuera de cualquier instancia de la clase. Esto significa que los métodos estáticos o los atributos son parte de la clase y no un objeto.abstract
: Se usa para declarar una clase como parcialmente implementada. O sea, que un objeto no puede ser creado directamente de esa clase abstracta.abstract
no puede ser usado constatic
,final
oprivate
porque previenen anulación y necesitamos anular métodos en el caso de una clase abstracta.synchronized
: Previene que un bloque de código sea corrido por múltiples hilos a la vez.volatile
: Solo es aplicable a una variable. Sirve para que los cambios hechos a variables sean reflejados a través de todos los hilos que están accediendo a la misma variable.transient
: Se le puede aplicar a variables de una clase para indicar que una variable no debería ser serializada cuando la clase contenedora es serializada.native
: Se le puede aplicar a un método para indicar que ese método se implementó en otro lenguaje de programación como C, C++ o ensamblador.
Otras cosas
Las variables pueden tener ciertos alcances como.
- Locales
- Variables de clase (static)
- Variables de instancia (non-static)
Los arrays/arreglos sirven almacenar múltiples variables del mismo tipo.
Los enum
restringen una variable para tener uno de unos pocos valores predefinidos.
Fin
Seguiré subiendo y actualizando mi contenido conforme voy aprendiendo sobre Java, Spring, Linux, sistemas operativos, entre otros temas relacionados. 🤓