オブジェクト指向について質問ある奴いるか?

1: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:35:54.627 ID:fLFWZIl00.net
質問あるか?

6: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:41:33.922 ID:jk6NtB6Bp.net
派生クラスからは見えるけどパッケージからは見えないようにするにはどうすればいいの?

 

8: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:42:26.612 ID:vUGyggSJp.net
>>6
protected

スポンサーリンク

15: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:47:31.062 ID:fLFWZIl00.net
>>12
Javaにもあるだろ

 

17: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:48:10.864 ID:jk6NtB6Bp.net
>>15
パッケージ内からみえちゃう

 

25: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:57:30.170 ID:fLFWZIl00.net

>>17
確かに
呼び出し元をチェックして弾くことはできそうだけど…

ちょっと考える

 

54: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:21:12.142 ID:fLFWZIl00.net

>>6の質問はそういやそうだなって思った
呼び出し元をチェックしてブロックするしか思いつかない
誰か知ってたら答え教えて

Javaの考え方として参照させたくないならパッケージ分けてくれってことだと
思うんだけど

 

64: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:32:34.333 ID:fLFWZIl00.net
>>6
ぐぐってしまった
基本同じことが書いてあった
http://stackoverflow.com/questions/10784674/how-to-restrict-protected-method-access-to-only-subclasses

 

10: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:43:26.946 ID:BotO1fZrH.net
オブジェクト指向ってなに?
今、ちょうどJavascriptやってるが分からんのだが

 

13: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:46:15.835 ID:fLFWZIl00.net

>>10
データと操作を包むもの

聞きたいポイントをもうちょっと教えれてくれれば回答する

 

18: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:48:24.818 ID:BotO1fZrH.net

>>13
そもそもオブジェクト指向というものが分からん

2015年というオブジェクトの中の8月クラスの中の16日ってイメージなんだろ?
誰が得すんの?

 

23: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:54:37.074 ID:fLFWZIl00.net

>>18
例がいかんな

JavaScript知ってるならフォームとかボタンとかは分かるだろ
ブラウザプログラムの中でフォームクラスとかボタンクラスがあると思ってくれ

 

24: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:55:30.005 ID:BotO1fZrH.net
>>23
オブジェクトとかクラスがあると何か良いことあんの?

 

28: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:03:05.196 ID:fLFWZIl00.net

>>24
ボタンごとに押したときの動作が違うでしょ
でもボタンの操作を呼び出す側はその違いを意識する必要がない

button1とbutton2はそれぞれ違うアクションをするけど
どちらもbutton1.push()、button2.push()みたいな同じように呼び出せばいい
そうするとボタン側でそれぞれに応じたアクションが実行される

 

16: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:47:41.991 ID:CCOXlqwUp.net
まず理想的なオブジェクト指向を実装している言語ってなんだと思うよ?
LSPやOSP,DIPの質問もしていい?

 

19: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:48:38.685 ID:vUGyggSJp.net
>>16
言語仕様としてはC#だと思う

 

20: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:49:04.494 ID:CCOXlqwUp.net
>>19
理由は?

 

21: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:50:33.896 ID:fLFWZIl00.net

>>16
言語の優劣については構築したいプログラム次第
だから一般的に議論する気はない

LSPやOSP,DIP??
知らんけど
質問するならどんなものか説明してからにしてくれ

 

22: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 12:53:35.335 ID:CCOXlqwUp.net

>>21
言語優劣じゃなくてオブジェクト指向を再現できているって面で聞いたんだけど

あとLSPやDSPはオブジェクト指向たるものを構築する法則ね

OCPはオブジェクトの確保と解放について
LSPは継承についての法則のことなんだけど

 

27: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:00:38.552 ID:fLFWZIl00.net

>>22
C++とJavaは立派なオブジェクト指向言語だと思うけど

