Webでオブジェクト指向プログラミング

0001nobodyさん2005/12/02(金) 11:18:17ID:lnZM9OlM
サーバーサイドWebプログラミングのOOスレです。

・OOP、MVC、デザパタなどのコンセプト的な話題
・OOにまつわる言語比較(言語批判はその言語で開発してる人に失礼にあたることが多いのでなるべく禁止でお願いします)
・保守、再利用、生産性、開発環境などの実践的な話題
・Webサーバ、DBなどの外部との親和性に関する問題
・学習、教育などの方法論

などなど。

前スレ
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/

0392nobodyさん2009/01/01(木) 09:50:26ID:???
それは自分でも重々承知しているわけで、
だからこそ質問しているわけですが・・・

0393nobodyさん2009/01/01(木) 09:59:06ID:???
ちゃんと基礎から勉強した方がいいよ

0394nobodyさん2009/01/02(金) 22:50:28ID:???
質問できるレベルにさえ達していない。
前提知識がないから、回答する側も途方にくれてしまう。
入門書等でWEBアプリってどういう風に作るのか、大まかにつかんだ方がいいかも。

0395nobodyさん2009/04/17(金) 23:34:39ID:???
フレームワークのチュートリアル見れ

0396nobodyさん2009/07/09(木) 01:01:48ID:qbvjwLD6
これって現行スレだったのかw

