【C#】クラスに関する用語1

オブジェクト

変数とメソッドをセットにしたもの。

クラスの定義

アクセス修飾子 class  クラス名{}
クラス名は大文字で始める。

クラスのインスタンス化

new クラス名() でインスタンス化する。
クラス名() でコンストラクタが呼ばれる。
コンストラクタに引数がある場合は通常のメソッド同様、()内に記述する。

メンバー

クラスの構成要素。フィールド、メソッド、イベントなどがある。

フィールド

クラス内の変数。
オブジェクトが存在する限り値が保持される。

コンストラクタ

フィールドの初期化をするメソッド。
入力チェックなどもここでする。
クラス名と同じ名前。
インスタンスを生成すると最初に実行される。

this

クラスの現在のインスタンスを参照するときに付け加えるキーワード。

アクセス修飾子

private 宣言されているクラスなどの内側からのみアクセスできる
public どこからでもアクセスできる
protectedinternal 同じプロジェクト内(正確には、同じアセンブリ内の任意のコードから参照可能)
protected internal
private protected

フィールドは基本的にprivateにする(カプセル化)

アクセス修飾子の省略

フィールド、コンストラクタ、メソッドのアクセス修飾子を省力するとprivateになる。
クラスのアクセス修飾子を省略するとinternalになる。(同じプロジェクト内からアクセス可能)

static

フィールドやメソッドにつけると、個別のインスタンスに依存しないフィールドやメソッドになる。
(個別の値を持っていたり、その値を読み書きしたりしない)
staticなフィールド/メソッドはクラスのインスタンス間で共有される。
インスタンス化しなくても呼び出せる。
呼び出すときはクラス名.staticフィールド/メソッド名

呼び方いろいろ
staticフィールド・staticメソッド
静的フィールド・静的メソッド
クラスフィールド・クラスメソッド


Console.WriteLine();
ConsoleクラスのWriteLineメソッドはsaticメソッドなのでnewでインスタンス化しなくても使える。
引数で与えた文字列をコンソールに表示するという機能は個別のインスタンスに依存しないため、staticで定義されている。
このように、標準で用意されているクラスには静的フィールドや静的メソッドがたくさんある。

プロパティ

privateフィールドの読み書きや計算を実装する機能。
慣例的に大文字で始める。
フィールド名と違っても良い。
get,setにアクセス修飾子をつけられる。

プロパティの省略形(自動実装プロパティ)

値を返す、代入するだけのプロパティの場合省略形で書ける。
内部的にフィールドが自動で実装されるため、フィールドの記述は不要。
コードスニペットprop で簡単に入力できる。

詳しくは以下を参照
【C#】クラスの作成

タイトルとURLをコピーしました