Java入門・初心者質問スレ Part.5©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/09/29(金) 17:53:25.24ID:XnizQSCA
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.4
http://mevius.2ch.net/test/read.cgi/tech/1498828456/
2017/10/21(土) 15:37:16.16ID:ej0bNcSX
>>200
amもweightも同じ要素数だから5回繰り返せばぴったりじゃん
209デフォルトの名無しさん
垢版 |
2017/10/21(土) 15:47:20.68ID:PVB7G2Ex
ぴったりじゃん?
2017/10/21(土) 16:49:24.05ID:oMtVUNUR
何この糞問題wwwひっでぇな・・マジで
これ作ったの教員?生徒?
なんで配列の一要素でしかないクラスが配列全体の情報を持ってこれるんだよw
こんなレベルだと生徒もダメになるゴミ問題だな
2017/10/21(土) 16:53:51.90ID:oMtVUNUR
しかもこれで大学だからなwww
>200も相当な馬鹿っぽいし100%Fランだなw
2017/10/21(土) 16:58:21.30ID:oMtVUNUR
あーこれあれかw
最初から車の総数と大型車の台数わかってるから
countAutomobileとcountHeavyは5台と2台を直打ちで返すようにしてるだけなのかwww
中学校のマイコン倶楽部の問題かよwwwwwww
2017/10/21(土) 17:35:53.13ID:g5bh72yL
>200です。みんな色々とありがとう。まあFランなのは否定しないですw lengthなくてもいけるのはわかったのでもうちょい頑張ってみます
2017/10/21(土) 17:58:44.98ID:ZBz0JWdz
countAutomobile()やcountHeavy()は
コレクションクラスに持たせるのが普通でしょ
AMCounterクラス作って切り出すほどでもない
この規模ならHighwayクラスのメソッドでも十分

for文の中括弧省略はアンチパターン
あと大型車を数えるのにcountHeavy()という名前は不適切
2017/10/21(土) 18:16:41.12ID:g5bh72yL
>>214
まあ一応課題に沿って作成しないといけないんで与えられたクラス内でやるしかないみたいです。ご指摘ありがとうございます。
2017/10/21(土) 18:22:53.02ID:W+SO0xqJ
>>204
その通りだね
課題の範囲だとstatic使うくらいしかないよな

>>205
それもアリだと思う
countメソッドはAutomobileよりかは
Highwayが持つ方が自然

ただ何を作るかにもよるけど
Highwayが将来的に肥大化しそうだから
Counterクラスに切り出す場合もありそう
2017/10/21(土) 18:27:25.26ID:W+SO0xqJ
>>214
コレクションクラスでもいいというか
課題だとそっちの方がいいね

ただ課題のはサンプルコードで超小規模だけど
実用的なプログラムだと
カウントの仕方が多種類で複雑になるから
2017/10/21(土) 18:28:53.58ID:CGeTMVG8
俺様が素晴らしい解答を用意してやったぞ
但し実行結果は見てない

class Automobile {
private static AtomicInteger count = new AtomicInteger();

private static AtomicInteger weight = new AtomicInteger();

public Automobile(int weight) {
this.weight.addAndGet(weight);
}

public int countAutomobile() {
return count.incrementAndGet();
}

public int countHeavy() {
return this.weight.get();
}
}
2017/10/21(土) 18:37:22.59ID:CGeTMVG8
よく考えたらincrementAndGetはコンストラクタでやるしかねえな
オブジェクト作る意味無いコード書いたの初めてだから中途半端なコードになっちまった
2017/10/21(土) 18:42:09.63ID:oMtVUNUR
ダメだ・・このあまりに低レベルな流れ見てると吐き気がしてくる・・
問題の質があまりに低レベルなの見れば設計とかそういう以前の問題で真面目に考える余地なんかないのに
staticだのコレクションだの将来性だのアホか・・
2017/10/21(土) 19:10:52.71ID:3cF6dV6+
>>220
だったら参加しなきゃいいのに
この話題が何日も続くわけじゃあるまいし
2017/10/21(土) 19:17:48.71ID:L87nxTYD
スレタイ読めない奴は国語の勉強から初めた方がいいと思うの
223デフォルトの名無しさん
垢版 |
2017/10/21(土) 20:07:37.18ID:mG9cdR79
国語よりJavaのほうが必修だろ。
2017/10/22(日) 09:20:00.50ID:TMuVy25k
>>220
高レベルなレス期待してるわ
2017/10/22(日) 10:10:46.11ID:kBkM80le
>>220
初心者スレに何を求めてるの?
2017/10/22(日) 12:27:36.98ID:/zkBCLsm
初心者どうこういう以前にお前等のその解釈って無駄というか”無意味”なんだよね
問題文がインスタンス作りましょうとかっていうレベルのものなのに
問題に書かれない範疇のことまで勝手に想像を膨らませてあーだこーだ考えて
逆に質問者を混乱させ、陥れる無能の典型というか馬鹿の代表というか
なんだろうねこのド素人特有の客観的に問題点とそれに対する回答を指摘できない低知能ぶりは
2017/10/22(日) 12:33:56.55ID:dJ6mfyJW
いや学校の課題の質問だったから
わざとやってんだよ……
2017/10/22(日) 12:57:00.14ID:87G6xIOf
>>198
普通のパソコンが512mbくらいしか積んでなかったときからjavaは動いていたと思うが・・・