Open close principleとリフレコ?なんとか原則みたいなのか
オッケーオッケー
名前は忘れてたけどちょっと読み直せば思い出せる
大丈夫

 

29: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:03:45.634 ID:xTbVcyBR0.net
オブジェクト化の利点って確かそのクラスを再利用することから来てるんだよな?

 

40: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:12:00.325 ID:fLFWZIl00.net
>>29
それもあるけど
データをオブジェクトの中に包むことができるのが一番の利点だと思ってる

 

43: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:13:39.084 ID:CCOXlqwUp.net
>>40
包み隠すなら他の方法でもできますやん
C言語なrソース単位で包み隠してますやん

 

36: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:10:02.447 ID:xTbVcyBR0.net

オブジェクト指向なソースコードが実現するかどうかは
インスタンスメソッドを上手く利用できるかどうかがひとつの大きな要素になるわけだし

特にインスタンス生成をしなきゃ手続き型とあまりかわらないってことをいってるんだが

同じ処理をオブジェクト化したとしても
そこに入る値が全く異なる場合、結局同じ処理に代入をする必要があるからあまり意味ない

 

46: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:15:48.711 ID:fLFWZIl00.net

>>36
手続き型のプログラムをJavaで書くことができるからって
Javaが手続き型の言語ってことにはならない
おかしな設計をする奴がいるのは言語の問題じゃない

「同じ処理をオブジェクト化したとしても
そこに入る値が全く異なる場合、結局同じ処理に代入をする必要があるからあまり意味ない」
ってどういうことだろ

 

41: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:12:42.232 ID:xTbVcyBR0.net
ついでにいうけどjava単体じゃほんとにオブジェクト指向として不足分いっぱいあるとおもう
せめてフレームワーク込みじゃないとほんと手続き型と変わらん

 

45: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:15:12.838 ID:xTbVcyBR0.net
C#はほんとにオブジェクト指向だけどjavaは不完全なオブジェクト指向なんだよなぁ

 

52: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:18:14.944 ID:xTbVcyBR0.net
Cは関数が仕事をするためには
データを受け渡ししなくてはならないんですがそれは

 

57: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:24:21.586 ID:fLFWZIl00.net
>>52
オブジェクト指向ならデータを渡す必要はないケースもたくさん

 

59: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:25:05.896 ID:6NgFGfW20.net
オブジェクト指向って構造体みたいなのでいろんな物の雛形用意できたらそれで作ったパーツ使いまわしてなんでも作れるんじゃね!?って感じであってる?

 

62: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:30:25.332 ID:fLFWZIl00.net
>>59
不十分なところがあるような気はするけど間違ってはいない

 

67: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:33:36.896 ID:6NgFGfW20.net
>>62
だいたいあってるってことか
良かった
C++少しかじったことある程度なのに人に聞かれたりするからさ

 

65: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:33:06.084 ID:/UebXibd0.net
>>59
パッケージにして管理しやすいけどその分外部からの干渉を噛ませにくて困るからクロージャで無理矢理穴あけたくなるわ

 

63: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:31:22.000 ID:xTbVcyBR0.net

それならそうすればいいじゃんっていうけど
それをするとレビュー時に客が納得してくれないんだよなぁ

だから結局同じような処理は全部異なる値ごとに全部記述するんだよなぁ

マジjavaってクソ

 

69: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:35:42.377 ID:fLFWZIl00.net
>>63
よく分からんのだがMapやListって話とcaseで分けるって話は
違う話をごっちゃにしてるのか、一つの要件なのか?
ちょっと分からんのだけど…

 

71: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:38:22.091 ID:xTbVcyBR0.net

>>69
1つの要件としてそれらをcaseで分けることは可能
でもそれをするとソースを客にうpしたときにソースが見にくいって怒られる

じゃあもうjavaでやる利点なくね←イマココ

 

73: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:41:32.947 ID:fLFWZIl00.net
>>71
オブジェクト指向の世界じゃcase文は設計の品質が低いことを示すって言われているな
理想的にはオブジェクト自身が適切な動作を判断するようにすべきなんだが

 

92: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:12:07.932 ID:zTOzdvGdp.net

>>63
そういう客に合わせて仕事する事でお金をもらう
そういうビジネスを君(or君の会社)がしているわけで
悪いのはJavaではなく、君の要望と仕事のミスマッチだろ

変に低レベルなプログラムを要求する仕事は、受ける側にとっては金銭的、または技術的な損失になりうる

 

68: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:35:14.294 ID:2kkOoRmk0.net
Cしかできない俺にオブジェクト指向とやらを説明してくれ

 

72: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:39:46.526 ID:fLFWZIl00.net

>>68
Cの関数は処理に使うデータをすべて渡す

オブジェクト指向だとオブジェクト自身がデータを持ってるから
メソッドを呼び出してくれるだけで処理してくれる
もちろん100円預金するみたいな場合は100を渡す必要がある

 

76: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:43:50.316 ID:2kkOoRmk0.net
>>72
その説明だとそんなすごいことのようには思えないんだけど
そんなオブジェクト指向オブジェクト指向いうほど便利なのかね

 

79: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:48:37.768 ID:fLFWZIl00.net

>>76
何年も使い、その間に改修が入ることを前提にすれば大きな違い
企業で使われてるシステムとか5年、10年使われることは普通
その間に業務改革だったり、組織変更だったり、法律の改正とかで
機能を追加したり、変更するのはしょっちゅう

そうすると関数に渡すべきデータを追加しなきゃいけないことがよくある
そのたびに関数呼び出しをすべて修正したり追加の関数を定義しなきゃいけないCと
オブジェクト指向の違いは大きい

 

74: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:43:01.270 ID:6NgFGfW20.net
ポインタ渡しで参照先の型が違って意味不明な結果になるみたいなのも防げるのか

 

75: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:43:36.285 ID:fLFWZIl00.net
>>74
Javaはポインタ操作がないからそういう問題は回避できる

スポンサーリンク

77: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:44:22.055 ID:fLFWZIl00.net
>>74
代入先とクラスの型が違えばコンパイル時にエラーになるしな

 

78: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:44:42.347 ID:Ke0V+r0d0.net
>>74
コードが見やすくなるだけで根本的に無くなるわけじゃないかな

 

84: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:55:25.356 ID:/UebXibd0.net
だいたい手を抜くとデータをまとめるためだけにオブジェクト使ってしまうよな

 

85: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:56:44.351 ID:fLFWZIl00.net
>>84
データの固まりはそれに対する操作の単位でもあることが多いからね

 

86: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 13:58:16.714 ID:zTOzdvGdp.net
オブジェクト指向の意味がないとか話してるやういるけど
オブジェクトを独立した状態機械として扱えるように設計しなければ、手続き型と変わらん
言語云々以前に使う側の理解の問題
アーキテクチャ理解せずにフレームワーク使うやつも同様

 

87: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:02:25.999 ID:/UebXibd0.net
>>1はJavaで話してんのか?Javaだとインターフェースて呼ぶんよな?objcだとdelegateやったけど
あれの使うべき場面はどんな場面やと思う?何かに現実の物や仕組みに例えてみてくれ

 

88: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:04:53.440 ID:fLFWZIl00.net

>>87
複数の要素の集まりを管理するListインタフェースがある
それをリンクリストで実装するLinkedListだったり、配列で実装するArrayListだったりがある
どちらもListインタフェースにしたがって共通の操作ができる

共通の操作をインタフェースとする

 

91: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:11:38.529 ID:/UebXibd0.net
>>88
使い道や使い方を掘り下げるとキリがないから簡単なやり方でそれを現物に例えられんか?

 

99: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:22:10.639 ID:3xzx8m8x0.net

>>91
具体的な使い道や使い方は無数にあるが、意味しているものはたった1つでしかない