0397nobodyさん2009/10/23(金) 00:12:07ID:???
うわー オブジェクト重視っぽく書いていったらソースコードが500行余裕で超えた。
class hogeClassUnit extends dbConnectBase{
private var $name; // 以下20項目くらい
public function set_name($str){ // 受け取ったデータを加工したり精査したりでこれも20項目くらい
public function get_name(){ // クラスから取り出すだけ 以下20項目くらい
public function register(){ // ここまできて、登録とか何たらとかの処理を書き始める。

こういう風に細かくやるのが普通なのでしょうか?
単純なことが多いとはいえ、ずいぶんとソースコードが長い

0398nobodyさん2009/10/23(金) 00:27:46ID:???
律儀だなw
OOPの表面だけ真似るんじゃなくて本質を学んだほうがいいと思うぞ

0399nobodyさん2009/10/23(金) 03:13:03ID:???
粒度を上げるのだ

0400age2009/11/12(木) 11:26:43ID:FhD9csek
class a {

function getA(){
{
return new b('hoge');
}
}

class b{
public $a;
protected $_z;
public function __construct($data)
{
$this->a = $data+$data;

$this->_z = $data;
}
}

上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
のデータを取得したい場合はどうすればいいでしょうか。

たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのャCンスタンスを麹�ャしているのbヘ
aなのでb'のインスタンスは作られないですよね。



0401nobodyさん2009/11/12(木) 11:44:55ID:???
よく分からんが

>たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのインスタンスを作成しているのは
>aなのでb'のインスタンスは作られないですよね。

aでb'のインスタンスを作るように変更すればいいのでは。

>上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
>のデータを取得したい場合はどうすればいいでしょうか。

getZというメソッドを作るのはだめなの?

0402nobodyさん2009/11/12(木) 11:51:13ID:???
ああ何となく分かった、既存のaにもbにも手を加えたくないのか
変更しないで挙動を変えたいなら、それこそa'とb'を作ってメソッドをオーバーライドするしかないかと

0403sage2009/11/12(木) 14:29:44ID:FhD9csek
やっぱりオーバーライドするしかないですか。

有難う。

0404nobodyさん2010/05/13(木) 18:19:29ID:9BJiXr6f
おいおいおい!!こんなのあるのかよ!
http://okamikakushi.net/jp/wbiyhi1
俺やってみたけど、マジ寝てるだけで金くれたぞ!!

0405nobodyさん2010/05/15(土) 17:20:55ID:???
治験ですね分かります

0406nobodyさん2010/05/23(日) 16:33:14ID:ReStOCg4
他のプロジェクトで作成したフレームワーク、クラス、抽象クラス、インターフェースを
再利用したも猛者はいるか?

0407nobodyさん2010/05/23(日) 17:43:20ID:???
>>406
そんなのどこでもやってるだろ。

0408nobodyさん2010/05/24(月) 21:51:30ID:???
>>406ばっちりだ

0409nobodyさん2010/05/27(木) 12:15:02ID:???
ていうか再利用できない/しないフレームワークなんて嫌だな

0410nobodyさん2010/05/27(木) 20:21:31ID:P724q4SG
javascriptでツールチップを作れっ!オブジェクト指向チックによろしく!
って言われたら、どのようなオブジェクトを作りますか?

0411nobodyさん2010/05/28(金) 20:25:52ID:???
まず
クライアントサイドプログラムはWeb制作板へ
って言います

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script>
//<!--
window.onload = function(){
  kanako = createGirl('かなこ');
  miku  = createGirl('みく');
  haruhi = createGirl('ハルヒ');
};
/*
* クローンを作成
*/
function createGirl( name )
{
  var superClass = new girlClass();
  var superClone = function(){};
  superClone.prototype = superClass;
  //これで他に影響ないクローン完成
  var instanse = new superClone();
  //いわゆるコンストラクタ
  instanse.myName = name;
  return instanse;
};

/*
* おんにゃのこクラス定義
*/
function girlClass()
{
  //プロパティ宣言
  girlClass.prototype.myName   = "";
  //振る舞い
  girlClass.prototype.writeMyName = function()
  {
    document.write("私は"+this.myName+"だよ。<br />");
  };
}
//-->
</script>
</head>
<body>
<input type="button" value="Execute" onclick="onClickExecute()" />
<script type="text/javascript">
function onClickExecute()
{
  //おんにゃのこに名前を言ってもらう。
  kanako.writeMyName();
  miku.writeMyName();
  haruhi.writeMyName();
}
</script>
</body>
</html>

0414nobodyさん2010/07/15(木) 02:09:27ID:???
おっそうかそうか

0415nobodyさん2010/07/15(木) 04:17:09ID:hmDV/lDT
>>413
そんな事する意味が全くわからんwwww
なんのメリットがあるの??wwww
プロパティ宣言とかめっちゃウケルwww

0416nobodyさん2010/07/15(木) 13:49:38ID:???
オブジェクトなんちゃのサンプルの悪いところはそこなんだよな。
なんでそんなことしなくちゃいけないんだよってやつ。

0417nobodyさん2010/07/15(木) 16:43:10ID:???
window.onload = function(){
kanako = new girlClass('かなこ','girlmessage');
miku = new girlClass('みく','girlmessage');
haruhi = new girlClass('ハルヒ','girlmessage');
};

function girlClass( name , target )
{
girlClass.prototype.myName = name;
girlClass.prototype.target = target;


って書いたら全員ハルヒになったぞ

0418nobodyさん2010/07/15(木) 16:49:47ID:???
そうか、プロトタイプとはそういう事ね
親クラスとして定義されている関数は触るなと。
了解した。

0419nobodyさん2010/07/15(木) 16:51:43ID:???
>>415
>プロパティ宣言とかめっちゃウケルwww
ねーと使い方わからねーだろ屑

0420nobodyさん2010/07/15(木) 17:01:58ID:???
誰か2回 new している説明をお願いします。

0421nobodyさん2010/07/15(木) 17:10:38ID:hmDV/lDT
.

0422nobodyさん2010/07/15(木) 17:52:55ID:???
残念だなあ。
君は何か勘違いしている様だけど、聞いて揚げ足取りをしたいんじゃなくて、
単純に君の意見が面白そうだから聞いてみたかっただけなんだよ。
もっとまともなレスを期待してたんだけど。ごめんね。
ちなみに君は揚げ足を取られる事を恐れているようだけど、それは違うと思う。
揚げ足を取られるのは、君に隙があるから。
隙だらけの人間ってのはそうやって余計な所でつまらない恥をかく事になるもんだよ。
他人につっこまれる事は、自身の知識をより客観的で多角的なものとする為に
有益な指針となるものだと思うな。

0423nobodyさん2011/10/14(金) 13:22:35.87ID:oOJ5iuHv
オブジェクト指向って単純にいうと

パラメーターと処理を
外部からひっかきますことができない思考ってことですか?


0424nobodyさん2011/10/14(金) 14:09:07.20ID:???
それは単なるカプセル化

0425nobodyさん2011/10/15(土) 08:06:59.53ID:WVUj974d
パラメーターと処理を外部からひっかきますことができない思考 →カプセル化

CSSのカスケードみたいにカプセルを別のカプセルに引き継ぐ思考 →継承

?????? 思考 → ポリモーフィズム


0426nobodyさん2011/10/19(水) 11:59:18.77ID:PXmn+I34
オブジェクト指向のクラスの中身は、
手続き型の記述がカプセリングされて入ってる・・・

と思って間違いないですか?

0427nobodyさん2011/10/29(土) 05:40:27.70ID:???
間違いです

0428nobodyさん2011/10/29(土) 11:06:32.36ID:???
理由が無いので、信じません。


次。

0429nobodyさん2011/12/09(金) 14:10:33.19ID:jzegoNJ7
ポリモーフィズムってなんですか?
継承元の親クラスが、なんなのか?によって、
同じ名前のクラスが 全く違う動きをする
みたいなかんじですか?

となると子クラスには、親クラスがこうの時はこう、
親クラスからこういうパラメータが取ってこれてたらこう
みたいな処理がかかれてるんですか?

0430nobodyさん2011/12/09(金) 15:58:29.85ID:???
>>429
特定のインターフェース規格に準じるということです。

0431nobodyさん2011/12/12(月) 20:11:59.00ID:???
>同じ名前のクラスが 全く違う動きをする

そんなことされたら困ります

0432nobodyさん2013/02/14(木) 12:44:29.53ID:yCRXEb/V
オブジェクト指向が良く分からないので質問。
例えば、部署を選択すると社員を一覧表示する機能を考えた場合、
社員テーブル(社員NO、社員名、部署NO)と部署テーブル(部署NO、部署名)を作成し、
単にSQLで一覧を取得すれば良いと思うけれど、オブジェクト指向では違うと認識。

そこで、「社員クラス」「部署クラス」「社員部署クラス」を作成。

社員クラス(社員NO、社員名、[社員コード、社員名を返すメソッド])
部署クラス(部署NO、部署名、[部署コード、部署名を返すメソッド])
社員部署クラス(社員NO、部署NO、[社員NO、部署NOを返すメソッド])

とりあえずテーブルも上記3テーブル。

また機能毎に「選択画面クラス」と「一覧表示クラス」を作成。

@選択画面クラス
1.部署クラスをnew
2.[部署コード、部署名を返すメソッド]で部署コード、部署名を取得

A一覧表示クラス
1.社員部署クラスをnew
2.選択画面で選ばれた部署コードをもとに[社員NO、部署NOを返すメソッド]で社員NOを取得
3.社員クラスをnew
4.[社員コード、社員名を返すメソッド]で社員コード、社員名を取得

これで考え方としてはあってますか?
部署コードを社員クラスに持たせるのは変?

04334322013/02/14(木) 13:33:18.72ID:???
とりあえずはDBのことは忘れて考えればいいのか
明らかに勘違いしていることが分かった

0434nobodyさん2013/02/15(金) 00:04:24.49ID:???
>>432の質問取り消しで

0435nobodyさん2013/10/19(土) 11:41:11.05ID:???
1秒でわかるオブジェクト指向

こりあん えくすてんど こっくろーち いんぷりめんと ないんせんちみーたーかのん

0436nobodyさん2015/10/06(火) 02:16:35.16ID:Z1aqUg5G
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点

0437nobodyさん2016/06/05(日) 01:57:39.31ID:6HPQLJvt
過疎ってんなあ

0438nobodyさん2016/10/24(月) 11:27:29.75ID:???
保守上げ

0439nobodyさん2016/12/22(木) 12:49:53.10ID:???

0440nobodyさん2017/12/30(土) 13:45:47.56ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

T8PRBRW3UD

0441nobodyさん2018/02/20(火) 04:56:54.42ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

0442nobodyさん2023/08/20(日) 22:07:02.94ID:???
プハァー ~~-v( =´o`=) 。o 〇 ○

新着レスの表示
レスを投稿する