お前はどの世界線から来たんだ?

それとも、ただのうすら馬鹿か?
229名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 13:31:52.16ID:hgYX0k8x
>>228
昔のjava重かっただろ
2017/10/22(日) 13:51:31.80ID:xuXRPzMa
ただの口の悪いだけの奴だから気にするな
2017/10/22(日) 13:57:03.56ID:87G6xIOf
嘘を放置するのはよくないと思わんの?
2017/10/22(日) 14:05:17.09ID:xuXRPzMa
仮にまともなこと言っていても口が悪い奴の相手するのは時間も精神的にも無駄
2017/10/22(日) 14:32:44.32ID:87G6xIOf
嘘つきがチヤホヤされるべきだとでも言うんかね
このバカは

つか、お前がうすら馬鹿かよwww
2017/10/22(日) 14:33:57.23ID:87G6xIOf
あ、うすら馬鹿に話しかけられると鬱陶しいから、消えてくれよな

頼むわw
2017/10/22(日) 14:40:05.22ID:Nwk+EhzR
>>226
>>210-212のレスも無意味やで
自分のやることには意味があると信じたいんだろうけど、もう少し客観的になろう
2017/10/22(日) 14:50:54.26ID:dJ6mfyJW
>>235
そうそう
空気読めないだけ
2017/10/22(日) 16:33:04.80ID:ACH5Qj3i
なんかさぁ
俺はjavaを勉強してるつもりだったのに気づいたらSQLやHTML/CSSの本を読んでるんだが間違ってないよな・・・?
2017/10/22(日) 16:45:56.69ID:kBkM80le
バカがたむろってる所でしか粋がれないやつなんだからほっといてやれよ
2017/10/22(日) 18:06:04.46ID:TMuVy25k
>>226
そういうのは回答を指摘してから言え
2017/10/22(日) 18:17:46.07ID:/zkBCLsm
入門書未満のくだらない質問の回答はお前等馬鹿の担当だけど
それですらまともにできないから呆れるわ
いつ見てもアホしかいない
2017/10/22(日) 18:20:42.92ID:kBkM80le
>>240
じゃあお前は何でここにいるの?
2017/10/22(日) 18:29:26.25ID:cbaZLKfH
>>237
CLI、GUIアプリ系の本を選べばだいたいJavaで完結する
あとは隠蔽するようなフレームワークとか使えば、とりあえずは知らなくてもできる
2017/10/22(日) 19:11:00.87ID:xuXRPzMa
>>237
web系なら他言語行ってもつぶし効くから損はないと思う
244名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 19:31:25.01ID:AUtmH3Uy
>>237
いいじゃん。全部覚えろよ。
2017/10/22(日) 20:21:51.73ID:8vyNBiTj
>>221
初心者スレに必ず湧く奴だよ。
2017/10/22(日) 22:19:13.28ID:2tnXS/Sc
gradleの使い方って覚えといて損はない?
2017/10/23(月) 00:52:06.58ID:Zv+DKPlp
>200です。もう無理だw大学で配られた資料だけじゃだめだ、理解が追いつかない。本とか買わないとまずいかな。まあ勉強不足なのはわかってるんだがやっぱ無理なもんは無理だ。誰か教えて…
2017/10/23(月) 01:05:36.93ID:u5IDZl2p
>>247
実現するならstatic変数を作ってコンストラクタでインクリメントするだけ

