Cargando...

Campos en Java

Pon un campo int llamado fill dentro de una clase Cup en Cup.java. En Shelf.java, construye un cup con Cup c = new Cup();, guarda un número con c.fill = 3;, luego imprime ese campo con System.out.println(c.fill);. Compila ambos archivos y ejecuta java Shelf. La pantalla debe mostrar una línea: 3. El campo guarda datos en ese único objeto. Lo alcanzas a través de la variable que nombra el objeto. Guardar y leer ese valor en el objeto es lo que enseña esta página.

Un lugar para datos en el objeto

En la página de objetos, beep solo imprimía. No guardaba un número para después. Un campo es un nombre declarado dentro de la clase donde cada objeto puede guardar su propio valor. Después de que new construye el objeto, asignas el campo a través de la variable del objeto y luego puedes imprimirlo.
Crea primero Cup.java. La línea public class es public class Cup. No dejes un nombre de clase antiguo Chip o Badge aquí. Dentro de las llaves de la clase escribe una línea de campo: int fill;. En esta primera caja no hay método. En Cup.java no hay main en esta página. Guarda antes de compilar.

Cup with fill field

java
public class Cup {
    int fill;
}

Shelf asigna fill y luego lo imprime

Crea Shelf.java en la misma carpeta. Su línea public class es public class Shelf. Dentro de main, escribe tres líneas en orden: Cup c = new Cup();, luego c.fill = 3;, luego System.out.println(c.fill);. La primera construye el objeto. La segunda guarda 3 en el fill de ese objeto. La tercera imprime el número guardado.

Shelf sets and prints fill

java
public class Shelf {
    public static void main(String[] args) {
        Cup c = new Cup();
        c.fill = 3;
        System.out.println(c.fill);
    }
}

Desde la carpeta que guarda ambos archivos, ejecuta javac Cup.java Shelf.java. Puedes compilar primero Cup.java y luego Shelf.java cuando ambos estén completos. Cuando paréntesis, llaves y puntos y coma coinciden, javac no escribe una línea propia. Luego ejecuta java Shelf — no java Shelf.java ni java Cup. Quita el final .java del comando de ejecución. Arranca la clase que guarda main. Los mismos comandos funcionan en Windows y en macOS.
El programa debe imprimir una línea y parar: 3. No debe pedirte que escribas. Si la terminal espera teclado, aún queda una llamada nextLine de un ejercicio antiguo en un archivo. Bórrala y mantén las tres líneas de arriba en Shelf, con el campo fill en Cup.
Recorre la ejecución una vez. Java empieza en Shelf.main. new Cup() construye un objeto y lo guarda en c. La asignación c.fill = 3 escribe 3 en el campo de ese objeto. println(c.fill) lee el mismo campo e imprime 3. El número en pantalla es el valor guardado en el objeto, no una impresión fija de un string como "ok".
El nombre de campo fill se declara una vez en la clase. Cada objeto construido desde Cup obtiene su propio hueco para ese nombre. Cuando escribes c.fill, nombras primero el objeto, luego el hueco en ese objeto. Ese orden — objeto, luego campo — es la forma que mantiene esta página.

Clase, objeto y campo lado a lado

Lee los tres nombres una vez en una tabla pequeña. La línea del campo siempre pasa por un objeto en esta página.

📊 class object field

Name What it is on this page
Cup the class / type in Cup.java
c one object built with new Cup()
c.fill the int stored on that object

Escribir Cup.fill = 3; sin un objeto no encaja en esta forma de principiante. El campo pertenece a cada objeto después de new. Construye primero, luego asigna a través de la variable. Escribir solo new Cup(); sin guardar el resultado también te deja sin nombre para fill. Mantén Cup c = new Cup(); luego c.fill = 3;.
Una demo de objetos sobrante puede confundir la carpeta. Un archivo que aún llama c.beep(); con una clase Chip es la lección anterior. Para esta página mantén Cup y Shelf y el campo fill. Aquí no necesitas beep.
Si imprimes c solo con System.out.println(c);, la pantalla no mostrará un 3 limpio. Imprime un texto de objeto por defecto. Para ver el número guardado, imprime c.fill.

Dos cups guardan fills separados

Puedes construir dos objetos desde Cup. Cada uno tiene su propio fill. Cambiar uno no cambia el otro.
En Shelf puedes escribir Cup a = new Cup(); y Cup b = new Cup();, luego a.fill = 2; y b.fill = 9;, luego imprimir a.fill y b.fill. Después de javac Cup.java Shelf.java y java Shelf, la pantalla debe mostrar 2 en una línea y 9 en la siguiente. Ambos objetos comparten el texto de clase que declara fill, pero cada objeto guarda su propio número.
Si ambas impresiones muestran el mismo valor cuando querías dos números distintos, comprueba que asignaste ambos campos y que no escribiste Cup b = a;. Esa línea hace que b apunte al mismo objeto que a, así que ambos nombres comparten un fill. En esta página usa dos expresiones new Cup() cuando quieras dos fills separados.
No necesitas un tercer programa en caja para esa práctica. Edita Shelf con cuidado, recompila y ejecuta otra vez. Luego puedes restaurar la caja de un solo cup si quieres la primera forma del quiz.

Lo que añadirán los constructores después

Esta página asigna el campo después de new con una línea aparte: c.fill = 3;. Una página posterior — constructores — mostrará otra forma de fijar valores iniciales cuando se construye el objeto. Quédate aquí con el campo sencillo y la asignación después de new. No inventes un método constructor en esta página.
Existen valores por defecto para campos que nunca asignas: un campo int empieza en 0. Si imprimes c.fill antes de cualquier asignación, la pantalla puede mostrar 0. Esta página aún enseña la asignación que escribes tú, así que mantén c.fill = 3; antes de la impresión en la demo principal.
Si javac no encuentra el símbolo Cup al compilar Shelf.java, comprueba que Cup.java esté junto a Shelf.java y que la línea de clase sea public class Cup. Si la pantalla muestra 0 cuando esperabas 3, puede faltar la línea de asignación o ejecutarse después de la impresión — pon c.fill = 3; encima de println(c.fill).

Antes de constructores

Puedes declarar int fill; dentro de Cup, construir Cup c = new Cup();, asignar c.fill = 3; e imprimir c.fill desde Shelf. Compila ambos archivos y ejecuta java Shelf. La pantalla muestra 3. Dos objetos pueden guardar dos fills distintos. La página siguiente es constructores, donde empiezas a fijar valores en el momento en que new construye el objeto.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
6
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior