授業でした内容を自分のメモとして書き残します。
2018/05/16(水)の授業内容
■ 学校に関するもの
・ 今授業で使用している教室PCの追加メモリが届かない
・ sambaサーバからのコピーが異常に遅い
・就活での公欠は2ページ分カウント宣言
#オブジェクト指向の3大要素
オブジェクト指向の3大要素とは、以下の3つである
- カプセル化(隠ぺい)
- 継承(インヘリタンス)
- 多態性(ポリモーフィズム)
##1. カプセル化(隠ぺい)
⇒ オブジェクトの持つ任意のメンバーを隠ぺいすること
class Years
{
private short _item;
public short Item
{
(中略)
}
private short[] _items;
public short[] Items
{
(中略)
}
private short[] CreateItems()
{
(中略)
}
}
〇 YearsインスタンスのメンバーにYearsクラス以外からアクセス
⇒ ItemプロパティとItemsプロパティのみアクセスできる
※ その他のメンバーは、Yearsクラス内からのみアクセスできる
アクセス修飾子
カプセル化を実現するためのキーワード
ex) public(公開), private(非公開)...
■ 公開レベル
⇒ アクセス修飾子を必要に応じて使い分ける
※ いくつかを以下にあげる
-
private
最小の公開レベル、自身のメンバーからのみアクセスできる -
protected
privateのアクセスに加え、この型を継承したクラスからアクセスできる -
public
最大の公開レベル、この型のメンバーはすべてに対し公開されている
##2. 継承(インヘリタンス)
⇒ 基本クラスを継承し、新しいクラス(派生クラス)を作成できる機能
〇 継承の規則
単一継承
派生クラスは複数の基本クラスを持つことができない
■ Objectクラス ?
.NET Frameworkのクラス階層の基本クラスであり、型階層のルートである
class Section : object
{
...クラスの実装
}
すべてのクラスは例外なく、Objectクラスを継承している
##3. 多態性(ポリモーフィズム)
⇒ 型変換という、オブジェクトのデータ型を変換する機能(?)
〇 型変換には、二つのものがある
-
暗黙のうちに実行できるもの
⇒ 代入演算子を使用 -
明示的に実行しなければならないもの
⇒ キャスト演算子かas演算子を使用し、変換した結果を代入
■ as演算子とキャスト演算子
as演算子
- 参照型の変数のみ使用可能
- 型変換に失敗するとNULLを返す
キャスト演算子
- 値型、参照型どちらにも使用可能
- 型変換に失敗すると例外エラーが発生する
!! 例外エラーは処理コストがかかるとともに、処理の流れに大きく影響する !!
⇒ 可能ならas演算子を使用する
■ ボックス化 ?
値型を参照型にすること
ボックス化 ⇔ ボックス化解除
int i = 1;
Object o = i;
int j = (int)o;
※ 高速に処理をさせたい場合、使用を避けると良い
最後までお読みいただきありがとうございました。