Chargement...

Classes

Une classe est un type nommé que vous déclarez avec class. Placez public class Badge dans le même fichier d'enseignement que Pine, ou gardez-le à côté de Pine comme second type. À l'intérieur de Badge, écrivez une courte méthode static show qui écrit ready. Dans Pine, gardez Main et appelez Badge.show();. Lancez avec dotnet run. L'écran doit montrer une ligne : ready. Ici vous ne comptez pas à rebours avec de la récursivité. Vous nommez un second type et vous demandez à la méthode de ce type d'écrire. Ce second type nommé — une classe qui n'est pas seulement la classe qui démarre — est ce que cette page enseigne. Gardez la classe publique de démarrage nommée Pine.

Le type s'installe à côté du démarreur

Jusqu'aux pages sur les méthodes, presque chaque démo gardait Main et les méthodes d'aide à l'intérieur d'une seule classe publique nommée Pine. Cela fonctionne encore. Cette page ajoute volontairement une seconde classe. Badge est un nom de type. Il n'a pas besoin d'être le programme qui démarre. Pine est le programme qui démarre. Sur cette forme débutant, les deux types peuvent vivre dans un seul fichier pour que dotnet run reste simple. Ce qui compte, c'est le nom du type : Badge possède show, et Pine le demande.
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 de récursion down si cette forme est encore tout ce que vous avez dans Main. Supprimez tout reste mark. 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 Badge. À l'intérieur de Badge, écrivez static void show(). Le corps est une seule ligne d'écriture : Console.WriteLine("ready");. Gardez void sur cette page. La méthode ne renvoie pas un nombre. Elle écrit seulement un mot. Il n'y a pas de Main dans Badge sur cette page. C'est voulu. Une classe peut tenir des méthodes sans être la classe de démarrage.
Enregistrez le fichier avant de lancer. Le premier programme encadré montre Badge seul pour que vous puissiez lire le type clairement. Le second programme encadré est la forme complète conservée avec Pine et Badge ensemble.

Badge type with show

csharp
using System;

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

Pine démarre ; Badge fait l'écriture

Pine garde public static void Main(). À l'intérieur de Main, écrivez un seul appel : Badge.show();. Cet appel nomme le type Badge, un point, puis la méthode show. Vous n'écrivez pas show(); seul à l'intérieur de Pine sauf si show vit aussi dans Pine. Sur cette page show appartient à Badge, donc l'appel porte le nom du type.

Pine Main calls Badge.show

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Badge.show();
    }
}

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

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. L'appel Badge.show() entre dans la méthode du type Badge. Cette méthode écrit ready et revient. Pine se termine ensuite. Le mot à l'écran vient de Badge, pas d'un WriteLine écrit à l'intérieur de Pine lui-même. Cette séparation est le point : une classe démarre le programme ; une autre classe possède l'aide.

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 Badge.show(); dans Pine plus la méthode show dans Badge. L'écran montre ready. Si l'écran montre 3, puis 2, puis 1, un appel down(3) restant tourne encore. Si l'écran montre les lettres Badge, une ligne d'écriture a des guillemets : Console.WriteLine("Badge");. 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 seule instruction là-bas est Badge.show();. Cet appel saute dans la méthode show de Badge. À l'intérieur de show, WriteLine écrit ready. Puis show se termine, et Main n'a plus rien à faire, donc le programme s'arrête. Vous n'avez pas mis Console.WriteLine("ready"); à l'intérieur de Pine sur cette page. Vous l'avez mis sous Badge et vous l'avez demandé par le nom du type.

Type à côté du rôle

Lisez une fois l'appariement dans un petit tableau. Chaque classe a un travail sur cette page.

📊 type beside role

Type Role on this page
Badge type that holds show
Pine program that holds Main

Une confusion fréquente consiste à écrire show(); à l'intérieur de Pine sans le préfixe Badge. alors que show n'existe que sur Badge. La compilation cherche alors show à l'intérieur de Pine et ne le trouve pas. Une autre confusion consiste à mettre Main seulement sur Badge et à le retirer de Pine tout en attendant encore l'ancienne forme de démarreur — gardez Main sur Pine pour le fichier conservé de cette leçon. Les démos de récursion restantes peuvent embrouiller Main. Videz Main jusqu'à Badge.show(); pendant que vous apprenez la forme à deux types. Vous n'avez pas besoin de down ici.
Écrire Console.WriteLine("Badge"); à l'intérieur de Pine écrit le mot Badge. Cela n'appelle pas la méthode sur le type. Gardez Badge.show(); quand vous voulez la ligne d'écriture qui vit dans Badge.

Ce que cette page ne fait pas encore

Cette page n'écrit pas new Badge(). Créer un objet à partir d'une classe est la page suivante. Ici l'appel est Badge.show() — une méthode static sur le nom du type lui-même. Vous ne stockez pas non plus de champs sur un badge pour l'instant. Les champs attendent une page plus tard dans ce module. Le travail maintenant, c'est seulement le type nommé à côté du démarreur, et un appel qui utilise ce nom de type.
Vous pouvez changer le mot écrit à l'intérieur de show en set et relancer. L'écran doit suivre la chaîne que vous avez mise dans Badge. Pine garde le même appel. C'est une autre façon de voir la séparation : éditez la méthode du type, gardez l'appel du démarreur.
Ne nichez pas Badge à l'intérieur des accolades de Pine. Sur cette page les deux classes sont des sœurs dans le fichier. Les méthodes de Badge restent à l'intérieur de Badge. Main reste à l'intérieur de Pine.

Vous pouvez déclarer public class Badge, y placer static void show(), et appeler Badge.show(); depuis Pine.Main. Lancez avec dotnet run. L'écran montre la ligne écrite par show. Une classe, c'est ce type nommé. Voyez Badge comme une étagère étiquetée pour des aides qui n'ont pas besoin de démarrer le programme. Pine reste la porte que vous ouvrez avec dotnet run. La page suivante traite objects, où vous construisez une valeur à partir d'une classe avec new.

L'écran garde la ligne d'écriture de Badge

Le fichier que vous gardez écrit ready quand Main appelle Badge.show();. Le nom Badge est dans l'appel, et les lettres Badge ne sont pas à l'écran comme étiquette imprimée sauf si vous les avez mises entre guillemets. Nicher Badge à l'intérieur de Pine n'est pas la forme que cette leçon construit.

🧠 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

❓
5
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