Chargement...

Champs

Placez un champ int nommé fill dans une classe Cup. Dans Pine, gardez Main et construisez une tasse avec Cup c = new Cup();, stockez un nombre avec c.fill = 3;, puis écrivez ce champ avec Console.WriteLine(c.fill);. Gardez les deux types dans le même fichier d'enseignement pour que dotnet run reste simple. Lancez avec dotnet run. L'écran doit montrer une ligne : 3. Le champ tient des données sur cet objet-là. Vous l'atteignez par la variable qui nomme l'objet. Stocker et lire cette valeur sur l'objet est ce que cette page enseigne. Gardez la classe publique de démarrage nommée Pine.

Une place pour des données sur l'objet

Sur la page des objets, beep n'écrivait que. Il ne gardait pas de nombre pour plus tard. Un champ est un nom déclaré dans la classe où chaque objet peut tenir sa propre valeur. Après que new a construit l'objet, vous assignez le champ par la variable d'objet, puis vous pouvez l'écrire à l'écran.
Ouvrez le fichier Pine. Le nom de la classe de démarrage reste Pine. Cette page ne renomme pas le démarreur. Supprimez tout reste c.beep(); si cet appel Chip est encore tout ce que vous avez dans Main. Supprimez tout reste de classe Chip. Supprimez toute ligne ReadLine. Le fichier que vous gardez n'attend pas de frappe.
Hors des accolades de Pine — toujours dans le même fichier — écrivez public class Cup. À l'intérieur des accolades de la classe, écrivez une ligne de champ : int fill;. Il n'y a pas de méthode sur cette première boîte. Il n'y a pas de Main dans Cup sur cette page. Enregistrez le fichier avant de lancer.
Le premier programme encadré montre Cup seul pour que vous puissiez lire le champ clairement. Le second programme encadré est la forme conservée avec Pine qui définit et écrit fill.

Cup with fill field

csharp
using System;

public class Cup
{
    int fill;
}

Pine assigne fill, puis l'écrit

Pine garde public static void Main(). À l'intérieur de Main, écrivez trois lignes dans l'ordre : Cup c = new Cup();, puis c.fill = 3;, puis Console.WriteLine(c.fill);. La première ligne construit l'objet. La deuxième stocke 3 dans le fill de cet objet. La troisième écrit le nombre stocké. Vous n'appelez pas c.beep(); sur cette page. C'était la leçon sur les objets.

Pine sets and prints fill

csharp
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;
}

Relisez le fichier conservé depuis le haut. using System; prépare les noms courts. public class Pine est le démarreur. public static void Main() est l'endroit où le runtime commence. new Cup() construit un objet et le stocke dans c. L'assignation c.fill = 3 écrit 3 dans le champ de cet objet. WriteLine(c.fill) lit le même champ et écrit 3. Le nombre à l'écran est la valeur stockée sur l'objet, pas une écriture en dur d'une chaîne comme "ok".
Lancez avec dotnet run. Le programme écrit une ligne et s'arrête. Il n'attend pas que vous tapiez. Si dotnet run attend, ReadLine est encore dans le fichier. Supprimez cette ligne et gardez les trois lignes ci-dessus dans Pine, avec le champ fill dans Cup. L'écran montre 3. Si l'écran montre ok, un appel c.beep(); restant tourne encore. Si l'écran montre les lettres Cup, une ligne d'écriture a des guillemets : Console.WriteLine("Cup");. Vous ne réinstallez pas le SDK .NET pour un écran qui montre la mauvaise ligne.
Parcourez encore une fois l'exécution dans l'ordre. C# démarre à Pine.Main. La première instruction construit un objet avec new Cup() et le stocke dans c. La deuxième stocke 3 dans c.fill. La troisième écrit ce champ. Puis Main se termine. Le nom de champ fill est déclaré une fois dans la classe. Chaque objet construit à partir de Cup reçoit son propre emplacement pour ce nom. Quand vous écrivez c.fill, vous nommez d'abord l'objet, puis l'emplacement sur cet objet. Cet ordre — objet, puis champ — est la forme que cette page garde.