「ある特定の使用法に足るオブジェクトである事を明示する」

つまりダックタイピングと型安全性を両立するためのものだ

 

97: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:18:17.512 ID:zTOzdvGdp.net

>>87
「飯くれ」インターフェイスを
母ちゃんに付けるとカレーが出てくる
定食屋に付けるとミックスフライ定食がでてくる
中華料理屋に付けると麻婆豆腐が出てくる

いちいち呼び出し先ごとに「カレーくれ」「ミックスフライ定食くれ」「麻婆豆腐くれ」と呼び分けなくても
お前は「飯くれるやつ」に「飯くれ」って言えば済む

 

107: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:37:15.086 ID:3xzx8m8x0.net

>>97
それは具体的な用法になってるからちょいと違う話だな

「飯くれ」インターフェースを持つ相手は、少なくとも「飯くれ」と言える事が保障されている
何でもいいから飯が欲しい場合、兎に角「飯くれ」インターフェースを持ってる相手に頼めば飯が来る
相手の実際のクラスがカーチャンか定食屋か中華料理屋かは一切問わない

というのが本質的なインターフェースの話

 

89: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:05:57.987 ID:mfQL/Zump.net
JavaのジェネリクスとC++のテンプレートの違いがイマイチよくわからない

 

90: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:11:11.169 ID:fLFWZIl00.net

>>89
Javaのジェネリクスはクラスを明示せずにクラスを定義できる
ジェネリクスを利用するときにクラスを特定する

Listを定義するときには要素のクラスは定義しない
利用するときはList<Integer>として要素がIntegerだと特定するみたいな

C++のテンプレートは分からない

 

98: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:21:42.617 ID:KGxpJCRm0.net
一方java入門者の俺氏は1つのクラスに2,3000行のプログラムを書いている模様

 

101: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:27:53.556 ID:zTOzdvGdp.net

カレー屋は料理人に「カレーくれ」インターフェイスのついた人しか雇えない

母ちゃん、インド人は
「カレーくれ」インターフェイスを持ってるので雇えるが
中華料理人は「カレーくれが」ないので雇えない

ただし、この場合
母ちゃんはハウスバーモンドカレーを作るし
インド人はインドカレーを作る

なお母ちゃんがインド人である可能性は考慮していない

 

102: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:29:36.996 ID:fLFWZIl00.net
>>101
でもその説明だとクラスがどこに当てはまるのか分からなくない?

 

103: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:31:01.826 ID:QrZaSV6Jp.net
>>102
カレー屋
インド人
母ちゃんが
中華料理人
カレー

 

105: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:35:11.872 ID:fLFWZIl00.net
>>103
中華出すインタフェースは飯出すインタフェースの拡張インタフェースなんだろ
中華料理人を料理人の派生クラスにするならインタフェースの存在意義がはっきりしない

 

108: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:43:10.223 ID:QrZaSV6Jp.net

>>105
抽象化を間違えた
料理人の派生ではないな、インド人、かーちゃん、中国人
だな

>>107
すまん、まとめて「飯くれるやつ」って書いてしまったが、飯くれインターフェイスってことだ
つまりそういう事だ

 

109: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:47:17.591 ID:fLFWZIl00.net

>>108
ん、ん?
だんだん話がおかしくなってるような…

そもそもインタフェースは実装含まない、クラスは実装含むってのが基本だから
料理人で説明したのが間違いなような…

 

110: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:49:11.811 ID:QrZaSV6Jp.net
>>109
つまり、かーちゃんはインド人が倒れても代打に立てる!

 

112: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:50:22.463 ID:fLFWZIl00.net
>>110
インドカレー屋でバーモンドカレー出されたら怒るだろ

 

113: 以下、\(^o^)/でVIPがお送りします 2015/08/17(月) 14:51:56.721 ID:QrZaSV6Jp.net
>>112
なぁに、どうせ客は日本人さ!

