Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/06/30(金) 22:14:16.54ID:W0OUnv8/
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.3
http://mevius.2ch.net/test/read.cgi/tech/1491306071/
2017/09/20(水) 02:09:36.52ID:E3lPvo/Y
いや、sedだと複雑怪奇なものにならんか? s/(スペース4文字)/\t/g か?
2017/09/20(水) 09:02:26.48ID:DYqQfVY4
emacsをunixに移植したのは>>738だったな
もうモダンなIDE使ってると言ってたけど
2017/09/20(水) 09:04:38.67ID:jNWRVYAN
モダン()
2017/09/20(水) 09:26:35.78ID:ISdLOp37
質問すいません。
プログラムはある程度できるのですが、画像の処理関係は全くの素人なのです。
やりたいことは画像を比較して類似しているかどうか調べるというものなのです。
ただ、画像がとても多く、画像の追加も頻繁にあるので困っています。
どのようにすると良いでしょう?
2017/09/20(水) 10:48:40.10ID:DYqQfVY4
>>753
画像を一定のサイズ色に粗くしてMD5とっといて一致するかどうか
でJavaの質問は?
2017/09/20(水) 11:59:57.72ID:8B/Smyuh
とある本(サンプルソースがJAVA)で、下記のような文章があり、よくわからない状況です。
ーー引用ーー
自己カプセル化を使っているときは、コンストラクタ内のsetメソッドの使用には注意が必要です。
多くの場合、オプジェクトが生成されたあとの変更用にsetメソッドが使われることを想定しているので、
setメソッドには、初期化時とは異なる振る舞いを持たせることになるでしよう。
そのため、コンストラクタから直接アクセスを使うか、別に設ける初期化メソッドを使うのがよいでしよう。
ーー引用ーー

Q、私の拙い解釈だと、「コンストラクタ内でsetメソッド使用は避けよ」と言っているようなのですが、理由が読み解けません。どなたか、わかりますか?
2017/09/20(水) 14:41:07.62ID:DYqQfVY4
>>755
プロパティa,bがあったとして
すべてのインスタンスは何らかの値を持ってたとする
setAではbの内容を参照するとする
でもコンストラクタでの手順によってはbはまだ初期化されてない

借り値を入れとくとか手順を考えるとかもあるけど
その著者はsetを使わないことにしてるんじゃない

私はvalidateとかをsetに入れてるので極力使うよ
2017/09/20(水) 15:45:58.63ID:8B/Smyuh
コンストラクタ内の処理が走っている段階では、
そのクラスはまだ不完全で、メソッドかフィールド変数かが
利用できない状態かもしれない、だからsetterは控えよう……
ということでしょうか?

参考書の著者は控えようと言っているけども、
現在のJVM環境なら、さして気にすることもないから
setter使っていいよ! ……ってことでしょうか?

なんだか混乱してます……(><;
2017/09/20(水) 17:42:04.72ID:YGr2N4HK
作り方しだいだよなあ
2017/09/20(水) 17:56:10.76ID:lixqcDrr
>>757
setterを控えよう、じゃなくて、setterをはじめとするオブジェクトの状態を変更するメソッドの呼び出しには気をつけようってこと
パブリックなsetメソッドは完全なオブジェクトに対し状態変更のため外部から呼び出されるという用途であること多いから、気をつけないといけないポイントの代表例として挙げてあるだけ
2017/09/20(水) 17:57:58.25ID:lixqcDrr
花火オブジェクトの引火メソッドは、オブジェクトが完全な状態で呼び出されることを想定してるから、
花火オブジェクト生成中の火薬剥き出しの状態で呼び出してはならない
2017/09/20(水) 18:09:31.13ID:8B/Smyuh
・コンストラクタ処理中はインスタンス作成途中の可能性がある。
・作成途中のインスタンスを変更する操作は避けた方が良い。
ということが、ご説明頂いた内容で理解できました(^^)ノ
ありがとうございました。m(^v^)m<ペコリ
2017/09/20(水) 18:41:10.87ID:lixqcDrr
>>761
> ・作成途中のインスタンスを変更する操作は避けた方が良い。

別に変更すること自体はいいんだよ、その変更がオブジェクトの初期化に必要な操作であり、変更による
不整合が発生しないことがわかってるなら
まあ気をつけましょうってことだよ

あと気持ち悪い顔文字使ってんじゃねえよ殺すぞ
2017/09/20(水) 20:05:33.17ID:Z88yt3RP
>>762
\(^o^)/
764デフォルトの名無しさん
垢版 |
2017/09/20(水) 22:37:20.08ID:E3lPvo/Y
m(^v^)m<ペコリ
2017/09/20(水) 22:45:59.38ID:3G2l4+mv
>>762はツンデレ
2017/09/20(水) 23:20:13.50ID:ZP+TEowi
どっちかというとデレツン
767デフォルトの名無しさん
垢版 |
2017/09/21(木) 02:44:01.70ID:AcIIQNEl
m(^v^)m<ペコリ
2017/09/21(木) 08:46:56.77ID:YP+rtO81
なんと、拙い私の理解不足にフォローまでしてくださって、
助かります。良い方ですね。(m’ v’)m<感謝!
ありがとうございました。m(^v^)m<ペコリ
769デフォルトの名無しさん
垢版 |
2017/09/21(木) 09:42:31.05ID:AcIIQNEl
m(^v^)m<ペコリ
2017/09/21(木) 09:49:26.14ID:/4KdsZUo
人が嫌がることを嬉々としてやる奴ってキチガイなのか?

それとも幼いのか?
ガキがアリの巣に水を流し込んで喜んでいるみたいな感じで
771デフォルトの名無しさん
垢版 |
2017/09/21(木) 09:54:13.33ID:tALCl2oJ
m(^v^)m<ペコリ
2017/09/21(木) 10:10:47.45ID:YsglJJYo
>>754
ありがとうございます。
ぜんぜん違う方法でしたがうまくいきました。
2017/09/21(木) 10:42:29.02ID:q11aClZE
>>770
人の嫌がることを自ら率先してやりましょう!って学校で習ったろ?
2017/09/21(木) 12:53:24.76ID:/4KdsZUo
日本と韓国

日本人「我々が歴史を変えてみせる」
韓国人「我々が歴史を変えてみせる」

日本人「犯罪で捕まるなんて馬鹿だな。親はどういう教育をしたんだ」
韓国人「犯罪で捕まるなんて馬鹿だな。親はどういう教育をしたんだ」

日本人「『少し見ない間に美人になったね』って言われます」
韓国人「『少し見ない間に美人になったね』って言われます」

日本人 「技術は、教えてもらうものではなく、盗むもの」
韓国人 「技術は、教えてもらうものではなく、盗むもの」

日本人「人の嫌がることを進んでします」
韓国人「人の嫌がることを進んでします」
775デフォルトの名無しさん
垢版 |
2017/09/21(木) 13:02:45.02ID:eVVH2vYt
なんだか必死である
2017/09/21(木) 13:03:14.79ID:gTpUVQWr
0で割ると普通に0で返してくれればいいのですが
ArithmeticExceptionと言うエラーが出るのですが、
こんなのいちいち例外処理かませないといけないのでしょうか
2017/09/21(木) 13:25:19.84ID:AIR436+i
>>616 >>647 >>776
2017/09/21(木) 14:01:18.22ID:kkyna6sC
0で割ったら、+- 無限大だろ

数値にならない。
数値の範囲・ドメインの外

0にすれば、数値の範囲内になってしまうから、ダメ
2017/09/21(木) 14:24:12.87ID:tBiYCXnO
0で割っても無限大にはならない
その計算自体できないのが正しいし例外を返すのも正しい
2017/09/21(木) 14:31:02.26ID:Pk6O4pXe
可換体としての性質を捨てたいならゼロ除算しちゃえばいいんじゃないの
781デフォルトの名無しさん
垢版 |
2017/09/21(木) 15:19:22.76ID:eVVH2vYt
>>776
君も算数のお勉強をすると少し頭がよくなるかも知れません
2017/09/21(木) 15:21:14.85ID:9JsIphje
>>773
人の嫌がること…と言うより、競技において(正当なルールの範囲内で)相手の嫌がることを…だな。
2017/09/21(木) 19:23:34.97ID:L84El5xg
未だに0で割ると無限大になる(だから割れない)とか思ってるやつが大学生にもいるから困る
2017/09/21(木) 19:58:20.74ID:15z8OIYK
おかしいな?Javaのスレに来たはずなのに。
785デフォルトの名無しさん
垢版 |
2017/09/21(木) 20:13:07.34ID:bi2NZeDg
A÷BはAからBを何回引けるか、という考え方だとBが0なら何回引いてもダメなので無限であるかのように思うのはわからなくはない。
しかしBが0というだけでその後の引き算は全て無駄になる事がわかるわけで、引き算は一回もする必要がないのだ。
786デフォルトの名無しさん
垢版 |
2017/09/21(木) 20:14:57.27ID:bi2NZeDg
>>784
このスレは

m(^v^)m<ペコリ

のスレになったのです。
2017/09/21(木) 20:55:21.58ID:8GyRKs0J
すいません、スッキリJava二冊一通り理解したのですが
持ち運ぶように1冊にJavaに関することが纏まってる本でお勧めはないでしょうか?
2017/09/21(木) 21:06:23.92ID:Dn8+rgoO
逆引きリファレンスでも買えば
2017/09/21(木) 21:06:54.11ID:gTpUVQWr
電書版ありますよ
たまーに半額セールになってるのでその時に買ってみてはどうでしょう
2017/09/21(木) 21:16:59.01ID:gTpUVQWr
あ、スッキリの話です。
2017/09/21(木) 21:28:50.45ID:8GyRKs0J
>>788
>>789
本が好きなので今回は遠慮しときます

逆引きリファレンスよさそうなのでそれにさせてもらいます
ありがとうございました
2017/09/21(木) 21:39:21.40ID:kkyna6sC
スッキリ 3部作と、

実践Javaコーディング作法 プロが知るべき、
112の規約と21の心得、森崎雅稔(まさとし)、2014

Java 最強リファレンス、田中裕一、2014

EFFECTIVE JAVA 第2版、2014

Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016
2017/09/21(木) 21:42:26.56ID:v4wUtmb1
持ち運びならKindleおすすめ
2017/09/21(木) 21:44:24.75ID:Dn8+rgoO
Effective Javaは3rd Ed.が今年Xmasに出るから買うより借りる方がいい
2017/09/21(木) 22:11:53.58ID:JjtuXGVQ
>>794
あれの日本語翻訳版ってどのぐらい後に出るんすかね
2017/09/21(木) 22:44:45.42ID:Dn8+rgoO
2ndは約3ヶ月で翻訳出版されたから3rdは2018年4月頃か、単純計算で
2017/09/21(木) 23:53:12.95ID:oWJl9fwl
>>787=>>660
2017/09/22(金) 00:15:23.40ID:kB3Gqsn3
またあのハゲが翻訳すんのかな
あいつの日本語で読まされるの苦痛すぎるから、あのハゲには関わらないでいてほしいわ
799デフォルトの名無しさん
垢版 |
2017/09/22(金) 07:08:01.33ID:XBPPldcX
https://twitter.com/java/status/910944824353628160
きたよー
800デフォルトの名無しさん
垢版 |
2017/09/22(金) 07:35:47.12ID:e1PNbTCp
Java 9アウトー!
2017/09/22(金) 09:02:02.16ID:a7vRSdBt
Java9 JRE Windows32bit版ってないの?
ダウンロードできないんだが
802デフォルトの名無しさん
垢版 |
2017/09/22(金) 10:30:43.32ID:2GANQweE
>>801
ないみたいだね。ダウンロードはできたよ。うっかり32ビットのWindowsでダブルクリックして実行できないとか出てきたが。
とりあえずLinuxの方をCentOS7で動いてるPCにインストールした。
2017/09/22(金) 10:56:12.71ID:+ziQqQe2
質問です。
開発現場で、前担当が下のようなコード記述をしていた場合で、
現段階ではポリモーフィズムをしていない時。

class Customer{
private Set _orders = new HashSet();
//以下略
}

この意味は……
1、「未来ではポリモーフィズムするはずだ。親クラスで受けるようにしておこう」
2,「とりあえず親クラスで受けておけば安心だ!」
3,ぜんぜん別の理由

の内、どれでしょうか?
3の場合は、理由は何でしょうか?
よろしくお願いします。m(^v^)m<ペコリ
2017/09/22(金) 12:15:28.59ID:OWb+yIRZ
最後の顔文字でネタってわかるから楽で良いな
805デフォルトの名無しさん
垢版 |
2017/09/22(金) 12:23:50.31ID:2GANQweE
>>803
作ったやつに変なこだわりがあるだけでは?
806デフォルトの名無しさん
垢版 |
2017/09/22(金) 12:26:41.19ID:QQzWS0sO
1. ← そんな糞な解釈する馬鹿はお前だけ
2. ← 上に同じ
3. インターフェースで定義しているメソッドだけで事足りるから柔軟性を考慮してインターフェースで受けてるだけ
2017/09/22(金) 12:38:30.33ID:+ziQqQe2
「インターフェースで定義しているメソッドだけで事足りる」
という言葉で納得できました。
糞な解釈する馬鹿で間抜けなブスの私に良い回答をしていただき、
ありがとうございます。(感謝)
ご返信いただいた皆様にもありがとうございます。
808デフォルトの名無しさん
垢版 |
2017/09/22(金) 13:17:12.20ID:2GANQweE
>>806
柔軟に、なるか?
2017/09/22(金) 14:57:29.31ID:joxdj0JV
>>808
後で別の実装に変えられるだろ
810デフォルトの名無しさん
垢版 |
2017/09/22(金) 16:51:38.86ID:TZgFdtLW
あー。そういう意味ではなるな。
2017/09/22(金) 17:33:15.98ID:QQzWS0sO
こんな当たり前のことはJava歴3か月の奴でもわかるのにいちいち見栄張るなよ阿呆
ほんとこういうバレバレの馬鹿見てるとイラついてくるわ
お前等レベルのカスは入門書を風化するまで読み尽くしてからレスしろアホ
2017/09/22(金) 17:39:25.25ID:PI1uxnaH
メンバ変数を、外部からアクセスできないようにしてるだけだろ。
カプセル化

カプセル化は、オブジェクト指向の基本だから、誰でもこうするだろ

例外は、速度を重視する際、メンバ変数を公開する場合だけ
813デフォルトの名無しさん
垢版 |
2017/09/22(金) 18:01:17.20ID:TZgFdtLW
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ
m(^v^)m<ペコリ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/09/22(金) 18:05:41.01ID:kB3Gqsn3
>>812
それはメンバ変数のカプセル化
カプセル化ってそれだけじゃないよ
2017/09/22(金) 21:19:48.18ID:joxdj0JV
便利だからとか言って実装にキャストしちゃう奴がいるんだけどな
2017/09/22(金) 21:21:32.09ID:Nd0RCL5a
java9を入れたくない
817デフォルトの名無しさん
垢版 |
2017/09/22(金) 21:25:26.58ID:T2wCvFaq
そういやJava9にはjshellってのが付いてるよ。
コマンドラインで試せるやつ。
2017/09/23(土) 06:42:35.85ID:MQ2PIFw7
int型配列 Average、Count、Passingは要素数はすべて同じでそれぞれだいたい0から20くらいまでの数値が入っています。負の数値は一つもありません。

for (int j =1 ; j < 4000 ; j++ ) {
if ( Count[ j ] <1 ) continue ;
//Average[ j ] = Average[ j ] / Count[ j ] ; //平均値を算出する
//Passing[ j ] = ( Passing[ j ] *100 ) / Count [ j ] ; //条件を満たした回数を百分率に変換
}

コメントアウトしてる部分を通る前までは想定通りの数値なのだけど、ここを//外して通すとただ四則演算してるだけなのに
それまで配列に入ってた数値が-5066060605とか0とか全然ありえない数字に全部化けてしまうんだけどどういった原因が考えられるでしょうか
2017/09/23(土) 07:28:07.80ID:Tcv0uwXr
>>817
昔あったbeanshellはどうした
2017/09/23(土) 08:20:03.99ID:IvL8PqTk
>>818
int型は整数
小数点使うならdoubleなりbigdecimalなり使え馬鹿
本読め馬鹿
2017/09/23(土) 09:32:29.20ID:6LIHf7uu
1行ずつデバッグして、
「何を何で割ったら、何になったか」を書き出す

上の、3つの何が分からないと、答えようがない
2017/09/23(土) 09:53:47.06ID:89h9xiW6
>>818
デバッグ機能使って何の値渡してるか見ろ
2017/09/23(土) 10:30:00.47ID:MQ2PIFw7
>>821-822
違う行で計算するとちゃんと想定通りの数値は出るのでこのfor文内で計算して代入した時だけなんかおかしいみたいです
j と i を間違えて書いてるというわけでもないですし理由がわからないのももやもやするので
数値の動きをもう少し調べてみます
824デフォルトの名無しさん
垢版 |
2017/09/23(土) 11:36:50.47ID:8bsZ0VcP
>>818
Average、Count、Passing はそのループに入る前に本当に想定した通りの値になっているのか?
825デフォルトの名無しさん
垢版 |
2017/09/23(土) 11:39:43.43ID:8bsZ0VcP
些細な事だがもう一つ気になる点は j を 1 〜 3999 にしている点。
もし配列の要素は 0 から始まるのだが、0に関しては何もしなくて良いのか?
2017/09/23(土) 11:40:25.00ID:8bsZ0VcP
>>825 の2行目の「もし」は削除忘れ。
2017/09/23(土) 12:55:35.56ID:D79pT9by
すごい初心者っぽくてほんわかするな
2017/09/23(土) 19:44:42.23ID:NqPOSMMT
javaでデスクトップのアプリケーションを作りたいです
ボタンを作ってそのボタンを押すとランダムに画像が入れ替わるようなものを作っているのですがそれをwordやexcelのようなデスクトップアプリにするにはどうすればいいのでしょうか?
2017/09/23(土) 21:04:03.75ID:89h9xiW6
>>828
どうしてもJavaで作りたいならJavaFXで作る
ただし良い参考書が無いから苦労するかもな
2017/09/24(日) 01:01:40.39ID:tXjdTiuM
>>828
c#にしとけ
2017/09/24(日) 01:14:49.34ID:WK3y2BIb
すっきり解るシリーズ読んでて思ったんだけどさ
JAVA勉強するなら先にSQL勉強したほうがよくね?
832デフォルトの名無しさん
垢版 |
2017/09/24(日) 01:25:05.65ID:c233uqnI
DBも使うのであれば、な。
2017/09/24(日) 05:51:02.79ID:5g9dg2+V
>>828
swing付属のサンプルにそのものズバリのアプリケーションがあったな
今更だが
2017/09/24(日) 07:10:17.57ID:PrPRrieW
俺は最近SQL全く使わないから新人にはスッキリシリーズ勧めてないな
新規プロジェクトはほぼelasticsearchを採用してる
2017/09/24(日) 07:55:25.43ID:ZDcPLLn6
スッキリシリーズはJavaは良いけど、SQLの奴は微妙
dokoSQLもバグってるし

JavaとSQL絡めて勉強するなら、
SQL 第2版 ゼロからはじめるデータベース操作
即戦力にならないといけない人のためのJava入門
を組み合わせてやった方が良い気がする
後者はeclipseでDB使う時の導入書いてあるし
2017/09/24(日) 10:34:43.91ID:tu0D//Rh
プログラマーの時点で、情報処理資格を持っているのは、当たり前だろ。
SQL を知らない事が、そもそも、あり得ない

専門職なんだから、資格なしが、業務でプログラミングをやっていたら、危険しかない

無免許医者と同じ
2017/09/24(日) 10:39:46.54ID:UM3Vm/oL
それが持ってないヤツ多いんだよなぁ
2017/09/24(日) 11:27:19.57ID:2qYUC1f+
オラクルプラチナ持ってないのにSQL書いてる馬鹿おるか?
2017/09/24(日) 11:39:22.72ID:5g9dg2+V
情報処理試験のレベルのSQLなんて実用じゃないだろ
2017/09/24(日) 11:52:46.85ID:t+W78nPu
>>836
太宰治並みに読点が多い文章、でも無駄に細切れでアホっぽい
2017/09/24(日) 11:54:53.07ID:tu0D//Rh
DB スペシャリスト・ネットワーク技術者・エンベッド(組み込み)とか、

皆、高度資格の勉強をしてる
2017/09/24(日) 11:57:13.81ID:2qYUC1f+
そもそも情報処理の知識自体が仕事でなんの役にも立たん
7階層レイヤー知っててなんか役に立つか?
2017/09/24(日) 12:19:51.53ID:rk9buIU7
>>842
7階層モデルが役に立たないからといって情報処理試験が役に立たないわけじゃないよ
ていうか、アプリとサーバーが通信できてないとき、ping飛ばしたりファイアウォール確認したりアプリやサーバーの確認したりするけど、
知らなくていいという奴は、どの層まで疎通できてるかも意識せずに闇雲に調べてるのか?
2017/09/24(日) 12:31:44.60ID:2qYUC1f+
7階層レイヤー知ってて "プ ロ グ ラ ミ ン グ" でなんか役に立つことあるか?
2017/09/24(日) 12:52:18.69ID:rk9buIU7
こっそり7階層モデルって訂正してあげてるのに、まだ7階層レイヤーと言い続けるような恥ずかしい間違いがなくなることかな

ま、「プログラミングの役に立たない=仕事の役に立たない」みたいな人には不要な知識かもね
お前は情報処理の勉強はしなくていいから、すぐに陳腐化するライブラリのAPIでも覚えてなさい
2017/09/24(日) 12:54:12.45ID:2qYUC1f+
勉強なんて最初からしてないし質問にも答えてないし
質問文に対し質問文で答えるとテスト0点なの知ってたか?マヌケ
2017/09/24(日) 13:02:12.86ID:rk9buIU7
お前のテストで0点とってもなんの支障もないからなあ
848デフォルトの名無しさん
垢版 |
2017/09/24(日) 13:03:47.00ID:2qYUC1f+
で、7階層レイヤー知ってて "プ ロ グ ラ ミ ン グ" でなんか役に立つことあるかの回答聞いてないんだが
役に立たないこと認めたくないのか?マヌケ
2017/09/24(日) 13:07:49.59ID:Pcx2yUMU
javaのブロンズ試験って知識ない状態からどれくらい勉強すれば受かりますか?
2017/09/24(日) 13:09:25.16ID:rk9buIU7
なんで「仕事の役に立たない」から「プログラミングの役に立たない」に言い換えたの?仕事の役に立つことは認めちゃった?

いいことだね
自分の誤りを認めることは仕事の役に立つから

7階層レイヤーって言葉の謝りも認めた方がいいぞ
7階層階層ってなんだよバカなのかなこいつ、って思われちゃうから
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況