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/09(土) 23:54:43.97ID:IT7jkcdD
>>517
それが終わったら何を勉強すればいいんですか?
自分で考えるべきですか?
2017/09/10(日) 03:41:17.48ID:whQ/VzG3
>>516
書き疲れたって言っても、写してるだけで自分で考えて書いてるわけじゃないでしょ
手が疲れても意味ないよ、頭が疲れなきゃ
2017/09/10(日) 07:58:46.57ID:Aa/cPztt
Javaのお進め図書・情報・urlc2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1457392971/l50

スッキリわかる Java入門 第2版、2014
スッキリわかる Java入門 実践編 第2版
スッキリわかる サーブレット&JSP入門

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

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

EFFECTIVE JAVA 第2版、2014

Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016

プログラミング GROOVY、2011
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
2017/09/10(日) 08:45:20.14ID:62TRA2/h
>>509
相性もあるから
わからなくても3冊読破しろ
わかるようになってくるはず

それでもわからなければ聞け
2017/09/10(日) 08:47:21.01ID:62TRA2/h
新しい言語やるときは予約語について調べるといいな
大抵数十個しかないし
2017/09/10(日) 12:00:09.53ID:bNzAxglb
Javaってめんどくさすぎませんか?
c#だと
dotnet new mvc
たったのこれだけでアプリケーション開発をスタートできます
それに比べてjavaは手間が多すぎます
アプリケーション開発に集中したいのに余計なことにばかり労力をかけなければなりません
なぜjavaコミュニティの人々はこんなにもめんどくさい状態を放置し続けているのでしょうか
やる気がないのでしょうか?
2017/09/10(日) 12:11:48.52ID:8/swxObF
めんどくさいと思ってないからだろうね
めんどくさいと思うヤツがいればそいつがめんどくさくないようにするツールを作るし
525デフォルトの名無しさん
垢版 |
2017/09/10(日) 12:55:23.82ID:3lFSiHDa
なんとなくLinuxと似てるな。使っているやつの大半が元からコンピュータに詳しいやつばかりなので初心者向けの改良がされないで扱い辛いまま放置されるという。
2017/09/10(日) 13:10:45.17ID:MFlsvD9d
>>523
ヒント:アホにはJavaは使いこなせない
ヒント2:Javaはアホが使えるようにできてない
ヒント3:お前がアホ
527デフォルトの名無しさん
垢版 |
2017/09/10(日) 13:23:18.68ID:3lFSiHDa
うーん。しかし、どの程度の規模のどういった開発をしたいのかにもよるが、まずは言語そのものの学習をしたいのであればWindowsならメモ帳で書いてコマンドラインでコンパイルして実行するっていうかなり簡単な方法があると思うんだが。
528デフォルトの名無しさん
垢版 |
2017/09/10(日) 13:25:05.37ID:3lFSiHDa
あ、この頃はウェブでソース入れてボタン押すだけでコンパイルして実行してくれる所あるからもっと簡単だな。簡単すぎ。
2017/09/10(日) 13:51:40.24ID:bNzAxglb
ちなみに私は普段から仕事で大規模な開発をしています
JavaもJavaで主流のフレームワークも素早く習得し実務で利用しています
できないのではなくただひたすらにメンドクサイのです
なぜjavaユーザーはメンドクサイものをそのまま放置するのか
その理由が私にはわかりません
2017/09/10(日) 13:57:30.06ID:jX//aMWX
冗長なコードになってもJavaが人気なのは強い静的型付けでアホが書いても安全だから
そこそこの規模の開発でアホが書いたRubyコードなんか混じると地獄になる
2017/09/10(日) 14:04:46.24ID:HJWXg031
Eclipse落としてくるだけじゃん
2017/09/10(日) 14:05:12.61ID:MFlsvD9d
ヒント4:書いてることがド素人丸出し
ヒント5:大規模プロジェクトに突っ込まれるのは数合わせの木っ端要員
ヒント6:お前が馬鹿
2017/09/10(日) 14:12:11.92ID:bNzAxglb
>>531
重いし遅いしめんどくさいです
シェルとvimだけでやりたいです
2017/09/10(日) 14:50:40.96ID:HJWXg031
面倒なの嫌いな人間がvim使ってんじゃねえw
2017/09/10(日) 15:34:37.41ID:MFlsvD9d
ヒント7:素人の馬鹿がネガってるだけ
ヒント8:馬鹿にオススメの言語 COBOL、VB、C#
536デフォルトの名無しさん
垢版 |
2017/09/10(日) 15:40:59.48ID:QzndGGQt
ビーンズとかいうの使えばいいんだろ?
2017/09/10(日) 15:58:47.27ID:3lFSiHDa
>>529
面倒くさいとか言いながらそのまま使ってしまうやつが多いからだろう。
つまりある程度コンピュータに詳しいやつしか使っていないという Linux と似たような状況。
まあそれでも Android とか作って金稼ごうという Google みたいなのが現れるかも知れないわけだが、
Javaではまだそういう野望を持つやつは居なかった(いや、居ないことはないがメジャーにならなかった)わけだな。
2017/09/10(日) 16:05:36.32ID:bNzAxglb
>>537
難しい事を出来る能力のある人ではなく
なんとか使えてはいるけれどカイゼンするまでの能力はない半端な人しか使っていないのでは?
2017/09/10(日) 16:13:25.25ID:w6DoWSI/
そいつはこのスレで言うことなのか
540デフォルトの名無しさん
垢版 |
2017/09/10(日) 16:13:50.06ID:3lFSiHDa
>>538
それもあるかもね。

後は「難しいことを知っている自分」というのがエゴの足しになっている場合かな。
ま、実際に人にはできない高度な事が出来ればそれで金を稼げる可能性が高まるわけで、
それに頼って生きているようなやつはその高度な事を高度でなくすような事はしないだろう。
そんな事したら自分の生活が貧しくなって底辺に落ちるからな。w
2017/09/10(日) 16:14:41.00ID:HJWXg031
たいした違いがあるとも思えんが
何がそんなに面倒だったんだ
2017/09/10(日) 16:14:55.00ID:MFlsvD9d
ヒント:素人以下の馬鹿の自演
2017/09/10(日) 16:16:09.02ID:bNzAxglb
まるでCOBOLを見ているようで悲しくなりますね
2017/09/10(日) 16:17:42.42ID:g6e16kXh
ヒント10:訓練校の人間も2は見ている
2017/09/10(日) 16:20:12.36ID:HJWXg031
簡単さと引き換えになるのはたいてい
規模が大きくなった時のメンテナンス性や
意識的な細かい制御

ようするにvimの人は手順を追って何とか作業ができはするが
利益を理解できるレベルにないのだろう
2017/09/10(日) 16:35:10.48ID:bNzAxglb
>>545
簡単さとカスタマイズ性を両立できることは他の言語のモダンなフレームワークが証明していますよ
Javaスレらしいと言えばらしいんですが、少々考え方がレガシーですね
2017/09/10(日) 17:06:48.53ID:MFlsvD9d
ヒント:
フレームワークを素早く習得し〜とか
自分で使用言語選べない立場にいる木っ端のアホが能書き垂れるスレじゃない
548518
垢版 |
2017/09/10(日) 17:27:17.21ID:zlOAvEVW
>>520
ありがとうございました。
ちょっと怒ってます?
2017/09/10(日) 17:48:12.43ID:KEYZb0z0
>>546
で、質問はなんだったっけ?
2017/09/10(日) 18:25:31.79ID:HJWXg031
Javaにはコマンドラインからのプロジェクト作成ウィザードがないとお怒りのようです
2017/09/10(日) 18:29:20.29ID:MFlsvD9d
マジレスするとコイツがめんどくさいって言ってるのって
環境変数設定するのがーとかの超低次元のレベルの話だろ
2017/09/10(日) 20:11:27.20ID:vMSV9X0d
>>489

おう、まいど!

好きなの持って行きな!