引用元: http://viper.2ch.sc/test/read.cgi/news4vip/1439782554/

関連記事

86b8f07f598b2a88b0fbf26232b43f2b_s

cronで指定した時間にphpを使ってメール送信したいけど出来ないの(´;ω;`)

1: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:16:42.7

記事を読む

812be418140f1a7eaaa465294d4ed605_s

AI作りたいんだけど、どうやって作るの?

1: 以下、\(^o^)/でVIPがお送りします 2015/09/30(水) 01:08:16.0

記事を読む

https---www.pakutaso.com-assets_c-2015-06-GREEN_O20140125-thumb-1000xauto-16629 (1)

Javaからプログラム始めたけど関数で躓いて3日経った

1: 以下、\(^o^)/でVIPがお送りします 2015/07/24(金) 08:05:24.6

記事を読む

https---www.pakutaso.com-assets_c-2015-06-PAK85_rakugaki20141223105016-thumb-1000xauto-18177

「回避率95%だけど被ダメージ2倍になるスキル」と「被ダメージが1に抑えられるけど回避率5%になるスキル」だったら

1: 以下、\(^o^)/でVIPがお送りします 2015/06/14(日) 11:57:58.1

記事を読む

https---www.pakutaso.com-assets_c-2015-06-WEB86_bonpc20150207122815-thumb-autox1000-18166 (1)

プログラミングが上達するにはたくさんプログラムを書くのでなく、角度を変えて見る練習を毎日すること

1: 以下、\(^o^)/でVIPがお送りします 2015/07/27(月) 20:41:13.2

記事を読む

https---www.pakutaso.com-assets_c-2015-03-MAX86_ugegege20150207110830500-thumb-1000xauto-12260

プログラム単語を覚えるアプリみたいなのない?

1: 以下、\(^o^)/でVIPがお送りします 2015/06/28(日) 11:51:37.1

記事を読む

https---www.pakutaso.com-assets_c-2015-06-PAK88_tetuyaakenosyain20141123141151-thumb-1000xauto-18076 (1)

C言語PHPマスターしたけどプログラマーになりたくないでござる

1: 以下、\(^o^)/でVIPがお送りします 2015/07/06(月) 03:26:56.3

記事を読む

スクリーンショット 2014-06-07 3.21.10

大学と本屋どっちがプログラマーのヘッドハンティング向きなの?

1: 以下、\(^o^)/でVIPがお送りします 2014/05/25(日) 00:12:33.3

記事を読む

easyidec3

一見まともだが悪意のあるコードを競うC言語コンテスト開催

1: ハーフネルソンスープレックス(宮城県)@\(^o^)/ 2015/08/19(水) 22:

記事を読む

スクリーンショット 2014-05-16 8.03.03

【iOS】会社辞めたニート3人が集まってアプリ開発した結果wwwwwww

1: 名無しさん 2014/03/18(火)15:02:12 ID:8vNQxQBmg

記事を読む

Huawei-Mate-8-benchmark-post-launch_1
Androidのベンチマーク、10万点を突破 インフレが止まらない

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ニククエ

hGJvbfh
せっかくの休みだ。原付で>>5に行く。

1: 名無しさん@おーぷん 2015/11/29(日)06:13:2

9xHNnte
XperiaZ5からdocomoのロゴだけ消せるシートが発売開始

1: 番組の途中ですがアフィサイトへの\(^o^)/です (アウアウ

bsLISA78_MBAsawaru20141018102912
子供にプログラミング教えることになりそうなんだが、どうやって教えたら良いんだ?

1: 以下、\(^o^)/でVIPがお送りします 2015/11/2

top
国内で最大容量の8THDDが2万円台に値下がり

1: 海江田三郎 ★ 2015/11/29(日) 14:43:35.

→もっと見る

  • Sorry. No data so far.

PAGE TOP ↑