Classe, objet et champ côte à côte

Lisez les trois noms une fois dans un petit tableau. La ligne de champ passe toujours par un objet sur cette page.

📊 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

Écrire Cup.fill = 3; sans objet ne correspond pas à cette forme débutant. Le champ appartient à chaque objet après new. Construisez d'abord, puis assignez par la variable. Écrire seulement new Cup(); sans stocker le résultat ne laisse aussi aucun nom pour fill. Gardez Cup c = new Cup(); puis c.fill = 3;.
Une démo objets restante peut embrouiller Main. Un fichier qui appelle encore c.beep(); avec une classe Chip est la leçon précédente. Pour cette page gardez Cup et Pine et le champ fill. Vous n'avez pas besoin de beep ici.
Si vous écrivez Console.WriteLine(c); seul, l'écran ne montrera pas un 3 propre. Il imprime un texte d'objet par défaut. Pour voir le nombre stocké, écrivez Console.WriteLine(c.fill);.

Deux tasses gardent des fill séparés

Vous pouvez construire deux objets à partir de Cup. Chacun a son propre fill. Changer l'un ne change pas l'autre.
Dans Pine, vous pouvez écrire Cup a = new Cup(); et Cup b = new Cup();, puis a.fill = 2; et b.fill = 9;, puis écrire a.fill et b.fill. Après dotnet run, l'écran doit montrer 2 sur une ligne et 9 sur la suivante. Les deux objets partagent le texte de classe qui déclare fill, mais chaque objet tient son propre nombre.
Si les deux écritures montrent la même valeur alors que vous vouliez deux nombres différents, vérifiez que vous avez assigné les deux champs et que vous n'avez pas écrit Cup b = a;. Cette ligne fait que b désigne le même objet que a, donc les deux noms partagent un fill. Sur cette page utilisez deux expressions new Cup() quand vous voulez deux fill séparés.
Vous n'avez pas besoin d'un troisième programme encadré pour cet exercice. Éditez Pine avec soin et relancez. Ensuite vous pouvez restaurer la boîte à une seule tasse si vous voulez la première forme du quiz.

Ce que les constructeurs ajouteront plus tard

Cette page assigne le champ après new avec une ligne séparée : c.fill = 3;. Une page suivante — les constructeurs — montrera une autre façon de fixer des valeurs de départ quand l'objet est construit. Restez ici avec le champ simple et l'assignation après new. N'inventez pas de méthode constructeur sur cette page.
Des valeurs par défaut existent pour les champs que vous n'assignez jamais : un champ int commence à 0. Si vous écrivez c.fill avant toute assignation, l'écran peut montrer 0. Cette page enseigne encore l'assignation que vous écrivez vous-même, donc gardez c.fill = 3; avant l'écriture dans la démo principale.
Ne nichez pas Cup à l'intérieur des accolades de Pine. Sur cette page les deux classes siègent comme sœurs dans le fichier. Le champ siège à l'intérieur de Cup. Main siège à l'intérieur de Pine. Si la compilation ne trouve pas Cup en compilant Pine, vérifiez que public class Cup siège dans le même fichier. Si l'écran montre 0 alors que vous attendiez 3, la ligne d'assignation peut manquer ou tourner après l'écriture — placez c.fill = 3; au-dessus de Console.WriteLine(c.fill);.

Vous pouvez déclarer int fill; dans Cup, construire Cup c = new Cup();, assigner c.fill = 3;, et écrire c.fill depuis Pine.Main. Lancez avec dotnet run. L'écran montre 3. Deux objets peuvent tenir deux fill différents. Pensez à fill comme à un emplacement étiqueté sur chaque tasse que vous construisez avec new. Pine reste la porte que vous ouvrez avec dotnet run. La page suivante porte sur les constructeurs, où vous commencez à fixer des valeurs au moment où new construit l'objet.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
6
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut