クラスの練習問題
要件からコードを作成する練習です
問題
C#のクラスを使って、次の要件を満たす「Book」クラスを作成してください。
属性(プロパティ):
・ブック名(Title)
・著者(Author)
・出版社(Publisher)
・出版日(PublishDate)
メソッド:
・ブックの情報を表示するメソッド(DisplayInfo)
・ブックのタイトルを変更するメソッド(ChangeTitle)
次のテストコードを実行し、出力が期得通りになることを確認してください。
Book book = new Book("吾輩は猫である", "夏目漱石", "アイデア出版", new DateTime(1861, 12, 1));
Console.WriteLine("変更前のタイトル:");
book.DisplayInfo();
book.ChangeTitle("坊っちゃん");
Console.WriteLine("\n変更後のタイトル:");
book.DisplayInfo();
期待される出力
変更前のタイトル:
タイトル: 吾輩は猫である
著者: 夏目漱石
出版社: アイデア出版
出版日: 1861/12/01 0:00:00
変更後のタイトル:
タイトル: 坊っちゃん
著者: 夏目漱石
出版社: アイデア出版
出版日: 1861/12/01 0:00:00
解答
次のようにトップレベルステートメントでの記述ができます
Book book = new Book("吾輩は猫である", "夏目漱石", "アイデア出版", new DateTime(1861, 12, 1));
Console.WriteLine("変更前のタイトル:");
book.DisplayInfo();
book.ChangeTitle("坊っちゃん");
Console.WriteLine("\n変更後のタイトル:");
book.DisplayInfo();
class Book
{
private string Title { get; set; }
private string Author { get; set; }
private string Publisher { get; set; }
private DateTime PublishDate { get; set; }
public Book(string title, string author, string publisher, DateTime publishDate)
{
Title = title;
Author = author;
Publisher = publisher;
PublishDate = publishDate;
}
public void DisplayInfo()
{
Console.WriteLine("タイトル: " + Title);
Console.WriteLine("著者: " + Author);
Console.WriteLine("出版社: " + Publisher);
Console.WriteLine("出版日: " + PublishDate.ToString());
}
public void ChangeTitle(string newTitle)
{
Title = newTitle;
}
}
解説
このコードは、「Book」クラスを使ってブックの情報を表示し、タイトルを変更するプログラムです。
まず、変数「book」を宣言して、「Book」クラスの新しいインスタンスを生成します。このとき、「吾輩は猫である」というタイトル、「夏目漱石」という著者、「アイデア出版」という出版社、「1861年12月1日」という出版日を渡しています。
次に、「DisplayInfo」メソッドを使ってブックの情報を表示します。
次に、「ChangeTitle」メソッドを使ってブックのタイトルを「坊っちゃん」に変更します。
最後に、「DisplayInfo」メソッドを再び使って、変更後のブックの情報を表示します。
「Book」クラスは、タイトル、著者、出版社、出版日の4つの属性を持っています。これらは、プロパティとして宣言されています。また、「DisplayInfo」メソッドはブックの情報を表示するためのメソッドであり、「ChangeTitle」メソッドはブックのタイトルを変更するためのメソッドです。
ディスカッション
コメント一覧
まだ、コメントがありません