Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Javaにはコマンドラインからのプロジェクト作成ウィザードがないとお怒りのようです マジレスするとコイツがめんどくさいって言ってるのって
環境変数設定するのがーとかの超低次元のレベルの話だろ doが省略されてるんでしょって言わないとわからんかね >>549
なぜJavaコミュニティの人々は使いにくいJavaを放置し続けるのか?
ですかね >>555
使いにくいと感じていない
が回答ですね spring initializrもめんどくさい? フレームワークや言語を修正できる人って1000人に1人くらいでしょ、自分でできるならここで文句言うこともないと思うので修正できる人探して訴えるしかない
使うのが面倒くさいと思っていても修正するのはそれ以上に面倒くさいとわかるでしょうに 人の作ったもの読んで理解して修正するのが面倒なら初めから全部自分で作ってしまうという手もある。
まあでもプログラミングを全部一人でやる必要はない。仕様公開して作る人募集して作ってもらうということも可能だからな。
自分で作るとしてもプラグインで機能追加できるようにしといて自分では核となる部分とどうしても最初からあって欲しいプラグインだけ作って後は他の人にどんどんプラグイン作ってもらうという手もある。 >>562
プリミティブを許さないOOPって何がある? ○次受けが多いほど退場率が早くなる。高くなる
直受けの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) プログラマーズ 例外処理について質問です
try catchで例外オブジェクトを投げるとのことですがこの例外オブジェクトってなんなんでしょう
例外って要はプログラム実行してて何か不自然な挙動があったという状態であってそれがオブジェクトとは?
今までオブジェクトってのはクラスがあってそれを基にしてオブジェクトが作られる、メモリ領域が確保される
っていう理解だったので、エラーにオブジェクトもくそもないだろと思うのですが >>565
Throwableを実装するクラスのオブジェクトでござろうよ >>565
例外オブジェクトは、例外が発生した原因、場所などを保持するオブジェクト
オブジェクト指向の世界なんだから、エラーに関する情報もオブジェクトへのアクセスで取得できた方が一貫性あるし都合がいいじゃん えーっと書き方悪かったですかね……
エラーってのはプログラムとは独立の事象じゃないですか
プログラムを実行した結果起きる出来事なわけで実体はないと思うんですよ
だからそれはオブジェクトというか操作する対象になりえないのではないかと >>567 >>569
あーなるほど
エラーそのものがオブジェクトなんじゃなくて、エラーが出るとエラー情報を元にオブジェクトが生成されるってことでいいんですかね 自分で例外クラス定義したり
newしたりしないのかな してもいいけどだいたいは元からあるやつで済みそう。 構造体的なものを使いたい時に、クラスを使っているのですが
Public class Hoge {
public int fuga;
public int piyo;
}
とやって、更にgetFuga,setFugaなどのメソッドを実装するのと
メソッドを使わず、利用の中でtest.fuga=3などと直接触るのでは
Java的には前者のほうが推奨なのでしょうか?
(カプセル化?っていうんでしょうか?)
また、その場合にはクラスもPublicではなくPrivateにして外から触れなくするのが良いのでしょうか?
よろしくお願いいたします >>577
パブリックなアクセサ作ったら
カプセル化にならぬよ
フィールドをパブリックで公開するのがモダンなインプリメンテーション >>577
物による
振る舞いを持ったオブジェクトならフィールドもアクセサも公開しない
データならフィールド丸出し >>577
他のクラスからいつ書き換えられてもいいならpublicにしとけば良い。
書き換えられた時に何かそれにまつわる処理をしたいならprivate等の外から直接アクセスできないやつにしてsetter経由でしか書き換えられないようにすれば良い。
読み出しのみ可能にしたいなら同様にprivate等にしてgetter作っておけば良い。 >>578
アクセサメソッドはカプセル化というよりは不正な値の代入や取得を防止するのが主な目的だと思うけどね
なのでフィールドはprivateにしてアクセサメソッドをpublicにする
フィールドをpublicで公開するのがモダンなimplementationだというのは初めてきいた C#もそうだけどモダンな言語ってのは関数型の取り込みが進んでるんだよ(Javaはモダンじゃないって?)
んで関数型はデータを純粋なデータとして扱う事が多い
だから隠蔽されたクラスより公開された構造体の方が合ってるんだね 質問です。
コンストラクタにはpublicを付けた方がいいのでしょうか?
それとも付けない方がいいのでしょうか? >>587
コンストラクタの意味合いから考えて通常はpublicをつけます
逆にprivateをつけた時の効果とそれにより考えられる効能を想定してみましょう >>585
恐らく三角形の底辺の右か左の尖ってる所 class X {
private X() {}
}
俺の心の中でしか new できないクラス 自身の初期化済みオブジェクトを返すクラスメソッドだけからしかオブジェクト生成をさせたくない時(があるのかしらんが)とかかねぇprivateコンストラクタを定義するとしたら 昔はsingletonにする時によく使ってたけど、最近はDIコンテナに任せちゃうからなあ 遅い時間に失礼します。
回答をくれた方ありがとうございます。
publicを付けるか付けないかで具体的に何が変わるのでしょうか?
例えば、
public class A {
int a;
A() {
a=1;
}
}
と
public class A {
int a;
public A() {
a=1;
}
}
とでは何が違うのでしょうか?
2度目になりますが、回答の方よろしくお願いします。 >>595
publicはデフォルトコンストラクタを明示
privateはデフォルトコンストラクタを使用禁止 >>577-582
フィールドを直接アクセスするのは、同じクラス内だけ。
同じクラス内のソースコードを書く人は、
同じ会社・人物だから、勘違いが少ないから、OK
そのクラスの外からアクセスする人は、必ず、アクセッサを通す。
これは異なる会社・人物を想定しているから、
コメントで説明するだけじゃ、不十分
コメント通りに、プログラミングするかどうか、分からないため、
必ず、アクセッサを通して、不正な値ではエラーにする
もし、エラーにしなかったら、不正な値でも動いてしまって、
後に、別の場所で、別のエラーになるから、原因を突き止めるのが難しくなる
エラーの原因と、エラーになる場所が遠くなるから、ダメ >>598
そんな事やったら複雑になるだけだよ
データチェック用のクラスは別で用意して
モデルにデータチェックを持ち込まないようにしましょう MVC の、ビューでチェックするのか?
ドラクエ10 の話を読むと、ネットから来るデータは、
500バイトに1バイトは間違っているから、絶対に信用しちゃいけない
なぜなら、途中のルーターが、データが間違っていても破棄せず、
間違ったデータで、チェックサムを再計算するから、正しいように見えてしまう >>602
するでしょ
典型的なServlet/JSPだとViewってJSPでしょ?
最初にjavascriptで入力チェックしてリクエスト発生前にわかる誤りは指摘するわ >>596 >>597
ありがとうございました。
自分でももう少し勉強してみます。 入力を受け取るDTOとドメインモデルは分けるっしょ
バリデーションはチェック専用のオブジェクト作ってそこに集約するっしょ >>602
サーバー側でやるならコントローラとモデルの中間 >>602
500バイトに1バイト?そんなに間違うかなあ?UDPパケットでもそんなの気にした事ないなあ。IPレベルではそんなエラー沢山出てるのか? Kotlin使えばgetter,setterで悩まんで済むのではないだろうか。 >>610
1/500 = 0.2%
確か、伝送エラー率も、これぐらいだったと記憶している。
まあ、チートもあるだろうけど 超初心者です。
文字列で疑問に思ってのですが、文字列を(A)のパターンで使おうと思ったのですが、
(B)のパターンもあるみたいなのですが、
(A)のパターンだけでプログラムを組んでいても問題ないでしょうか?
(A)
String str = "あいうえお";
(B)
String str = new String("あいうえお"); >>616
全く問題ない。
てか、Bの方はメモリや時間の無駄だよ。実際には最適化されてAと同じになるとは思うけどね。 本当に「(B)のパターンもあるみたい」なのだと思っているのだとすれば自分の読解力を疑ったほうがいい CやC++やってた人だと "" だけで既に String クラスのインスタンスである事がすぐにわからんのかもね。
ていうか見た目が同じものなのに違う意味になってて混乱。やがて "abc".charAt(1) で 'b' が返される事に気付く。 >>619
>Bの方はメモリや時間の無駄だよ
??
AとBで意味が違うと思う方がおかしい 初歩的な質問で失礼します。
substringがなんともしっくりこないので、昔のBASICで言うところの「mid」を作ってみたのですが、
呼び出し元の「Test.java」から呼び出し先の「strmid」関数を呼び出す場合、
下記のような感じでよろしいでしょうか?
■Test.java(呼び出し元)
public class Test{
public static void main(String[] args){
String a = "1234567890";
a = Mod_string.strmid(a, 5, 2);
System.out.println(a);
}
}
■Mod_string(呼び出し先)
public class Mod_string{
public static String strmid(String _str, int _index1, int _index2){
String cut_buff = "";
cut_buff = _str.substring(_index1, _index1 + _index2);
return cut_buff;
}
} 訂正です。
■Mod_string(呼び出し先) ×
■Mod_string.java(呼び出し先)○ >>624
いいわけないだろ、何だその変数名は!
真面目にやれよ、ここ2chだぞ!! >>623
そういうのの最適化は保証されてるんだっけ? Mod_stringじゃないBasicだ!
strmidじゃないmidだ!
cut_buffは要らないです midでは切り取る長さが文字列の長さより長かったらどうなるんだ、条件分岐が必要なんじゃないか >>629
ここは初心者スレなんだから質問者の提示したソースがあるならそれをベースに話そうぜ
おまえのルール適用はおまえの環境でやれ >>632
初心者だからこそよりベターな書き方を身に着けないと、何も言われなかったからこれでいいんだJava完全に理解したということになるんだよ
お前はただの無責任でいい加減で良い人と思われたいだけの甲斐性なしの童貞ニートだよ!! 動かして確認しなとかシンナーで脳ミソ半分溶けたスケバンでも言えるだろ スケバンとはスケベ番長のことです
よろしくお願いします >>633
目的をどこにおくかだよ
記載レベルの正しさなんかプロジェクト毎に異なるんだからそんなもん後でいい 残暑が彼をこのようにしてしまったのだろうか。残暑も酷なことをするものだ。 >>636
バッキャロー、そのプロジェクトを作るのがJavaを
完全に理解した人たちなんですよ
変数名も使用もろくに考えない人間をいまあなたが作り出そうとしている、ああ、あなたはとても罪な人 midのスタートポジションって1オリジンじゃなかった? せやろ
このようにいろんな観点からコードを分析してアドヴァイスできる私は夏の妖精と言っていいでしょう 儚い命ですが秋にはナスビの妖精になるので気にしなくて大丈夫です >>635
いやいや鮎川まどかみたいな奴のことだろ JAVAを独学してますが実際にプログラムを書いたほうが覚えがいいと思うのですが
仕事で勉強していたら嫌でも書くことあると思いますが、独学の場合だとどういう風にしたら
たくさんプログラムが書けるでしょうか? ■ このスレッドは過去ログ倉庫に格納されています