Java - Field
Definición
Reflexión : Capacidad de un software para analizarse a sí mismo
-
Pertenece al paquete
java.lang.reflect
-
La
clase Field
→ Representa uncampo
en unaclase
oobjeto
-
El
campo
tiene el mismo propósito que todo el mecanismo dereflexión
-
Analizar
un componente de software -
Describir
sus capacidades dinámicamente entiempo de ejecución
en lugar de entiempo de compilación
-
-
La
reflexión
permiten pasarlo por alto e introducir algunas características como la recuperación del valor delcampo
por nombre
El tiempo de ejecución se refiere al tiempo que tarda un programa en ejecutarse una vez que ha sido compilado
convertido a código de máquina que puede ser entendido por la computadora
El tiempo de compilación es el tiempo que tarda en convertir el código fuente de un programa a código de máquina
El tiempo de compilación suele ser más corto que el
tiempo de ejecución
ya que la compilación solo se realiza una vez mientras que la ejecución puede ocurrir varias veces
Campo
-
Variable
que forma parte de la definición de unaclase
-
Se utiliza para
almacenar
información relacionada con unobjeto
de esaclase
Ejemplo Campo
-
Clase llamada
Persona
que tienecampos
para el nombre y laedad
de un objeto persona-
La
clase Persona
tiene dos campos-
nombre
yedad
- Públicos lo que significa que se pueden acceder desde cualquier parte del código.
-
-
public class Persona {
public String nombre;
public int edad;
}
Ejemplo Completo
import java.lang.reflect.Field;
public class ClaseField {
public static void main(String[] args) {
// Creación de un usuario
User user = new User();
// Field[] fields = User.class.getFields(); // → Devuelve un objeto de campo que refleja el campo de miembro público especificado de la clase o interfaz representada por este objeto de clase
Field[] fields = User.class.getDeclaredFields(); // → Devuelve una matriz de objetos Field que reflejan todos los campos declarados por la clase o interfaz representada por este objeto Class
Object value = null;
for (int i = 0; i < fields.length; i++) {
try {
value = fields[i].get(user);
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
System.out.println("Valor del campo " + fields[i].getName() + " es " + value);
}
}
}
// Clase Concreta
class User {
public static String name = "John Doe";
public static String getName() {
return name;
}
public static void setName(String name) {
User.name = name;
}
}
- Resultado por pantalla
Valor del campo name es John Doe
-
Los
campos
se declaran dentro de laclase
fuera de losmétodos
oconstructores
-
Para acceder a los
campos
de unobjeto
se puede utilizar la notación de punto(.)
después del nombre delobjeto
Objeto
- Tenemos un
objeto
llamadojuan
de laclase Persona
podríamos acceder a suscampos
de la siguiente forma
Ejemplo de Objeto
Persona juan = new Persona();
juan.nombre = "Juan";
juan.edad = 35;
-
Hemos creando un
nuevo objeto
de laclase Persona
y asignando valores a suscampos nombre
yedad
- Una vez que tenemos acceso a los
campos
de unobjeto
podemosleer
ymodificar
sus valores
- Una vez que tenemos acceso a los
Resumen
-
Clase Field
representa uncampo
en unaclase
oobjeto
- Se puede utilizar para
acceder
ymodificar
los valoresalmacenados
en esoscampos
- Se puede utilizar para
Deja un comentario