俺様がJavaを極めてニートを脱出しようともがくスレ
■ このスレッドは過去ログ倉庫に格納されています
00011
2005/10/21(金) 17:27:120002デフォルトの名無しさん
2005/10/21(金) 17:28:020003デフォルトの名無しさん
2005/10/21(金) 17:28:09いいとこ知ってるぞ。
0005デフォルトの名無しさん
2005/10/21(金) 17:29:360006デフォルトの名無しさん
2005/10/21(金) 17:30:05専門いくより大学のほうがよくないか?
だが、専門いく金すらない俺。
独学しか無い気がする
0007デフォルトの名無しさん
2005/10/21(金) 17:30:46(´・ω・`)
ニート脱出が目的じゃなくて一応プログラマという夢が・・・orz
00081
2005/10/21(金) 17:32:42クラス、コンストラクタ、メソッド(関数)
継承がいまいちよくわからん。
0009デフォルトの名無しさん
2005/10/21(金) 17:33:290011デフォルトの名無しさん
2005/10/21(金) 17:38:28その程度の経験もない奴は使い物にならん。
職場をサークルか何かの延長だと思いやがる。
そして何よりこういうのはマ板でやれ。
00121
2005/10/21(金) 17:41:250013デフォルトの名無しさん
2005/10/21(金) 17:46:27プログラム書けるだけの奴なんか掃いて捨てるほど居るから・・・
0014デフォルトの名無しさん
2005/10/21(金) 17:48:2910日覚えるJava入門教室という本買ったけど、一人でやってても面白くないよね。
俺もニートだからいいよね。
0015デフォルトの名無しさん
2005/10/21(金) 17:49:2620代後半ならもう無理
00161
2005/10/21(金) 17:50:0900171
2005/10/21(金) 17:50:420018デフォルトの名無しさん
2005/10/21(金) 17:53:44初心者でも使ってくれる。独学でやるより早い。
俺も専門学校では何もできなかったけど仕事でする様になったら嫌でも覚える
0019デフォルトの名無しさん
2005/10/21(金) 17:53:460020デフォルトの名無しさん
2005/10/21(金) 17:57:34プログラミングは8年くらいやってるが,
最初の1ヶ月くらいである程度のものは作れるようになったぞ.
そりゃまあド汚いプログラムだったけど.
00211
2005/10/21(金) 18:01:36String title;
String genre;
void printBook(){
System.out.println("タイトル:" + title);
System.out.println("ジャンル:" + genre);
}
}
class Nove1 extends Book{
String writer;
void printNov(){
printBook();
System.out.println("著\t者:" + writer);
}
}
class Magazine extends Book{
int day;
void printMag(){
printBook();
System.out.println("発 売 日:" + day + "日");
}
}
00221
2005/10/21(金) 18:02:10public static void main(String[] args){
Nove1 nov = new Nove1();
nov.title = "しおりの大冒険";
nov.genre = "ファンタジー";
nov.writer = "アンク";
Magazine mag = new Magazine();
mag.title = "月刊Javaの絵本";
mag.genre = "コンピュータ";
mag.day = 20;
nov.printNov();
System.out.println();
mag.printMag();
}
}
00231
2005/10/21(金) 18:03:58ただsuperがいまいちよくわかんね
00241
2005/10/21(金) 18:05:070025デフォルトの名無しさん
2005/10/21(金) 18:08:11printNov()とかMagとか無駄。
あとコンストラクタの引数つかえ。
0026デフォルトの名無しさん
2005/10/21(金) 18:10:06プログラムやったこと無いようなやつでも平気で入ってくるから気にするな。
0027デフォルトの名無しさん
2005/10/21(金) 18:11:56それよか社会経験。これない奴は使えない。
使えない雑魚が奇跡的に生き残ってクサレ上司に進化するからヤメレ。
0028デフォルトの名無しさん
2005/10/21(金) 18:13:550029デフォルトの名無しさん
2005/10/21(金) 18:15:23この程度なら数学とか関係ないけど,
この道で生きていくなら理工系大学1〜3年程度の数学は知ってる方が良い.
あと数理論理やグラフ理論なども.
00301
2005/10/21(金) 18:16:30title = t;
qenre = q;
writer = w;
}
Noval new Noval("しおりの大冒険","ファンタジー","アンク");
こんな感じ?
その前にサブクラスからコンストラクタってできるんだろうか?
間違っててすごい勢いで叩かれる気がする(´・ω・`)
00311
2005/10/21(金) 18:19:31つまりprintNovとMagメソッドをprintBook()に全部入れてしまえという認識であってるのかな
だとするとひとつのクラスで終わってしまう気がするが・・・
むしろサブクラス作る必要なんてないソースだよねこれ(´・ω・`)
0035マイク ◆yrBrqfF1Ew
2005/10/21(金) 18:41:250037マイク ◆yrBrqfF1Ew
2005/10/21(金) 18:45:4500381
2005/10/21(金) 18:45:48またミス
Shift+Enter押す癖がついて困るorz
>>35
>>16-17
ところでsuperを使うと子クラスから親クラスのフィールドとかメソッド参照できると
本に書いてるけど、別にsuper使わなくても参照できなかったっけ?
確認してないからわからないけどそういう認識でいいのかな
0039デフォルトの名無しさん
2005/10/21(金) 18:48:34オーバーライドしてると子クラスからは親のメソッドが見えない
それを超えて見るときにsuperを使う
00411
2005/10/21(金) 18:52:21class A{
string namae;
int age;
void print(){
System.out.println(namae);
00431
2005/10/21(金) 19:02:14String namae;
int age;
void print(){
System.out.println(namae);
System.out.println(age);
System.out.println(tekitou);
}
}
class B extends A{
String tekitou;
void print(){
super.print();
}
}
class Ab{
public static void main(String[] args){
B AB = new B();
AB.namae = "NEET";
AB.age = 19;
AB.tekitou = "もうすぐ自殺";
AB.print();
}
}
コーディングしてる途中に気づきました。
というかオーバーライドというのをよく理解してなかった・・。
この場合親クラス、子クラス共に同じprint()というメソッドがあって
それを見分けるためのsuper。親クラス参照ならsuper.print();
子クラス参照ならそのままprint();(この場合は意味無いけど)という事なのかな
間違ってたら存分に叩いてくれorz
0044デフォルトの名無しさん
2005/10/21(金) 19:05:44じゃあそれを使う場合って思いつく?
などと深みに嵌めてみる
00451
2005/10/21(金) 19:10:21上の親クラスAのprint();メソッド内のSystem.out.println(tekitou);
をサブクラスBのprint()メソッド内に移植して、また新しくサブクラスC作り
tekitouだけを表示させたい場合に使う?
あってるかわからないというか日本語能力がない(´・ω・`)
00461
2005/10/21(金) 19:12:43String namae;
int age;
void print(){
System.out.println(namae);
System.out.println(age);
}
}
class B extends A{
String tekitou;
super.print();//変更点
void print(){
System.out.println(tekitou);
}//ここまで
}
class C extends A{//追加クラス
print();
}
class Ab{
public static void main(String[] args){
B AB = new B();
AB.namae = "NEET";
AB.age = 19;
AB.tekitou = "もうすぐ自殺";
AB.print();
}
}
こんな感じのときでつか?
00471
2005/10/21(金) 19:16:23String namae;
int age;
void print(){
System.out.println(namae);
System.out.println(age);
}
}
class B extends A{
String tekitou;
super.print();//変更点
void print(){
System.out.println(tekitou);
}//ここまで
}
class Ab{
public static void main(String[] args){
B AB = new B();
AB.namae = "NEET";
AB.age = 19;
AB.tekitou = "もうすぐ自殺";
AB.super.print();
AB.print();
}
}
メインメソッドの内容変更とBクラスの配置換えるだけでよかったかも
動作確認してないんでエラーでまくりかもしれません('A`)
0049デフォルトの名無しさん
2005/10/21(金) 20:24:3400501
2005/10/21(金) 21:42:340051ホスプロ ◆HOTsoUpxjY
2005/10/21(金) 21:42:56PGは年中不足してるので、片っ端から会社巡りすればどっか引っ掛かる。
一時期ほどじゃなくても組み込みやWEBや携帯での需要は必ずあるはず。
修羅場に経歴詐称の派遣でぶち込まれたら、便所の窓から逃げて来い。
その時はスーパーのレジ打ちやればいい。だめでもともと、ニートなんだから。
しかしもうちょい準備したいなら基本情報のJAVA取れば気休めにはなる。
00521
2005/10/21(金) 21:44:50だめぽ
00531
2005/10/21(金) 21:47:52基本情報のJavaは実践的でかなり難しいと聞くが('A`)
でも、それくらいじゃないと現場じゃ使えんのだろうなぁ。
経歴詐称の派遣とかマジであるのか。ガクブル
0054デフォルトの名無しさん
2005/10/21(金) 21:49:44. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0055デフォルトの名無しさん
2005/10/21(金) 22:12:06一つのクラスについてオブジェクトをたくさんnewして、
staticな変数とそうでない変数の値を色々書き換えてみろ。
そしたら違いが分かるから。
>>54
せめてズレてないAA貼れよぉw
顔もわからんAAじゃ煽りにならんよw
0056デフォルトの名無しさん
2005/10/21(金) 22:12:48正社員でもいいけど、労働組合もなく残業代が出ないところだと社員になっただけ損をする。
20代とか、すぐやめたいっていうなら派遣やアルバイトがお勧め
0057デフォルトの名無しさん
2005/10/21(金) 22:14:42> >>51
> 基本情報のJavaは実践的でかなり難しいと聞くが('A`)
おれが基本情報のJavaを受けたときはめったくそ簡単だったが。
5分で解けたぞ。というのは4年前の話だが。
それより、他の問題のほうが難しかった。
0058デフォルトの名無しさん
2005/10/21(金) 22:22:30> >>1
> PGは年中不足してるので、片っ端から会社巡りすればどっか引っ掛かる。
不足してる割には給料安すぎだよな。
正社員なのに派遣やバイトより安く使われるなんてイタイイタイ。
最近、バイトの募集みても、携帯電話開発では最低時給が950円なんてとこあってさ、
なぜかWebデザイナより給料安いんだよ。ありえね。
webデザイナは時給2000〜3000円ってところあるのに、
この格差は一体何事?っていいたい。この会社完璧にプログラマをなめきってるわいって思ったわい。
ある会社ではプログラマでも時給2000〜3000いくことはあるが。
この話をきくと、派遣よりアルバイトのほうが給料がたかいじゃないかって怒る香具師がいるが
しったことかと。
0059デフォルトの名無しさん
2005/10/21(金) 22:24:20Java FAQでぐぐれ
0060デフォルトの名無しさん
2005/10/21(金) 22:29:19ずれてないしwwww
0061デフォルトの名無しさん
2005/10/21(金) 22:30:28>携帯電話開発では最低時給が950円
レジ打ちしてた方が…
0062デフォルトの名無しさん
2005/10/21(金) 22:53:44数学の何が苦手なのかにもよるけどな。
算数的な計算ならまだなんとかなるが
論理とか形式が苦手だとすると結構ツライよ?
0063デフォルトの名無しさん
2005/10/21(金) 22:55:4500641
2005/10/21(金) 23:05:22数学は公式とか全然頭に入って無い感じ
やっぱ数学ちゃんと勉強しとくべきだったなー('A`)
0065デフォルトの名無しさん
2005/10/21(金) 23:24:54そりゃ公式は暗記するもんじゃなく基本原則から組み立てて作るもの
というちょっとした発想の転換が必要だな。
実は自分で公式を作ることと証明をすることプログラムを作ることの間には
対応関係があることが理論的には分かっている。
(専門用語では「Curry-Howard(カリー・ハワード)対応」という。)
ちなみに公式を暗記する必要があるのはテストには時間制限があるからで、
暗記したほうが早く解けて点取りに有利ということからきている。
(プログラムで言えばその場で計算する代わりに配列かなんか使って
前もって計算済みの値を使って一覧表にしておくようなものだ。)
つまり数学は本来は暗記モノではない。暗記しておくとテストで有利なだけだ。
また喩えて言えば掛け算を九九でやるのが暗記方式。
掛け算を足し算の繰り返しで定義どおり計算するのが「その場で計算」方式だ。
でプログラミングという作業は基本的に後者に近い。
後者のような手順を考えてそれを計算機に教え込む作業といっていい。
まぁ、高速化のために前者のテクニックを利用することもあるがその場合でも
暗記するのは人間ではなくコンピュータだし、
人間であるプログラマはその表をコンピュータに作らせるために
後者の方法で表を作るようにコンピュータに指示するのが仕事。
0066デフォルトの名無しさん
2005/10/21(金) 23:56:23「そりゃ」まで読んだ。
0067デフォルトの名無しさん
2005/10/22(土) 00:02:09「そのとき光恵の秘所に」まで読んだ。
0068デフォルトの名無しさん
2005/10/22(土) 00:30:30「仕事。」まで読んだ。
0069デフォルトの名無しさん
2005/10/22(土) 00:58:560070デフォルトの名無しさん
2005/10/22(土) 01:22:06仕事あんだから良いだろ
0071デフォルトの名無しさん
2005/10/22(土) 01:22:220072デフォルトの名無しさん
2005/10/22(土) 06:20:072年前受けたときは10分かかった。
年々難しくなっているの・・・か?
それでも子供だましのような問題ばっかりだったぞ。
0073デフォルトの名無しさん
2005/10/22(土) 10:55:50この文面から「少なくともゴシックは使って無い」と見た。
00741
2005/10/22(土) 12:58:3700751
2005/10/22(土) 13:00:24継承とかとごちゃごちゃになってもう('A`)('A`)('A`)?
00761
2005/10/22(土) 13:08:47void greet();
}
interface Talk{
void talk();
}
class Morning implements Greet,Talk{
public void greet(){
System.out.println("おはよう");
}
public void talk(){
System.out.println("いい天気ですね。");
}
}
class Meet{
public static void main(String[] args){
Morning morning = new Morning();
morning.greet();
morning.talk();
}
}
例題プログラムだとこういう風に書かれてるんだけど。このくらいならクラスで一括でまとめたほうが・・・
正直インタフェースとか使う場面って今後出てくるんだろうか(´・ω・`)
00771
2005/10/22(土) 13:14:36publicはどこからでもアクセスできるっていう認識でやってるんだけど
interfaceはクラスより弱いからpublicつけろって事なのかな。
正直優先順位なんて覚えてねー・・・
/*エラーメッセージ*/
Meet.java:10: Morning の greet() は Greet の greet() を実装できません。スーパー
クラスでの定義より弱いアクセス特権 (public) を割り当てようとしました。
void greet(){
^
Meet.java:14: Morning の talk() は Talk の talk() を実装できません。スーパークラ
スでの定義より弱いアクセス特権 (public) を割り当てようとしました。
void talk(){
0078デフォルトの名無しさん
2005/10/22(土) 14:01:50publicでないinterfaceなんかも作れる
メソッドの前のpublicがクラスやインターフェースの外からアクセスできる事を表してる
ちなみにinterface内にpublic/protectedでないメソッド・フィールドを作る事は無意味
この場合正常にオーバーライド出来ていないと思った方が良い
0079デフォルトの名無しさん
2005/10/22(土) 15:16:13Javaのinterfaceが如何に有用な機能であるかが分かりやすいと思う.
で,それを説明しようと思ったけど長くなりそうで書く気力が無いのでパス.
余談だけど,C++ではJavaのようなinterfaceが無いので抽象メソッドだけを定義したクラスを
多重継承してインターフェースをシミュレートすることになる.
00801
2005/10/22(土) 21:07:39ここわかりやすくていいです。(入出力ヘッダがiostreamだからちょっととっつきにくいかもしれないけど)
http://www.asahi-net.or.jp/~yf8k-kbys/
>>78,79
レスサンクス(実は半分も理解できてないけど・・)
何とか理解できるようにやります(´・ω・`)
0081デフォルトの名無しさん
2005/10/22(土) 21:59:040083デフォルトの名無しさん
2005/10/22(土) 22:08:45現場でヒーコラプログラム書かされてる
お陰様でオブジェクト指向なんてない
巨大クラスが3つ出来ましたとさ( ´・ω・`)
0085デフォルトの名無しさん
2005/10/22(土) 23:11:28簡単にいうと>>83みたいな奴はアーキテクトとしては使えないが、IT土方として有能と言う評価になる
次も同じような泥沼かマ板で悲鳴を上げてる連中の蠢く現場に放り込まれる
0086デフォルトの名無しさん
2005/10/23(日) 23:10:110087デフォルトの名無しさん
2005/10/24(月) 13:33:44というか歴史的には逆だ。interfaceをクラスでシミュレートというより
元々クラスの制限版がinterface。
理論上もinterfaceのはクラスの特殊なものと考えていい。
オブジェクト指向の基本である「データの隠蔽」によって
クラスにはそれ自身、またはその子孫のクラスのインスタンスのメソッドが利用する
内輪向けの「インターフェース」と一般外部向けの「インターフェース」ができる。
(protectedを考えるときは内輪向けをさらに二つに分けて考えているわけだ。
Javaの場合はさらにパッケージ内向けの「インターフェース」を表現する
デフォルト・アクセスというのもある。)
内輪向けの「インターフェース」のほうがデータの配置・表現など
実装の詳細により深くかかわるから当然複雑になる。
よってその継承をキチンと実装するメカニズムの実現はより大変になる。
(脱線だがこれはデータ隠蔽も一種のポリモルフィズム
と捉えることもできるという考え方。
同一のオブジェクトにクラスの内と外を表す二つの型=「インターフェース」が
結び付けられていると考えるわけ。)
C++のような多重継承は理論上可能であるし、
モデルを表現する能力を考えた場合有用でもあるが、
必ずしもその実現は簡単ではないしプログラマにわかりやすいとも限らない。
そこでJavaでは外部向け「インターフェース」だけを表現する、
クラスよりも簡単な仕組みとしてinterfaceを作った。
そして多重継承はinterfaceだけに制限することにした。
この決定によっていくらか表現力を失う代わりに
より実装しやすく簡潔で分かりやすいようにしたわけだ。
これは実用上、多くの場合はそれで十分だという観察に基づいている。
0088デフォルトの名無しさん
2005/10/24(月) 13:47:16またしても長いので「というか」まで読んだ。
0089デフォルトの名無しさん
2005/10/24(月) 13:52:04「従順に後ろを向いた彼女の柔らかでボリュウムのある双丘を割り開き」まで読んだ。
0090デフォルトの名無しさん
2005/10/24(月) 13:57:52オーバーライドって元々「上書き」ってなニュアンスだ。
祖先のクラスの定義に子孫のクラスの定義を上から書いて塗りつぶす感じ。
塗りつぶしてない部分の定義は先祖のクラスのままで、
塗りつぶした定義を参照するには一時的に「上塗りを透かして」見るわけ。
その「透かして見る」ことをあらわすキーワードがsuper。
0091デフォルトの名無しさん
2005/10/24(月) 14:01:57それだけじゃなくてその半年間に
一日どのくらいの程度の密度でやってきたかってことも重要。
0092デフォルトの名無しさん
2005/10/24(月) 17:25:21データ隠蔽はオブジェクト指向以前からのもんだろ.
オブジェクト指向の基本はオブジェクトの型(インターフェース)を規定して
それを介してメッセージを伝達することだと思っていたんだけど.オレは.
0093デフォルトの名無しさん
2005/10/24(月) 17:27:10クラス継承が実装継承とインターフェース継承を分けていない辺りとか,
クラスが機能を持ちすぎていて美しく無いと思う.
もちろんプログラマが意識的に扱えば実用上は問題ないのだけれど.
0094デフォルトの名無しさん
2005/10/24(月) 17:48:35もちろんroleやruleの記述には集約を用いるべきで,多重継承を使う局面と言うのは少ないけど,
それでもたまに多重継承を用いればすっきり書けるという局面に出会うことはある.
加えて,Multicast Patternなどでは多重継承を利用しているし,
ダイヤモンド継承のような曖昧さの問題に気をつければ,
多重継承は十分に便利で実用的な機能であると思う.
Javaの入門書ではinterfaceに関して,多重継承の代わりに使えるよー程度にしか
言及していないものが結構あるのが残念.
Javaのinterfaceはもっとオブジェクトの分類に積極的に利用されるべきだと思う.
0095デフォルトの名無しさん
2005/10/24(月) 18:02:31だってそんな設計すると動きがもっさりするんだもん
0096デフォルトの名無しさん
2005/10/24(月) 18:02:380097デフォルトの名無しさん
2005/10/24(月) 18:12:01オブジェクト指向プログラミングはそれ以前の多くのアイディアを統合してできている。
私が書いたようなデータ隠蔽も、ポリモルフィックな型システムも、
そして>>92の言うメッセージ駆動(と抽象データ型も少し入ってるな)もそのうちの一つ。
で>>87は特にポリモルフィックな型の視点を意識して書いた。
>>93
インターフェースと実装を別に分けて記述した場合両者の整合性を維持するのが
*人間にとって煩雑*になるからだと私は理解している。
残念ながら理論的に美しいことが必ずしも実用的ではない。
より詳細に言えば、
両者を分離することは確かに混乱を防ぐのに有利だ。
が、プログラマに対して二つに分けた記述の整合性を取らせ続ける
というコストを払わせることになる。
それが正当化されるのはそれだけのコストを払っても維持する価値があるような
比較的公共性の高いインターフェースに限られるのじゃないかと思う。
しかし言語で基本的なクラスの仕組みとしてそれを強制してしまうと、
オブジェクト指向で数多く使われる内部的なクラス、補助的なクラスに対してさえ
そのインターフェース定義コストの支払いを強制することになり実際的でない。
(C++で*.h*.ccが分かれていることでさえすでに若干面倒なのにw
脱線ついでに言えば、C++/Cの*.hファイルはモジュール分割の有用性というより
コンパイラの処理能力から分割コンパイルが必然だったために生まれたものを
インターフェースの定義の仕組みとしても使うようになったもの。)
だから現状の多くのオブジェクト指向言語の選択は美しくはなくても実際的だと思う。
0098デフォルトの名無しさん
2005/10/24(月) 18:42:350099デフォルトの名無しさん
2005/10/24(月) 21:12:37こういうやつらに新人教育とかをさせると、まだ体の小さいヒナに大量の餌を
ぐいぐい押し込むような教育をして、新人君のやる気を殺すんだろうな、と想像する。
でもここは2chだから、テキトーに読み飛ばす自由がある。いぇい。」
……とは言わないけどさ、ちょっと文章長いよ。むずかしいし。
0100デフォルトの名無しさん
2005/10/24(月) 21:45:180101デフォルトの名無しさん
2005/10/24(月) 23:04:41でも論争始めると理論に行っちゃうんだ.
とりあえずオレもスレ違いになってきてる気はしてたんで,ここらで去るよ.
スマソ
■ このスレッドは過去ログ倉庫に格納されています