http://www.wikihouse.com/scm/index.php?%EB%CC%CA%DB%A4%CE%A5%AC%A5%A4%A5%C9%A5%E9%A5%A4%A5%F3
2017/09/10(日) 20:19:51.38ID:xTzJbttv
>>449
C#って動詞だったのかよ...
2017/09/10(日) 21:41:22.66ID:JRi6baJ3
doが省略されてるんでしょって言わないとわからんかね
2017/09/10(日) 22:19:33.84ID:bNzAxglb
>>549
なぜJavaコミュニティの人々は使いにくいJavaを放置し続けるのか?
ですかね
2017/09/10(日) 22:21:44.81ID:7jTNf2+P
>>555
使いにくいと感じていない
が回答ですね
2017/09/10(日) 23:00:06.61ID:ZcQzUUfy
spring initializrもめんどくさい?
2017/09/11(月) 01:26:23.02ID:l21t5Df8
フレームワークや言語を修正できる人って1000人に1人くらいでしょ、自分でできるならここで文句言うこともないと思うので修正できる人探して訴えるしかない
使うのが面倒くさいと思っていても修正するのはそれ以上に面倒くさいとわかるでしょうに
559デフォルトの名無しさん
垢版 |
2017/09/11(月) 03:04:41.07ID:TB0SwtSd
人の作ったもの読んで理解して修正するのが面倒なら初めから全部自分で作ってしまうという手もある。
まあでもプログラミングを全部一人でやる必要はない。仕様公開して作る人募集して作ってもらうということも可能だからな。
自分で作るとしてもプラグインで機能追加できるようにしといて自分では核となる部分とどうしても最初からあって欲しいプラグインだけ作って後は他の人にどんどんプラグイン作ってもらうという手もある。
2017/09/11(月) 03:10:25.03ID:+NzND3PL
Javaのオブジェクト指向の正統派感が半端ない
2017/09/11(月) 06:37:01.01ID:JLDhDRUg
>>523
mavenですぐ始められるだろ
2017/09/11(月) 06:38:35.28ID:JLDhDRUg
>>560
intとかあるのに?
2017/09/11(月) 08:20:23.82ID:+NzND3PL
>>562
プリミティブを許さないOOPって何がある?
2017/09/11(月) 09:39:24.12ID:vJ3AiMg+
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK)  プログラマーズ
2017/09/11(月) 12:00:24.74ID:YUiT0WG/
例外処理について質問です
try catchで例外オブジェクトを投げるとのことですがこの例外オブジェクトってなんなんでしょう
例外って要はプログラム実行してて何か不自然な挙動があったという状態であってそれがオブジェクトとは?
今までオブジェクトってのはクラスがあってそれを基にしてオブジェクトが作られる、メモリ領域が確保される
っていう理解だったので、エラーにオブジェクトもくそもないだろと思うのですが
2017/09/11(月) 12:11:54.05ID:KaqDqihN
>>565
Throwableを実装するクラスのオブジェクトでござろうよ
2017/09/11(月) 12:52:21.51ID:464/dgmD
>>565
例外オブジェクトは、例外が発生した原因、場所などを保持するオブジェクト
オブジェクト指向の世界なんだから、エラーに関する情報もオブジェクトへのアクセスで取得できた方が一貫性あるし都合がいいじゃん
2017/09/11(月) 12:55:56.64ID:YUiT0WG/
えーっと書き方悪かったですかね……
エラーってのはプログラムとは独立の事象じゃないですか
プログラムを実行した結果起きる出来事なわけで実体はないと思うんですよ
だからそれはオブジェクトというか操作する対象になりえないのではないかと
2017/09/11(月) 12:57:33.16ID:MQg6nYRf
>>565
例外情報をまとめたオブジェクト
2017/09/11(月) 13:21:47.07ID:w3UfkE5E
ここまで頭悪い奴は久々に見たな
2017/09/11(月) 13:48:48.73ID:YUiT0WG/
>>567 >>569
あーなるほど
エラーそのものがオブジェクトなんじゃなくて、エラーが出るとエラー情報を元にオブジェクトが生成されるってことでいいんですかね
2017/09/11(月) 13:53:32.73ID:JLDhDRUg
>>563
ruby
2017/09/11(月) 14:02:19.43ID:wWjif9uw
ここの住人は優しいな
2017/09/11(月) 14:04:39.27ID:JLDhDRUg
自分で例外クラス定義したり
newしたりしないのかな
2017/09/11(月) 15:56:12.62ID:pLv+3faO
してもいいけどだいたいは元からあるやつで済みそう。
2017/09/11(月) 16:31:17.48ID:j2JxUcFR
自作例外は初心者に不要だと思う
2017/09/11(月) 17:39:05.01ID:OENb9hQD
構造体的なものを使いたい時に、クラスを使っているのですが
Public class Hoge {
public int fuga;
public int piyo;
}
とやって、更にgetFuga,setFugaなどのメソッドを実装するのと
メソッドを使わず、利用の中でtest.fuga=3などと直接触るのでは
Java的には前者のほうが推奨なのでしょうか?
(カプセル化?っていうんでしょうか?)

