兼業主夫 ときどき 指揮者 のち ギーク?

2009-02-03

「オブジェクト指向」って難しい

 これまで「オブジェクト指向」なるものを学ぶ必要性を感じなかったので横目で気にしつつも素通りしてきたのだが、C#を始めたのでさすがに学ばない訳にもいかなくなって悪戦苦闘しているところ。

 とりあえず、だ、

class User
{
  private string strUserName;  //ユーザー名
  private string strCharaName; //キャラクタ名
  private string strCharaSex;  //キャラクタ性別
  private string strCharaAage; //キャラクタ年齢

  public string userName
  {
    get
    {
      return strUserName;
    }
    set
    {
      strUserName = value;
    }
  }

//〜〜以下略〜〜

}

(※ id:kidd-number5 さんのご指摘により一部修正しました)

というクラスがあるとして、よくあるサンプルだと

User taro = new User();
User hanako = new User();

てな具合に書いてあるが、これはユーザー数が明確に分かっている場合に使える手であって、ユーザー数が不特定多数の場合にどうすればいいのかがいまいち分からない。

public partial class MainForm : Form
{
  private User[] user;

  void skype_MessageStatus(ChatMessage pMessage, TChatMessageStatus Status)
  {
    user[0].userName = "";
  }
}

てな事はできるっぽいが、これだと例えば"userNameが「麻生太郎」なデータの存在チェック"をやろうと思うと、userの数だけぶん回してチェックする事になって「オブジェクト指向」っぽくない気がする。(Excel VBAとかだったら深く考えずにそうやってしまうんだけど)

 「オブジェクト指向」というものが「掴めそうで掴めない」ところがもどかしい。

なまえなまえ 2009/02/03 19:32 ------------------
if (user.equals(氏名)) {
// ユーザが一致した場合の処理
}
------------------

------------------
public boolean equals(string name)
{
if (this.username.equals(name)) {
return true;
} else {
return false;
}
}
------------------

あとはわかるかな?

hiko_shiko_s 2009/02/03 19:50 ふむー、分かったような分からないような。
頭では分かった気がするんですが、いまいち「しっくり」来た感じがしないんですよね。オブジェクト指向にまだ慣れてないからなんですが。
ありがとうございます。

kidd-number5kidd-number5 2009/02/03 20:17 メンバ変数がpublicなのがアレすぎるw

hiko_shiko_s 2009/02/03 21:30 うぉ、本当だ!
直しておきますw

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証