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/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文の中に記述されているのですが、
問題無いのでしょうか?
2017/10/25(水) 07:05:25.56ID:KHRIvL/L
>>307
処等後にプロセスがすぐに死ぬなら
閉じる必要もないでしょ
flushだけでいい
キャッチはまるまるいらない
2017/10/25(水) 09:26:51.00ID:Q7ime0JM
closeとセットで作るようにしないといつかclose忘れ起こすと思うけど
310デフォルトの名無しさん
垢版 |
2017/10/25(水) 09:39:29.54ID:nJqgcJg9
try-with-resources でやるのが良い
http://www.task-notes.com/entry/20150504/1430708400
2017/10/25(水) 09:44:49.84ID:ZmgYAolO
まあ実際的にも教育的にも「closeなんてしなくていいよ」ということはないな
自動でcloseしてくれる普段使い用コンビニエスメソッドが本家でもあるべきではあるが
2017/10/25(水) 10:10:23.11ID:QmdhvvJR
Javaってc#のusingみたいな構文ないんだっけ?
313デフォルトの名無しさん
垢版 |
2017/10/25(水) 11:01:31.98ID:lQVA76dW
>>311,312
直前のレスくらい読もうぜ
2017/10/25(水) 18:36:25.22ID:9pgp/kzo
プログラミング完全初心者でこれから始めようと思っているんですが
何を何からやれば良いでしょうか
お勧めの本やサイト等もご教授ねがいます
OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました
2017/10/25(水) 18:38:25.23ID:0GYD+24d
>>314
プログラミングで何をやりたいの?
学ぶ目的は?
316デフォルトの名無しさん
垢版 |
2017/10/25(水) 18:44:11.98ID:MjxzUPyN
C#と座間林が話題になってたからそっちのほうがいいのかも
2017/10/25(水) 18:54:09.43ID:ZmgYAolO
>>314
>何を何からやれば良いでしょうか
>お勧めの本やサイト等もご教授ねがいます
全部おんぶに抱っことかアフィかッ!
やんわりマジレスすると最初の最初はJavaでないほうがいいよ
これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい
ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ
2017/10/25(水) 19:02:06.72ID:ZmgYAolO
環境見てなかったwwww
もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ
アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ
ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ
よかったら検討してくれ
2017/10/25(水) 19:08:59.03ID:9pgp/kzo
ありがとうございます
webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております
調べていてpythonというのも候補には挙がったんですが
javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました
学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています
2017/10/25(水) 19:37:30.37ID:9pgp/kzo
すいませんちょっと嘘つきました
お金がないよりも、勉強の邪魔になるからって買わせて貰えない
の方が正しかったです
2017/10/25(水) 19:47:59.66ID:ZmgYAolO
学生さんならJavaなんてやるのは勿体ないよ
あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね
322307
垢版 |
2017/10/25(水) 20:18:00.51ID:ZfgKJLFw
何件かレスを頂き、ありがとうございます。

仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか?
引き続きで恐縮ですが、皆様の見解をよろしくお願いします。
2017/10/25(水) 20:28:08.31ID:lZypkF1g
>>322
規約と契約による
あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし
Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである
324デフォルトの名無しさん
垢版 |
2017/10/25(水) 20:30:59.72ID:zzC6q5u4
>>317
え?Javaってそんなに難しいか?

まあでも元の質問してる人はOSがLinuxなので多分何も知らない初心者じゃないと思うぞ。
多分他の言語はわかるんじゃないか?
325デフォルトの名無しさん
垢版 |
2017/10/25(水) 20:36:12.40ID:zzC6q5u4
あ、ごめん。リロード忘れてた。なんでLinuxか書いてあったな。

まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。
2017/10/25(水) 20:40:19.16ID:lZypkF1g
>>324
まーなんだ、「小難しい」のは間違いないな
1行実行するために10行書くような言語だ
IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ

あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ
327デフォルトの名無しさん
垢版 |
2017/10/25(水) 20:56:31.41ID:zzC6q5u4
>>326
いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。
しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。
そういう誤解がないということはそれなりにわかっていると考えて良かろう。
2017/10/25(水) 21:17:12.51ID:QmdhvvJR
>>327
いまはWSLあるしなー
2017/10/25(水) 21:45:19.10ID:/TUaBfz7
314です
泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます
ありがとうございました
2017/10/25(水) 22:42:58.25ID:RILf1WwA
泥アプリ開発ならvsでxamarinとかブラウザでmonacaみたいな選択肢もあるし
一旦言語選択から考え直してみたら
2017/10/25(水) 23:26:15.55ID:M2TcZ1xf
>>314-321
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。
アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる
332デフォルトの名無しさん
垢版 |
2017/10/26(木) 00:28:50.10ID:qkSUMYmO
クラス名からインスタンスを生成して、
そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、
privateなメンバ変数にも値をセットすることはリフレクションで出来ますか?

class Entity{
@getter @setter
private Long age;
}
があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです
333デフォルトの名無しさん
垢版 |
2017/10/26(木) 00:42:22.95ID:qkSUMYmO
自己解決した ありがとう
334デフォルトの名無しさん
垢版 |
2017/10/26(木) 01:29:13.40ID:N/UTfD1S
>>314
Progate行ってこい
やれそうだと思ったらスッキリ入門編
335デフォルトの名無しさん
垢版 |
2017/10/26(木) 09:58:09.89ID:/KWiwsxI
>>333
どうやって解決したかを書け
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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