Campos
Pon un campo int llamado fill dentro de la clase Cup. En Pine, conserva Main y construye un cup con Cup c = new Cup();, guarda un número con c.fill = 3;, luego escribe ese campo con Console.WriteLine(c.fill);. Mantén ambos tipos en el mismo archivo de enseñanza para que dotnet run siga siendo simple. Ejecuta con dotnet run. La pantalla debería 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. Mantén el nombre de la clase pública de inicio Pine.
Un lugar para datos en el objeto
En la página de objetos, beep solo escribía. No guardaba un número para después. Un campo es un nombre declarado dentro de la clase en el que 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 escribirlo en la pantalla.
Abre el archivo Pine. El nombre de la clase de inicio sigue siendo Pine. Esta página no renombra el iniciador. Borra cualquier resto de c.beep(); si esa llamada de Chip es todo lo que aún tienes en Main. Borra cualquier resto de la clase Chip. Borra cualquier línea ReadLine. El archivo que guardas no espera escritura.
Fuera de las llaves de Pine — todavía en el mismo archivo — escribe public class Cup. Dentro de las llaves de la clase, escribe una línea de campo: int fill;. En esta primera caja no hay método. En esta página no hay Main dentro de Cup. Guarda el archivo antes de ejecutar.
El primer programa en caja muestra Cup solo para que leas el campo con claridad. El segundo programa en caja es la forma guardada con Pine asignando y escribiendo fill.
using System;
public class Cup
{
int fill;
}
Pine asigna fill y luego lo escribe
Pine conserva public static void Main(). Dentro de Main, escribe tres líneas en orden: Cup c = new Cup();, luego c.fill = 3;, luego Console.WriteLine(c.fill);. La primera línea construye el objeto. La segunda guarda 3 en el fill de ese objeto. La tercera escribe el número guardado. En esta página no llamas c.beep();. Esa fue la lección de objetos.
using System;
public class Pine
{
public static void Main()
{
Cup c = new Cup();
c.fill = 3;
Console.WriteLine(c.fill);
}
}
public class Cup
{
int fill;
}
Lee el archivo guardado desde arriba. using System; prepara nombres cortos. public class Pine es el iniciador. public static void Main() es donde arranca el tiempo de ejecución. new Cup() construye un objeto y lo guarda en c. La asignación c.fill = 3 escribe 3 en el campo de ese objeto. WriteLine(c.fill) lee el mismo campo y escribe 3. El número en la pantalla es el valor guardado en el objeto, no una impresión fija de una cadena como "ok".
Ejecútalo con dotnet run. El programa escribe una línea y para. No espera a que tú escribas. Si dotnet run espera, ReadLine sigue en el archivo. Borra esa línea y mantén las tres líneas de arriba en Pine, con el campo fill en Cup. La pantalla muestra 3. Si la pantalla muestra ok, aún corre una llamada sobrante c.beep();. Si la pantalla muestra las letras Cup, una línea de escritura tiene comillas: Console.WriteLine("Cup");. No reinstales el SDK de .NET por una pantalla que muestra la línea incorrecta.
Recorre la ejecución una vez más en orden. C# empieza en Pine.Main. La primera sentencia construye un objeto con new Cup() y lo guarda en c. La segunda guarda 3 en c.fill. La tercera escribe ese campo. Luego termina Main. El nombre del 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 y luego el hueco en ese objeto. Ese orden — objeto, luego campo — es la forma de 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 beside Pine |
c |
one object built with new Cup() |
c.fill |
the int stored on that object |
Escribir Cup.fill = 3; sin un objeto no encaja con esta forma para principiantes. 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 Main. 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 Pine y el campo fill. Aquí no necesitas beep.
Si escribes solo Console.WriteLine(c);, la pantalla no mostrará un 3 limpio. Imprime un texto de objeto por defecto. Para ver el número guardado, escribe Console.WriteLine(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 Pine puedes escribir Cup a = new Cup(); y Cup b = new Cup();, luego a.fill = 2; y b.fill = 9;, luego escribir a.fill y b.fill. Después de dotnet run, la pantalla debería mostrar 2 en una línea y 9 en la siguiente. Ambos objetos comparten el texto de la clase que declara fill, pero cada objeto guarda su propio número.
Si ambas escrituras 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 se refiera 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 ese ejercicio. Edita Pine con cuidado y ejecuta de nuevo. Luego puedes restaurar la caja de un solo cup si quieres la primera forma del quiz.
Qué 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 poner valores iniciales cuando se construye el objeto. Quédate aquí con el campo simple 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 escribes 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 escritura en la demo principal.
No anides Cup dentro de las llaves de Pine. En esta página las dos clases se sientan como hermanas en el archivo. El campo está dentro de Cup. Main está dentro de Pine. Si la compilación no encuentra Cup al compilar Pine, comprueba que public class Cup esté en el mismo archivo. Si la pantalla muestra 0 cuando esperabas 3, puede faltar la línea de asignación o ejecutarse después de la escritura — pon c.fill = 3; encima de Console.WriteLine(c.fill);.
Puedes declarar int fill; dentro de Cup, construir Cup c = new Cup();, asignar c.fill = 3; y escribir c.fill desde Pine.Main. Ejecuta con dotnet run. La pantalla muestra 3. Dos objetos pueden guardar dos fills distintos. Piensa en fill como un hueco etiquetado en cada cup que construyes con new. Pine sigue siendo la puerta que abres con dotnet run. La página siguiente es constructores, donde empiezas a poner valores en el momento en que new construye el objeto.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 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