また、その場合にはクラスもPublicではなくPrivateにして外から触れなくするのが良いのでしょうか?
よろしくお願いいたします
2017/09/11(月) 17:54:49.24ID:a/3J8itn
>>577
パブリックなアクセサ作ったら
カプセル化にならぬよ
フィールドをパブリックで公開するのがモダンなインプリメンテーション
2017/09/11(月) 18:01:03.13ID:QNy5oHUR
>>577
物による
振る舞いを持ったオブジェクトならフィールドもアクセサも公開しない
データならフィールド丸出し
2017/09/11(月) 21:07:20.59ID:+NzND3PL
>>572
orz
2017/09/11(月) 21:12:01.54ID:QpwJ435R
>>577
他のクラスからいつ書き換えられてもいいならpublicにしとけば良い。
書き換えられた時に何かそれにまつわる処理をしたいならprivate等の外から直接アクセスできないやつにしてsetter経由でしか書き換えられないようにすれば良い。
読み出しのみ可能にしたいなら同様にprivate等にしてgetter作っておけば良い。
2017/09/11(月) 21:42:22.72ID:+NzND3PL
>>578
アクセサメソッドはカプセル化というよりは不正な値の代入や取得を防止するのが主な目的だと思うけどね
なのでフィールドはprivateにしてアクセサメソッドをpublicにする
フィールドをpublicで公開するのがモダンなimplementationだというのは初めてきいた
2017/09/11(月) 21:55:44.65ID:j2JxUcFR
もはや宗教
584デフォルトの名無しさん
垢版 |
2017/09/11(月) 22:17:17.13ID:x6mCsGmB
>>582
最先端だからね、これから広めて欲しい
2017/09/11(月) 23:05:36.77ID:y5R43Vtl
どこの先っぽだ
2017/09/11(月) 23:51:12.72ID:QNy5oHUR
C#もそうだけどモダンな言語ってのは関数型の取り込みが進んでるんだよ(Javaはモダンじゃないって?)
んで関数型はデータを純粋なデータとして扱う事が多い
だから隠蔽されたクラスより公開された構造体の方が合ってるんだね
2017/09/12(火) 00:08:26.83ID:APGFN74L
質問です。
コンストラクタにはpublicを付けた方がいいのでしょうか?
それとも付けない方がいいのでしょうか?
2017/09/12(火) 00:33:44.11ID:yajdRfge
OH!
2017/09/12(火) 01:23:33.84ID:7I+dfSsy
>>587
場合による
2017/09/12(火) 01:31:43.91ID:wkDGqWCe
>>587
コンストラクタの意味合いから考えて通常はpublicをつけます
逆にprivateをつけた時の効果とそれにより考えられる効能を想定してみましょう
591デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:37:00.21ID:KwS1KeaA
>>585
恐らく三角形の底辺の右か左の尖ってる所
592デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:40:47.97ID:KwS1KeaA
class X {
 private X() {}
}

俺の心の中でしか new できないクラス
2017/09/12(火) 01:50:55.01ID:wkDGqWCe
自身の初期化済みオブジェクトを返すクラスメソッドだけからしかオブジェクト生成をさせたくない時(があるのかしらんが)とかかねぇprivateコンストラクタを定義するとしたら
2017/09/12(火) 02:03:12.61ID:7I+dfSsy
昔はsingletonにする時によく使ってたけど、最近はDIコンテナに任せちゃうからなあ
595587
垢版 |
2017/09/12(火) 02:37:13.04ID:APGFN74L
遅い時間に失礼します。
回答をくれた方ありがとうございます。

publicを付けるか付けないかで具体的に何が変わるのでしょうか?
例えば、
public class A {
int a;
A() {
a=1;
}
}

public class A {
int a;
public A() {
a=1;
}
}
とでは何が違うのでしょうか?
2度目になりますが、回答の方よろしくお願いします。
2017/09/12(火) 03:37:49.76ID:sosh7c3a
>>595
publicはデフォルトコンストラクタを明示
privateはデフォルトコンストラクタを使用禁止
597デフォルトの名無しさん
垢版 |
2017/09/12(火) 03:49:16.12ID:KwS1KeaA
http://msugai.fc2web.com/java/permitmod.html
2017/09/12(火) 11:19:16.85ID:WW0MtbKa
>>577-582
フィールドを直接アクセスするのは、同じクラス内だけ。
同じクラス内のソースコードを書く人は、
同じ会社・人物だから、勘違いが少ないから、OK

