演習課題「メソッドへのアクセスを許可しよう」
右のコードエリアにはメインとなるPracticeクラスと、冒険者のAdventurerクラスが定義されています。
Adventurerクラスではオブジェクト生成時に職業とMPを初期化するようになっており、攻撃するたびにMPを消費します。
PracticeクラスのMainメソッドで攻撃後に現在のMPを出力する処理が記述されていますが、
実行しようとするとコンパイルエラーが発生してしまいます。
エラーの発生する原因を特定し、対象箇所を修正してください。
期待する出力値
冒険者は魔王を攻撃した
残りMP115
ウィザードは魔王を攻撃した
残りMP544
クルセイダーは魔王を攻撃した
残りMP45
プリーストは魔王を攻撃した
残りMP475
#06:アクセス修飾子を理解しよう
メソッドや変数の前についている「public」や「private」といった、アクセス修飾子について学習します。
アクセスの制限をコントロールするもの
例えば、「private int number = 1;」というnumber変数があった場合、
このnumber変数は、宣言されているクラス内のみで使用できます。
public ・・・ どこからでもアクセスできる
private ・・・ 宣言されているクラスなどの内側からのみアクセスできる
C#では、この他に「protected」「internal」「protected internal」「private protected」があります。
using System;
public class Lesson07
{
public static void Main()
{
var player = new Player("勇者");
player.Walk();
Console.WriteLine(player.name);
}
}
public class Player
{
public string name;
public Player(string name)
{
this.name = name;
}
public void Walk()
{
Console.WriteLine(name + "は荒野を歩いていた");
}
}
C#を攻略しようーアクセス修飾子ー
https://www.kisoplus.com/kihon/acc.html
アクセス修飾子 - C# リファレンス | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/access-modifiers
public キーワード - C# リファレンス | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/public
private キーワード - C# リファレンス | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/private