staticを解説するためだけのアンチパターンな設計だから深く考えたらだめなやつ
2017/10/23(月) 01:06:44.62ID:y4/LHG7i
>>247
とりあえず何がわかんないのか箇条書きで書いて見なよ
親切なおじさんと不親切なおじさんがレスするから
2017/10/23(月) 01:14:38.16ID:Zv+DKPlp
>>249
まず、合計台数だけを出力するプログラミングを作ろうと思ったんですけど、
整数型配列の初期化とかはあってるはずなんだけど、Automobileクラスでint countAutomobile(){(←コンストラクタ?)内で何を打てばいいのかわからないです。ただ、return weightだと配列の1つ目の値だけが出力されますので。
https://i.imgur.com/APIeS93.jpg
2017/10/23(月) 01:16:06.32ID:Zv+DKPlp
>>249
もちろん課題の内容としてはさらに大型車の台数も出力しないといけないんですけど、まず簡単なとこからと思って合計台数だけをやり始めたらそこすらできない次第です。
2017/10/23(月) 01:17:56.31ID:Zv+DKPlp
>>250
コンストラクタじゃなくて、インスタンスフィールド?適当なこと言ってすみません…
2017/10/23(月) 01:23:14.60ID:y4/LHG7i
>>250
なるほど、それほど筋悪く無いと思うよ

他の人がいろいろ書いてるように1台の車を表現してるAutomobileクラスのインスタンスが
全部で何台あるのかを把握してること自体がおかしい、つまり課題のコードのほうがおかしい

だからそこは分からないほうが普通というか
100人いたら100人ともam[0].countAutomobile()とは書かないから
他のやり方したらいいんでないの?
2017/10/23(月) 01:29:14.79ID:u5IDZl2p
Automobile(int g)がコンストラクタだよ
int weight → static int weight って変えてみたらわかると思う
253が言うように筋はいいと思う

>>253
残念ながら課題として出てるのでこれに回答せねばならないんだよ
とてつもなく不服だがな
2017/10/23(月) 01:29:54.34ID:Zv+DKPlp
>>253
課題がおかしいんですかね…どこか一部を直せばいいんでしょうか?それか他の意見でもあったように新しいクラスを作るべきなのでしょうか?たびたびすみません。
2017/10/23(月) 01:33:18.03ID:Zv+DKPlp
>>254
そちらがコンストラクタでしたか、ご指摘ありがとうごさいます。
2017/10/23(月) 01:38:13.20ID:y4/LHG7i
>>255
HighwayクラスにcountAutomobile()やcountHeavy()を作って上げるのが一番簡単

どうしても課題のコードに従ってやるならAutomobileクラスに
クラスレベルの変数として台数合計を管理するものを用意する
2017/10/23(月) 01:55:19.63ID:Zv+DKPlp
>>257
前者の方法についてもう少し詳しく教えていただけませんか?自分の解釈ではまずHighwayクラス内にint countAutomobile()と int countheavy()をつくる。
2017/10/23(月) 01:55:42.85ID:Zv+DKPlp
>>257
countAutomobileに関してはreturn weightで返して、heavyに関してはif文で大型車の時だけreturn で返せる。と考えたのですが、あってますでしょうか?無知ですみません
2017/10/23(月) 01:57:12.01ID:u5IDZl2p
int weight → static int weight って変えてみたらわかると思う
2017/10/23(月) 02:00:11.05ID:Zv+DKPlp
>>260
先ほどの画像にstaticを足してみたところ5つ目の配列の要素が表示されたのですが、どこがおかしいんですかね?
2017/10/23(月) 02:01:39.23ID:Zv+DKPlp
>>261
配列の5つ目と言ったほうが正しいでしょうか
2017/10/23(月) 02:05:09.61ID:u5IDZl2p
>>261
8って出たならあってるよ
出力してるところでは1番目を指定してるのに5番目が出たってところが大事
2017/10/23(月) 02:06:00.66ID:yUlbauj/
またアホどもが初心者を混乱させてるwww
問題が糞で最初から台数わかってんだから台数はハードコーディングングでそのまま返せばいいんだよ
なんでsataticにすんだよ阿呆
2017/10/23(月) 02:07:20.46ID:Zv+DKPlp
>>263
まだ途中の段階ってことですか?結果は8と表示されました。
2017/10/23(月) 02:07:26.45ID:u5IDZl2p
>>264
ちげぇねぇwww
その発想はなかったわ
2017/10/23(月) 02:11:15.70ID:u5IDZl2p
>>265
まだまだ途中
そもそも台数を出すのであれば重さを設定する必要はない
static int weight → static int weight=0 って変えて
weight=g → weight++ って変えてみな
2017/10/23(月) 02:20:42.33ID:Zv+DKPlp
>>267
言われた通りやってみたのですが、コンパイルでエラーが出てしまいました。int countAutomobile()の()内のintを消したのがまずかったでしょうか?
https://i.imgur.com/ULVykxO.jpg
2017/10/23(月) 02:21:38.59ID:y4/LHG7i
>>259
Automobileの配列使わないと
2017/10/23(月) 02:23:07.33ID:T8WMGQAM
>>268
yes
int gは消さずにそのまま
後で必要になるからね
2017/10/23(月) 02:24:18.98ID:Zv+DKPlp
>>270
いけました!まあこれもまだ途中だと思うと…
しっかり5台と表示されました!
2017/10/23(月) 02:28:32.08ID:c0Vu/KQR
>>271
ok
じゃあ次は
weight++ → if(11<=g) weight++ って変えてみな
2017/10/23(月) 02:28:43.54ID:Zv+DKPlp
あとはint countHeavy()を作るだけでしょうか?
2017/10/23(月) 02:29:42.89ID:y4/LHG7i
>>267
せめて static int total = 0 とかにして
2017/10/23(月) 02:31:28.73ID:Zv+DKPlp
>>272
変えたところ2と出てきました。
2017/10/23(月) 02:34:41.53ID:c0Vu/KQR
>>274
ひとまず、な
できるだけ手を加えずまずは動き
命名も大事だがまずは動かすことを目的とした

>>275
後はstatic変数を増やして
さっき5台って出たものと今2台って出たモノを組み合わせれば完成
2017/10/23(月) 02:37:41.34ID:yUlbauj/
キモすぎてもう見てられん・・早く終わってくれ

public class Automobile {
static int TotalMobile = 0;
static int TotalLargeMobile = 0;

Automobile(int weight){
TotalMobile++;
if(weight >= 11){
TotalLargeMobile++;
}
}

public int countAutomobile(){
return TotalMobile;
}
public int countHeavy(){
return TotalLargeMobile;
}
}

public class Highway{
public static void main(String[] args) {
Automobile[] am = new Automobile[5];
int[] weight = {1, 15, 12, 5, 8};
for(int i=0; i<5; i++){
am[i] = new Automobile(weight[i]);
}
System.out.println("自動車総数:" + am[0].countAutomobile() + "台");
System.out.println("うち大型車:" + am[0].countHeavy() + "台");
}
}
2017/10/23(月) 02:39:17.36ID:c0Vu/KQR
>>277
おーいいタイミング
ありがとな〜
2017/10/23(月) 02:42:53.75ID:Zv+DKPlp
皆さんありがとうございます!おかげでどうにか出来ました!この恩は一生忘れないです!
2017/10/23(月) 02:45:26.99ID:c0Vu/KQR
>>279
恩は忘れていいのでこの問題の設計はウンコだって事だけ覚えててくれ
2017/10/23(月) 02:48:37.75ID:Zv+DKPlp
>>280
けれどこんなヽ(・∀・)ノウソコ設計でもみなさんちゃんと理解して完成まで持ってけるなんてほんとにすごいと思います。
2017/10/23(月) 02:51:09.46ID:yUlbauj/
お前と課題出した奴が馬鹿すぎるだけ
2017/10/23(月) 02:54:14.67ID:c0Vu/KQR
こちとら仕事でこんなもんじゃないレベルのウンコを相手にしてるからな
本来いらないスキルだからお前は真っ当に育ってくれ
2017/10/23(月) 03:03:23.53ID:Zv+DKPlp
>>282
反論の余地もないです。これからも精進します…
2017/10/23(月) 03:04:25.94ID:Zv+DKPlp
>>283
センスないと言われたらそこまでですが、将来IT系で働きたいと考えているのですがどう思いますか?ちな理系です。
2017/10/23(月) 03:11:54.62ID:c0Vu/KQR
>>285
働くだけなら誰でも行けるよ
スキルは後から付ければいいけどあればあるだけ有利にはなる
2017/10/23(月) 03:19:06.59ID:Zv+DKPlp
>>286
なるほど、ありがとうごさいます
2017/10/23(月) 04:09:38.68ID:H84xHXVr
>>281
完成については最初に問題を見た直後に大半のやつはわかっていて、
それだからクソだと言っていたのだ。この程度は誰でも慣れてくると
すぐに頭に浮かぶようになる。というか見た直後にまず違和感を覚える。
それからその違和感の原因はなんだろうと心の中を探り、それから
ソースを二度見して気づく。
2017/10/23(月) 04:25:40.26ID:yUlbauj/
ネットで色々調べ物してたら大学生とか院生でも仕事でjavaってる奴よりも
遥かに賢いコード書いてる奴が腐るほどいるのに
大学で出る課題がこれでそれに悪戦苦闘してる奴が仕事とか夢見すぎだろ
2017/10/23(月) 05:17:21.22ID:c0Vu/KQR
初心者が突然理解してたら勉強する意味ないだろ
2017/10/23(月) 08:14:26.60ID:uG4wXav9
>>289
皆出来るような事は仕事にはならない。
2017/10/23(月) 12:06:33.05ID:Lz0ZCAGx
初歩中の初歩的なことで申し訳ないんですが、Windows 10上でのJava開発環境の構築は
a. JDKインストール → Eclipseインストール →Pleiades プラグインインストール (一般的?)
b. Pleiades All in One [Eclipse 4.7] Java (Full Edition)
どちらの方法がお勧めでしょうか?最近まで開発にMacを使っていたものでどうすべきか悩んでいます。
後者は最初からよく使うプラグイン類が導入済で便利とは聞きますが...
2017/10/23(月) 12:18:29.77ID:QxUDS6F0
>>292
本当の初心者とか楽したいなら後者
開発経験あるなら前者で必要なプラグインだけ選出して入れる
2017/10/23(月) 16:12:01.87ID:QKnEuIrp
必要ないプラグインは外せる
だからプラグインと呼ぶ

学校でのプログラミングの課題はあくまで穴埋め的に特定手法の記憶度を見るものであり
独習時の問題とも業務実習時の課題とも違うものだから出来不出来は気にしないのがよい
ネイティブだろうがプロ翻訳家だろうが「学校の」英語「習熟度ドリル」は満点取れなかったりするものだ
295デフォルトの名無しさん
垢版 |
2017/10/23(月) 16:23:54.92ID:t7W7X0PH
あー。帰国子女で日本語片言のやつがなぜか満点取れないと。
2017/10/23(月) 17:06:17.83ID:8jJ9zkLD
日本人が全員国語満点じゃないのと一緒
2017/10/23(月) 18:36:46.88ID:NKAmnKE1
この課題はインスタンス変数とクラス変数の違いを知るためのものだから
こういう間違えをして調べるのを期待してるんだろ
298デフォルトの名無しさん
垢版 |
2017/10/23(月) 19:16:35.52ID:YIhcz2Te
ま、しかし、もうちょっとましな課題作れないもんだろうか。
疲れてたのかな。
2017/10/23(月) 19:31:38.35ID:Pe+98mGG
やっと流れに追いついた
>>200のは、設計がどうのという以前に
キチガイの所業

あるいはお前らの脳を疲弊させるための実験
お前らマトモにとりあってたらダメだぞ
300デフォルトの名無しさん
垢版 |
2017/10/23(月) 19:40:11.90ID:YIhcz2Te
あー。そうか。スレを活性化させるために投下された燃料だったのか。
2017/10/23(月) 20:12:20.31ID:y4/LHG7i
一般的にこういう課題ってam[0]の箇所を
自分なりに修正して提出したら減点対象になるの?

もしそうなら大学レベルの教育方法ではないよね
302デフォルトの名無しさん
垢版 |
2017/10/23(月) 20:22:05.75ID:YIhcz2Te
わからんな。先生の気分次第なんじゃないか?
303デフォルトの名無しさん
垢版 |
2017/10/24(火) 00:45:00.97ID:MROfWTvM
配列ってホッチキスで止められた書類みたいなもんだから最近嫌いだわ
2017/10/24(火) 01:07:41.88ID:37YlkQhq
List使えばいいじゃん。

これにて一件落着
2017/10/24(火) 02:48:33.95ID:UVHXr0A6
[[[[[[[[[
306デフォルトの名無しさん
垢版 |
2017/10/24(火) 23:49:49.40ID:++BilNP+
>>304
要素一つ一つaddする地獄もなくなったし、これからはListの時代
2017/10/25(水) 06:04:04.53ID:ZfgKJLFw
質問です。
ファイル圧縮処理を行う下記のコードで、
https://ideone.com/PFwyTI
close処理をfinally文ではなくcatch文の中に記述されているのですが、
問題無いのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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