Java入門・初心者質問スレ Part.5©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
こちとら仕事でこんなもんじゃないレベルのウンコを相手にしてるからな 本来いらないスキルだからお前は真っ当に育ってくれ >>282 反論の余地もないです。これからも精進します… >>283 センスないと言われたらそこまでですが、将来IT系で働きたいと考えているのですがどう思いますか?ちな理系です。 >>285 働くだけなら誰でも行けるよ スキルは後から付ければいいけどあればあるだけ有利にはなる >>281 完成については最初に問題を見た直後に大半のやつはわかっていて、 それだからクソだと言っていたのだ。この程度は誰でも慣れてくると すぐに頭に浮かぶようになる。というか見た直後にまず違和感を覚える。 それからその違和感の原因はなんだろうと心の中を探り、それから ソースを二度見して気づく。 ネットで色々調べ物してたら大学生とか院生でも仕事でjavaってる奴よりも 遥かに賢いコード書いてる奴が腐るほどいるのに 大学で出る課題がこれでそれに悪戦苦闘してる奴が仕事とか夢見すぎだろ 初歩中の初歩的なことで申し訳ないんですが、Windows 10上でのJava開発環境の構築は a. JDKインストール → Eclipseインストール →Pleiades プラグインインストール (一般的?) b. Pleiades All in One [Eclipse 4.7] Java (Full Edition) どちらの方法がお勧めでしょうか?最近まで開発にMacを使っていたものでどうすべきか悩んでいます。 後者は最初からよく使うプラグイン類が導入済で便利とは聞きますが... >>292 本当の初心者とか楽したいなら後者 開発経験あるなら前者で必要なプラグインだけ選出して入れる 必要ないプラグインは外せる だからプラグインと呼ぶ 学校でのプログラミングの課題はあくまで穴埋め的に特定手法の記憶度を見るものであり 独習時の問題とも業務実習時の課題とも違うものだから出来不出来は気にしないのがよい ネイティブだろうがプロ翻訳家だろうが「学校の」英語「習熟度ドリル」は満点取れなかったりするものだ あー。帰国子女で日本語片言のやつがなぜか満点取れないと。 この課題はインスタンス変数とクラス変数の違いを知るためのものだから こういう間違えをして調べるのを期待してるんだろ ま、しかし、もうちょっとましな課題作れないもんだろうか。 疲れてたのかな。 やっと流れに追いついた >>200 のは、設計がどうのという以前に キチガイの所業 あるいはお前らの脳を疲弊させるための実験 お前らマトモにとりあってたらダメだぞ あー。そうか。スレを活性化させるために投下された燃料だったのか。 一般的にこういう課題ってam[0]の箇所を 自分なりに修正して提出したら減点対象になるの? もしそうなら大学レベルの教育方法ではないよね 配列ってホッチキスで止められた書類みたいなもんだから最近嫌いだわ >>304 要素一つ一つaddする地獄もなくなったし、これからはListの時代 質問です。 ファイル圧縮処理を行う下記のコードで、 https://ideone.com/PFwyTI close処理をfinally文ではなくcatch文の中に記述されているのですが、 問題無いのでしょうか? >>307 処等後にプロセスがすぐに死ぬなら 閉じる必要もないでしょ flushだけでいい キャッチはまるまるいらない closeとセットで作るようにしないといつかclose忘れ起こすと思うけど まあ実際的にも教育的にも「closeなんてしなくていいよ」ということはないな 自動でcloseしてくれる普段使い用コンビニエスメソッドが本家でもあるべきではあるが Javaってc#のusingみたいな構文ないんだっけ? プログラミング完全初心者でこれから始めようと思っているんですが 何を何からやれば良いでしょうか お勧めの本やサイト等もご教授ねがいます OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました >>314 プログラミングで何をやりたいの? 学ぶ目的は? C#と座間林が話題になってたからそっちのほうがいいのかも >>314 >何を何からやれば良いでしょうか >お勧めの本やサイト等もご教授ねがいます 全部おんぶに抱っことかアフィかッ! やんわりマジレスすると最初の最初はJavaでないほうがいいよ これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ 環境見てなかったwwww もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ よかったら検討してくれ ありがとうございます webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております 調べていてpythonというのも候補には挙がったんですが javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました 学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています すいませんちょっと嘘つきました お金がないよりも、勉強の邪魔になるからって買わせて貰えない の方が正しかったです 学生さんならJavaなんてやるのは勿体ないよ あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね 何件かレスを頂き、ありがとうございます。 仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか? 引き続きで恐縮ですが、皆様の見解をよろしくお願いします。 >>322 規約と契約による あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである >>317 え?Javaってそんなに難しいか? まあでも元の質問してる人はOSがLinuxなので多分何も知らない初心者じゃないと思うぞ。 多分他の言語はわかるんじゃないか? あ、ごめん。リロード忘れてた。なんでLinuxか書いてあったな。 まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。 >>324 まーなんだ、「小難しい」のは間違いないな 1行実行するために10行書くような言語だ IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ >>326 いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。 しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。 そういう誤解がないということはそれなりにわかっていると考えて良かろう。 314です 泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます ありがとうございました 泥アプリ開発ならvsでxamarinとかブラウザでmonacaみたいな選択肢もあるし 一旦言語選択から考え直してみたら >>314-321 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊をこの順に読む たのしいRuby 第5版、2016 みんなのPython 第4版、2017 ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。 アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる クラス名からインスタンスを生成して、 そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、 privateなメンバ変数にも値をセットすることはリフレクションで出来ますか? class Entity{ @getter @setter private Long age; } があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです >>314 Progate行ってこい やれそうだと思ったらスッキリ入門編 >>323 分かりました。ありがとうございました。 H2 Databaseに接続するプログラムをコンパイルし実行したいのですが、 クラスパスを何て書けばいいか調べても分かりません。 どなたか教えて頂けませんでしょうか? >>337 ここにいきなりこう書いてあるが? http://www.h2database.com/html/quickstart.html Add the h2*.jar to the classpath (H2 does not have any dependencies) >>338 レスありがとうございます。 具体的には、javac -cp h2*.jar Main.java (Main.javaはクラス名)と入力し、 java -cp h2*.jar Main と入力すればいいんですか? 今時クラスパスを手動で解決するとは mavenとかgradle使え >>339 いや、h2*.jar が入っているディレクトリごと指定しないと普通はダメなのでは? カレントディレクトリにあるならそれでも良いのかも知れんが。 コンパイルは通るのですが、実行できませんでした…。 ClassNotFoundExceptionとSQLExceptionが発生してしまいます。 どなたかヒントを下さい。 ソースコードは以下です。 https://ideone.com/4xrmgz >>340 すいません、今回はコマンドプロンプトで書かせて下さい。 >>342 javacで取り込むわけではないので javaで実行時にもCLASSPATHを通して見つかるようにしてやる必要がある >>342 コンパイル時と同じ classpath にしてもダメなの? >>344 はい。それは分かります。javacと同じクラスパスをjava実行時にも付けています。 実は根本的に、h2*.jarファイルがどこにあるのかよく分かってない気もするんですが、 H2 DatabaseのホームページからDL出来るh2-setup-2017-06-10.exeファイルの 中にあるんですよね? >>345 はい。 なのでjarファイルの位置指定がそもそも間違ってるんじゃないかと思い始めて いるんですが…。.jarという拡張子のファイルが見当たらないんです。 >>346 知らないけど それは自己解凍ファイルなのかな 検索して実際のjarファイルを探してみればいい コンパイル時はインタフェースさえわかればいいから その実装のclassには通ってない可能性がある ちゃんと何してるかから理解した方がいいと思うぞ >>348 あれからいろいろ調べて、Cドライブを検索した結果、h2*.jarファイルが 見つかりました!やはり.exeファイル内には無かったようです。 クラスパスを更新したら実行(javaコマンド)も無事成功しました。 回答して頂いた方々、ありがとうございました。 コンストラクタで引数チェックをし、例外を投げることは設計上良くないのでしょうか?例えば class hoge { private final int i; hoge(int i) { if(i >= 0) this.i = i; else throw new IllegalArgumentException } } フィールドiに負の数を持たせたくない場合このようにするのが自然かなと考えたのですがいかがでしょうか? >>350 クソだと思う 値をチェックする責務は専用のクラスに任せて それ以外のクラスに持ち込むべきじゃない >>350 別にいいと思うぞ 作ってからIsValidで確認するか そもそも作らせないようにするかの違い どっちのやり方も良し悪しがある 空のオブジェクト作って後でsetter使って入れるのも微妙だしコンストラクタで値チェックとかしていいと思うぞ 俺ならPattern.compileメソッドみたいに自分自身を返すstaticメソッドで価チェックする >>351 値チェック専用のクラスを作る場合どのように作るべきでしょうか 値チェッククラスでOKだった数値(正の数)をどのようにhogeのコンストラクタに渡すのかいまいち正しいイメージがつかめません 値チェッククラスのインスタンスをhogeの内部に持たせる(フィールドとコンストラクタの引数を変更する)のが良いのでしょうか? とんちんかんな質問かもしれませんがよければお答えいただけると嬉しいです >>352 なるほど isValidメソッドであとからチェックするというのは思い付きませんでした >>350 >コンストラクタで引数チェックをし、例外を投げる 問題ない バグでおかしくなるのが一番の問題 Hibernate Validatorみたいなバリデーションフレームワークは一般的に作ってから確認する方式 そもそも作らせないようにするのは”always valid”と呼ばれてる “always valid model”とかで検索すれば参考になるサイトが出てくる 長所短所を理解して使い分ける 俺だったらPositiveNumberみたいなジェネリッククラスを作るか、@positiveみたいなアノテーション作る >>353 ありがとう >空のオブジェクト作って後でsetter使 >って入れるのも微妙だし 私もそう思ったのですがコンストラクタで例外を投げるのは良くないというような意見をどこかで目にしたので聞いてみました >>357 ふむふむ 個人的にはそもそも作らせないって方が好みな感じがします 調べてみます情報ありがとう コンストラクタとセッタに同じことを示す文が複製されるのもちょっと良くないな >>351 クソ?しかし API にも new した時に例外出すやつ沢山あるわけだが、そういうのは全部クソ? >>360 コンストラクタで最初に値をセットして後から変更できないようにsetterは持たせないというつもりでした (フィールドをfinalにしているのはそのためです) >>355 オブジェクト作る前にValidatorクラスでチェックするだけ >>361 全部クソ。 オブジェクトの責務をわかっていない。 インスタンス変数(やクラス変数)は そのオブジェクトに付属するデータだから コンストラクタなどでデータチェックの責務を オブジェクト自身に持たせるのはおかしくない ただしチェックが複雑化したときに 責務を委譲するのもアリ >>365 そのただしが問題 検証はシステムの関心ごとだから 集約するべきでオブジェクト毎に持つものじゃない コンストラクタはオブジェクトを初期化するという 特別な処理であってここでデータチェックが必要になるのは 責務の分離ができてないシグナルみたいなもの staticメソッドでtryCreateという名前なら100歩譲ってオーケーだ 負の値を持たせたくないのは業務の要件なんですよ!! >>366 >検証はシステムの関心ごとだから >集約するべきでオブジェクト毎に持つものじゃない 責務を分離するのは重要だがそのオブジェクトの 規模が大きくなって複雑化するにつれて分けていくもの たとえば生成の責務をファクトリに分離してもいいが 何でもかんでも全部ファクトリにする必要はない だからコンストラクタでチェックしてもいいし バリデータみたいのに分離してもいい 思わず激昂してしまいましたがとにかく小生が言いたいのはコンストラクタで例外投げるのおかしいですよということなんです >>368 どっちでもいいなんていうそんな優柔不断で玉虫色な考えに真実があるわけない、あなたは思考を放棄しているに等しい、ここにはこういう値しか保持したくないんです、立派な業務要件でしょうが!! じゃあその要件をまとめましょうよ、システムの関心ごととして切り出しましょうよ >>367 業務要件で例外処理を考えてるってなかなかおもしろいね もっと具体的にちゃんと説明して 小生良い事言ってるからそれちゃんと説明して >>370 いやそれは極端でしょ OOPの要素はどれも使い分けじゃないの? 複雑化したら切り出すが抽象化にはキリがないので IF文を全部ポリモーフィズムにするわけでもないし 最初から全部デザパタにするわけでもない >>374 ifの話じゃないだろ なんでもかんでも一緒にするな 極端なのはそなたの方 こなたが言いたいのはとにかくコンストラクタでチェックするのおかしくないですかってこと >>375 コンストラクタでチェックするのはおかしくない JavaのAPIでやってるくらいなんだから むしろやるなって方が押しつけ コンストラクタでチェックして例外投げるのは ようわからんけどオブジェクト作ってみるわー でけへんかったわーゲヘヘーと言ってるようなもの 文明人のやることじゃない アサートを使うべき アサートは本番では動かさないからね 検証は専用のオブジェクトでやりましょう >>376 アホかお前は、お前はアホか JavaのAPIははっきり申し上げてクソでござる クソがやってるから大丈夫なんだとはならんだろうが どこがクソかはお前に任せるよ アサートでもいいが例外投げてもいい つーかコンストラクタで例外投げるのが大問題なら Javaの言語仕様でできないようにするだろ…… 普通に考えて2ちゃんの一個人より Java(API)のやり方の方がいいわ >>379 ファイナライザでは例外投げないようにしましょう というのがベストプラクティスだけど言語仕様ではできるでしょうに 言語仕様ってその程度のものですよ コンストラクタでも例外投げるのやめましょうよ 2chネラーだから信用しないっていうのは権威主義的というか誰が言ってるかより中身で判断していただきたい、小生絶対良い事言ってるから!! それでええんか? 議論って考えを広げるためにあるんやで キチガイとレッテルを張っておしまいでほんとにええんか? 小生が可哀想だと思わない?罪悪感を感じない?お前のお母さんもお前には優しい人に育ってほしいと思ってたのじゃないか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる