Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
今は字下げにTAB使ってて、他人と組むことはないからどっちが正しいとかはどうでもいいのだけど、それでもちょっと前に自分が作った奴は字下げにスペース使っててしかも2個だったり4個だったり
まあ動作に支障ないから放っておいてもいいとはいいのだけど自動でどっちかのルールに統一して書き換えてくれるツールはないでしょうか >>739
あるんじゃねえか?
でもお題として丁度良さそうな難易度なのでお題にしてみんなに作らせてもいいかもなw
行頭のスペースをタブに変換。 単純置換なら簡単だから
自動インデントだと大変だな eclipseのformatter使えよ
ctrl + shift + fだ Eclipse vs NetBeans vs IntelliJ
Atom vs VSC vs SublimeText
宗教戦争勃発 atomは原子の定義が壊れるぐらいクソ重い
vscodeが神 需要があるかないかの違いだから宗教とかそういう問題じゃない >>739
IDEのコードフォーマッターぐらい使えよ
コメント位置すらちゃんと設定通りにしてくれるぞ
つーかコード規約決めた後にIDE側で設定して
保存時かコンパイル時に自動でフォーマットかける設定にするんじゃないの普通 いや、sedだと複雑怪奇なものにならんか? s/(スペース4文字)/\t/g か? emacsをunixに移植したのは>>738だったな
もうモダンなIDE使ってると言ってたけど 質問すいません。
プログラムはある程度できるのですが、画像の処理関係は全くの素人なのです。
やりたいことは画像を比較して類似しているかどうか調べるというものなのです。
ただ、画像がとても多く、画像の追加も頻繁にあるので困っています。
どのようにすると良いでしょう? >>753
画像を一定のサイズ色に粗くしてMD5とっといて一致するかどうか
でJavaの質問は? とある本(サンプルソースがJAVA)で、下記のような文章があり、よくわからない状況です。
ーー引用ーー
自己カプセル化を使っているときは、コンストラクタ内のsetメソッドの使用には注意が必要です。
多くの場合、オプジェクトが生成されたあとの変更用にsetメソッドが使われることを想定しているので、
setメソッドには、初期化時とは異なる振る舞いを持たせることになるでしよう。
そのため、コンストラクタから直接アクセスを使うか、別に設ける初期化メソッドを使うのがよいでしよう。
ーー引用ーー
Q、私の拙い解釈だと、「コンストラクタ内でsetメソッド使用は避けよ」と言っているようなのですが、理由が読み解けません。どなたか、わかりますか? >>755
プロパティa,bがあったとして
すべてのインスタンスは何らかの値を持ってたとする
setAではbの内容を参照するとする
でもコンストラクタでの手順によってはbはまだ初期化されてない
借り値を入れとくとか手順を考えるとかもあるけど
その著者はsetを使わないことにしてるんじゃない
私はvalidateとかをsetに入れてるので極力使うよ コンストラクタ内の処理が走っている段階では、
そのクラスはまだ不完全で、メソッドかフィールド変数かが
利用できない状態かもしれない、だからsetterは控えよう……
ということでしょうか?
参考書の著者は控えようと言っているけども、
現在のJVM環境なら、さして気にすることもないから
setter使っていいよ! ……ってことでしょうか?
なんだか混乱してます……(><; >>757
setterを控えよう、じゃなくて、setterをはじめとするオブジェクトの状態を変更するメソッドの呼び出しには気をつけようってこと
パブリックなsetメソッドは完全なオブジェクトに対し状態変更のため外部から呼び出されるという用途であること多いから、気をつけないといけないポイントの代表例として挙げてあるだけ 花火オブジェクトの引火メソッドは、オブジェクトが完全な状態で呼び出されることを想定してるから、
花火オブジェクト生成中の火薬剥き出しの状態で呼び出してはならない ・コンストラクタ処理中はインスタンス作成途中の可能性がある。
・作成途中のインスタンスを変更する操作は避けた方が良い。
ということが、ご説明頂いた内容で理解できました(^^)ノ
ありがとうございました。m(^v^)m<ペコリ >>761
> ・作成途中のインスタンスを変更する操作は避けた方が良い。
別に変更すること自体はいいんだよ、その変更がオブジェクトの初期化に必要な操作であり、変更による
不整合が発生しないことがわかってるなら
まあ気をつけましょうってことだよ
あと気持ち悪い顔文字使ってんじゃねえよ殺すぞ なんと、拙い私の理解不足にフォローまでしてくださって、
助かります。良い方ですね。(m’ v’)m<感謝!
ありがとうございました。m(^v^)m<ペコリ 人が嫌がることを嬉々としてやる奴ってキチガイなのか?
それとも幼いのか?
ガキがアリの巣に水を流し込んで喜んでいるみたいな感じで >>754
ありがとうございます。
ぜんぜん違う方法でしたがうまくいきました。 >>770
人の嫌がることを自ら率先してやりましょう!って学校で習ったろ? 日本と韓国
日本人「我々が歴史を変えてみせる」
韓国人「我々が歴史を変えてみせる」
日本人「犯罪で捕まるなんて馬鹿だな。親はどういう教育をしたんだ」
韓国人「犯罪で捕まるなんて馬鹿だな。親はどういう教育をしたんだ」
日本人「『少し見ない間に美人になったね』って言われます」
韓国人「『少し見ない間に美人になったね』って言われます」
日本人 「技術は、教えてもらうものではなく、盗むもの」
韓国人 「技術は、教えてもらうものではなく、盗むもの」
日本人「人の嫌がることを進んでします」
韓国人「人の嫌がることを進んでします」 0で割ると普通に0で返してくれればいいのですが
ArithmeticExceptionと言うエラーが出るのですが、
こんなのいちいち例外処理かませないといけないのでしょうか 0で割ったら、+- 無限大だろ
数値にならない。
数値の範囲・ドメインの外
0にすれば、数値の範囲内になってしまうから、ダメ 0で割っても無限大にはならない
その計算自体できないのが正しいし例外を返すのも正しい 可換体としての性質を捨てたいならゼロ除算しちゃえばいいんじゃないの >>776
君も算数のお勉強をすると少し頭がよくなるかも知れません >>773
人の嫌がること…と言うより、競技において(正当なルールの範囲内で)相手の嫌がることを…だな。 未だに0で割ると無限大になる(だから割れない)とか思ってるやつが大学生にもいるから困る A÷BはAからBを何回引けるか、という考え方だとBが0なら何回引いてもダメなので無限であるかのように思うのはわからなくはない。
しかしBが0というだけでその後の引き算は全て無駄になる事がわかるわけで、引き算は一回もする必要がないのだ。 >>784
このスレは
m(^v^)m<ペコリ
のスレになったのです。 すいません、スッキリJava二冊一通り理解したのですが
持ち運ぶように1冊にJavaに関することが纏まってる本でお勧めはないでしょうか? 電書版ありますよ
たまーに半額セールになってるのでその時に買ってみてはどうでしょう >>788
>>789
本が好きなので今回は遠慮しときます
逆引きリファレンスよさそうなのでそれにさせてもらいます
ありがとうございました スッキリ 3部作と、
実践Javaコーディング作法 プロが知るべき、
112の規約と21の心得、森崎雅稔(まさとし)、2014
Java 最強リファレンス、田中裕一、2014
EFFECTIVE JAVA 第2版、2014
Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016 Effective Javaは3rd Ed.が今年Xmasに出るから買うより借りる方がいい >>794
あれの日本語翻訳版ってどのぐらい後に出るんすかね 2ndは約3ヶ月で翻訳出版されたから3rdは2018年4月頃か、単純計算で またあのハゲが翻訳すんのかな
あいつの日本語で読まされるの苦痛すぎるから、あのハゲには関わらないでいてほしいわ Java9 JRE Windows32bit版ってないの?
ダウンロードできないんだが >>801
ないみたいだね。ダウンロードはできたよ。うっかり32ビットのWindowsでダブルクリックして実行できないとか出てきたが。
とりあえずLinuxの方をCentOS7で動いてるPCにインストールした。 質問です。
開発現場で、前担当が下のようなコード記述をしていた場合で、
現段階ではポリモーフィズムをしていない時。
class Customer{
private Set _orders = new HashSet();
//以下略
}
この意味は……
1、「未来ではポリモーフィズムするはずだ。親クラスで受けるようにしておこう」
2,「とりあえず親クラスで受けておけば安心だ!」
3,ぜんぜん別の理由
の内、どれでしょうか?
3の場合は、理由は何でしょうか?
よろしくお願いします。m(^v^)m<ペコリ >>803
作ったやつに変なこだわりがあるだけでは? 1. ← そんな糞な解釈する馬鹿はお前だけ
2. ← 上に同じ
3. インターフェースで定義しているメソッドだけで事足りるから柔軟性を考慮してインターフェースで受けてるだけ 「インターフェースで定義しているメソッドだけで事足りる」
という言葉で納得できました。
糞な解釈する馬鹿で間抜けなブスの私に良い回答をしていただき、
ありがとうございます。(感謝)
ご返信いただいた皆様にもありがとうございます。 こんな当たり前のことはJava歴3か月の奴でもわかるのにいちいち見栄張るなよ阿呆
ほんとこういうバレバレの馬鹿見てるとイラついてくるわ
お前等レベルのカスは入門書を風化するまで読み尽くしてからレスしろアホ メンバ変数を、外部からアクセスできないようにしてるだけだろ。
カプセル化
カプセル化は、オブジェクト指向の基本だから、誰でもこうするだろ
例外は、速度を重視する際、メンバ変数を公開する場合だけ 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) >>812
それはメンバ変数のカプセル化
カプセル化ってそれだけじゃないよ 便利だからとか言って実装にキャストしちゃう奴がいるんだけどな そういやJava9にはjshellってのが付いてるよ。
コマンドラインで試せるやつ。 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とか全然ありえない数字に全部化けてしまうんだけどどういった原因が考えられるでしょうか >>818
int型は整数
小数点使うならdoubleなりbigdecimalなり使え馬鹿
本読め馬鹿 1行ずつデバッグして、
「何を何で割ったら、何になったか」を書き出す
上の、3つの何が分からないと、答えようがない >>818
デバッグ機能使って何の値渡してるか見ろ >>821-822
違う行で計算するとちゃんと想定通りの数値は出るのでこのfor文内で計算して代入した時だけなんかおかしいみたいです
j と i を間違えて書いてるというわけでもないですし理由がわからないのももやもやするので
数値の動きをもう少し調べてみます >>818
Average、Count、Passing はそのループに入る前に本当に想定した通りの値になっているのか? 些細な事だがもう一つ気になる点は j を 1 〜 3999 にしている点。
もし配列の要素は 0 から始まるのだが、0に関しては何もしなくて良いのか? javaでデスクトップのアプリケーションを作りたいです
ボタンを作ってそのボタンを押すとランダムに画像が入れ替わるようなものを作っているのですがそれをwordやexcelのようなデスクトップアプリにするにはどうすればいいのでしょうか? >>828
どうしてもJavaで作りたいならJavaFXで作る
ただし良い参考書が無いから苦労するかもな すっきり解るシリーズ読んでて思ったんだけどさ
JAVA勉強するなら先にSQL勉強したほうがよくね? >>828
swing付属のサンプルにそのものズバリのアプリケーションがあったな
今更だが 俺は最近SQL全く使わないから新人にはスッキリシリーズ勧めてないな
新規プロジェクトはほぼelasticsearchを採用してる ■ このスレッドは過去ログ倉庫に格納されています