そのクラスの外からアクセスする人は、必ず、アクセッサを通す。
これは異なる会社・人物を想定しているから、
コメントで説明するだけじゃ、不十分

コメント通りに、プログラミングするかどうか、分からないため、
必ず、アクセッサを通して、不正な値ではエラーにする

もし、エラーにしなかったら、不正な値でも動いてしまって、
後に、別の場所で、別のエラーになるから、原因を突き止めるのが難しくなる

エラーの原因と、エラーになる場所が遠くなるから、ダメ
2017/09/12(火) 13:11:52.84ID:VqXuokxt
仕様変更もある
2017/09/12(火) 15:39:18.80ID:S9YYo8OY
>>598
そんな事やったら複雑になるだけだよ
データチェック用のクラスは別で用意して
モデルにデータチェックを持ち込まないようにしましょう
2017/09/12(火) 17:37:09.82ID:ZIY9GNtc
アホか
2017/09/12(火) 19:20:42.58ID:WW0MtbKa
MVC の、ビューでチェックするのか?

ドラクエ10 の話を読むと、ネットから来るデータは、
500バイトに1バイトは間違っているから、絶対に信用しちゃいけない

なぜなら、途中のルーターが、データが間違っていても破棄せず、
間違ったデータで、チェックサムを再計算するから、正しいように見えてしまう
2017/09/12(火) 19:51:45.74ID:oinAiUFn
>>602
するでしょ
典型的なServlet/JSPだとViewってJSPでしょ?
最初にjavascriptで入力チェックしてリクエスト発生前にわかる誤りは指摘するわ
2017/09/12(火) 20:37:37.40ID:w8xybr3m
読点多くね?
605587
垢版 |
2017/09/12(火) 20:37:50.47ID:APGFN74L
>>596 >>597
ありがとうございました。
自分でももう少し勉強してみます。
2017/09/12(火) 20:41:42.77ID:w8xybr3m
入力を受け取るDTOとドメインモデルは分けるっしょ
バリデーションはチェック専用のオブジェクト作ってそこに集約するっしょ
2017/09/12(火) 20:43:50.50ID:w8xybr3m
>>602
サーバー側でやるならコントローラとモデルの中間
2017/09/12(火) 20:46:45.14ID:w8xybr3m
アクセサを作らないのがモダンなJava
2017/09/12(火) 20:55:43.16ID:SDL3iTYa
冗談だよな
2017/09/12(火) 21:03:02.15ID:4UXnt6r5
>>602
500バイトに1バイト?そんなに間違うかなあ?UDPパケットでもそんなの気にした事ないなあ。IPレベルではそんなエラー沢山出てるのか?
611デフォルトの名無しさん
垢版 |
2017/09/12(火) 21:05:40.41ID:4UXnt6r5
Kotlin使えばgetter,setterで悩まんで済むのではないだろうか。
2017/09/12(火) 21:09:09.54ID:VqXuokxt
>>600
構造体か
2017/09/12(火) 21:09:49.83ID:VqXuokxt
>>610
チートだろ
2017/09/12(火) 21:19:09.53ID:wkDGqWCe
>>602
何そのクソルーター
2017/09/12(火) 21:22:59.95ID:WW0MtbKa
>>610
1/500 = 0.2%

確か、伝送エラー率も、これぐらいだったと記憶している。
まあ、チートもあるだろうけど
2017/09/12(火) 22:30:13.97ID:jP/+HaLi
超初心者です。
文字列で疑問に思ってのですが、文字列を(A)のパターンで使おうと思ったのですが、
(B)のパターンもあるみたいなのですが、
(A)のパターンだけでプログラムを組んでいても問題ないでしょうか?


(A)
 String str = "あいうえお";

(B)
 String str = new String("あいうえお");
2017/09/12(火) 22:31:42.44ID:sosh7c3a
ない
2017/09/12(火) 22:37:16.01ID:VqXuokxt
>>615
1パケット何バイトだよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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