10月14日(金)1、2コマ目
今日、やったこと
練習問題のつづき+解説
クラス
今日のホワイトボード
練習問題の解答例+解説
練習問題1-1
Console.Write()とConsole.WriteLine()
Write()メソッドは改行なし、WriteLine()メソッドは改行ありです。
|
| 図 Write()メソッドとWriteLine()メソッド |
練習問題1-2
とくに指定はしていませんが、配列に代入するフィボナッチ数列の値はループを使って、計算した結果を代入してほしいです。
練習問題1-3
練習問題1-4
10進数=>2進数へ変換するには、答えが0になるまで、2で割り、余りが各けたの数、答えが次に2で割る数でした。これをプログラムに置き換えればOKです。
|
| 図 ループ処理 |
練習問題1-5
2の補数がちょっとややこしいかもしれません。
が、基数変換同様、処理の流れをプログラムに置き換えればできます。
|
| 図 2の補数へ変換するながれ |
練習問題1-6
解答例はバブルソートで並び替えています。
クラスはCの構造体と同じ?
クラスはCの構造体と見た目はよく似ています。
構造体のメンバ変数とクラスのフィールドは同じようなモノだと思ってください。
構造体は変数を宣言すれば、構造体メンバにアクセスできます。
が、クラスは変数を宣言しただけでは、フィールドにアクセスすることができません。
![]() |
| 図 Cの構造体とC#のクラス |
クラスは変数を宣言するだけではエリアが確保されない
クラスは変数を宣言するだけでは、クラス内のフィールドの値を保存するためのエリアが確保されません。
キーワードnewを使ってエリアを確保する必要があります。(配列と同じイメージ)
![]() |
| 図 キーワードnewを使ってクラス用のエリアを確保する |
インスタンス生成
キーワードnewを使ってクラス用のエリアを確保することをインスタンス生成と呼びます。
![]() |
| 図 インスタンス生成 |
メソッド
クラスにはデータを保存するフィールド以外に、メソッドも作れます。
メソッドからフィールドにアクセスすることもできます。
![]() |
| 図 メソッド |
メソッド呼び出し
Timeクラス型の変数tm1、tm2の2つ宣言し、それぞれ別々のTimeクラスのインスタンスを参照しています。
![]() |
| 図 2つの変数が別々のインスタンスを参照 |
次回は
クラスの続きです。








