X



Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0532デフォルトの名無しさん
垢版 |
2017/09/10(日) 14:05:12.61ID:MFlsvD9d
ヒント4:書いてることがド素人丸出し
ヒント5:大規模プロジェクトに突っ込まれるのは数合わせの木っ端要員
ヒント6:お前が馬鹿
0535デフォルトの名無しさん
垢版 |
2017/09/10(日) 15:34:37.41ID:MFlsvD9d
ヒント7:素人の馬鹿がネガってるだけ
ヒント8:馬鹿にオススメの言語 COBOL、VB、C#
0536デフォルトの名無しさん
垢版 |
2017/09/10(日) 15:40:59.48ID:QzndGGQt
ビーンズとかいうの使えばいいんだろ?
0537デフォルトの名無しさん
垢版 |
2017/09/10(日) 15:58:47.27ID:3lFSiHDa
>>529
面倒くさいとか言いながらそのまま使ってしまうやつが多いからだろう。
つまりある程度コンピュータに詳しいやつしか使っていないという Linux と似たような状況。
まあそれでも Android とか作って金稼ごうという Google みたいなのが現れるかも知れないわけだが、
Javaではまだそういう野望を持つやつは居なかった(いや、居ないことはないがメジャーにならなかった)わけだな。
0538デフォルトの名無しさん
垢版 |
2017/09/10(日) 16:05:36.32ID:bNzAxglb
>>537
難しい事を出来る能力のある人ではなく
なんとか使えてはいるけれどカイゼンするまでの能力はない半端な人しか使っていないのでは?
0540デフォルトの名無しさん
垢版 |
2017/09/10(日) 16:13:50.06ID:3lFSiHDa
>>538
それもあるかもね。

後は「難しいことを知っている自分」というのがエゴの足しになっている場合かな。
ま、実際に人にはできない高度な事が出来ればそれで金を稼げる可能性が高まるわけで、
それに頼って生きているようなやつはその高度な事を高度でなくすような事はしないだろう。
そんな事したら自分の生活が貧しくなって底辺に落ちるからな。w
0545デフォルトの名無しさん
垢版 |
2017/09/10(日) 16:20:12.36ID:HJWXg031
簡単さと引き換えになるのはたいてい
規模が大きくなった時のメンテナンス性や
意識的な細かい制御

ようするにvimの人は手順を追って何とか作業ができはするが
利益を理解できるレベルにないのだろう
0546デフォルトの名無しさん
垢版 |
2017/09/10(日) 16:35:10.48ID:bNzAxglb
>>545
簡単さとカスタマイズ性を両立できることは他の言語のモダンなフレームワークが証明していますよ
Javaスレらしいと言えばらしいんですが、少々考え方がレガシーですね
0547デフォルトの名無しさん
垢版 |
2017/09/10(日) 17:06:48.53ID:MFlsvD9d
ヒント:
フレームワークを素早く習得し〜とか
自分で使用言語選べない立場にいる木っ端のアホが能書き垂れるスレじゃない
0548518
垢版 |
2017/09/10(日) 17:27:17.21ID:zlOAvEVW
>>520
ありがとうございました。
ちょっと怒ってます?
0550デフォルトの名無しさん
垢版 |
2017/09/10(日) 18:25:31.79ID:HJWXg031
Javaにはコマンドラインからのプロジェクト作成ウィザードがないとお怒りのようです
0551デフォルトの名無しさん
垢版 |
2017/09/10(日) 18:29:20.29ID:MFlsvD9d
マジレスするとコイツがめんどくさいって言ってるのって
環境変数設定するのがーとかの超低次元のレベルの話だろ
0558デフォルトの名無しさん
垢版 |
2017/09/11(月) 01:26:23.02ID:l21t5Df8
フレームワークや言語を修正できる人って1000人に1人くらいでしょ、自分でできるならここで文句言うこともないと思うので修正できる人探して訴えるしかない
使うのが面倒くさいと思っていても修正するのはそれ以上に面倒くさいとわかるでしょうに
0559デフォルトの名無しさん
垢版 |
2017/09/11(月) 03:04:41.07ID:TB0SwtSd
人の作ったもの読んで理解して修正するのが面倒なら初めから全部自分で作ってしまうという手もある。
まあでもプログラミングを全部一人でやる必要はない。仕様公開して作る人募集して作ってもらうということも可能だからな。
自分で作るとしてもプラグインで機能追加できるようにしといて自分では核となる部分とどうしても最初からあって欲しいプラグインだけ作って後は他の人にどんどんプラグイン作ってもらうという手もある。
0564デフォルトの名無しさん
垢版 |
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)  プログラマーズ
0565デフォルトの名無しさん
垢版 |
2017/09/11(月) 12:00:24.74ID:YUiT0WG/
例外処理について質問です
try catchで例外オブジェクトを投げるとのことですがこの例外オブジェクトってなんなんでしょう
例外って要はプログラム実行してて何か不自然な挙動があったという状態であってそれがオブジェクトとは?
今までオブジェクトってのはクラスがあってそれを基にしてオブジェクトが作られる、メモリ領域が確保される
っていう理解だったので、エラーにオブジェクトもくそもないだろと思うのですが
0567デフォルトの名無しさん
垢版 |
2017/09/11(月) 12:52:21.51ID:464/dgmD
>>565
例外オブジェクトは、例外が発生した原因、場所などを保持するオブジェクト
オブジェクト指向の世界なんだから、エラーに関する情報もオブジェクトへのアクセスで取得できた方が一貫性あるし都合がいいじゃん
0568デフォルトの名無しさん
垢版 |
2017/09/11(月) 12:55:56.64ID:YUiT0WG/
えーっと書き方悪かったですかね……
エラーってのはプログラムとは独立の事象じゃないですか
プログラムを実行した結果起きる出来事なわけで実体はないと思うんですよ
だからそれはオブジェクトというか操作する対象になりえないのではないかと
0571デフォルトの名無しさん
垢版 |
2017/09/11(月) 13:48:48.73ID:YUiT0WG/
>>567 >>569
あーなるほど
エラーそのものがオブジェクトなんじゃなくて、エラーが出るとエラー情報を元にオブジェクトが生成されるってことでいいんですかね
0577デフォルトの名無しさん
垢版 |
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にして外から触れなくするのが良いのでしょうか?
よろしくお願いいたします
0578デフォルトの名無しさん
垢版 |
2017/09/11(月) 17:54:49.24ID:a/3J8itn
>>577
パブリックなアクセサ作ったら
カプセル化にならぬよ
フィールドをパブリックで公開するのがモダンなインプリメンテーション
0579デフォルトの名無しさん
垢版 |
2017/09/11(月) 18:01:03.13ID:QNy5oHUR
>>577
物による
振る舞いを持ったオブジェクトならフィールドもアクセサも公開しない
データならフィールド丸出し
0581デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:12:01.54ID:QpwJ435R
>>577
他のクラスからいつ書き換えられてもいいならpublicにしとけば良い。
書き換えられた時に何かそれにまつわる処理をしたいならprivate等の外から直接アクセスできないやつにしてsetter経由でしか書き換えられないようにすれば良い。
読み出しのみ可能にしたいなら同様にprivate等にしてgetter作っておけば良い。
0582デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:42:22.72ID:+NzND3PL
>>578
アクセサメソッドはカプセル化というよりは不正な値の代入や取得を防止するのが主な目的だと思うけどね
なのでフィールドはprivateにしてアクセサメソッドをpublicにする
フィールドをpublicで公開するのがモダンなimplementationだというのは初めてきいた
0584デフォルトの名無しさん
垢版 |
2017/09/11(月) 22:17:17.13ID:x6mCsGmB
>>582
最先端だからね、これから広めて欲しい
0586デフォルトの名無しさん
垢版 |
2017/09/11(月) 23:51:12.72ID:QNy5oHUR
C#もそうだけどモダンな言語ってのは関数型の取り込みが進んでるんだよ(Javaはモダンじゃないって?)
んで関数型はデータを純粋なデータとして扱う事が多い
だから隠蔽されたクラスより公開された構造体の方が合ってるんだね
0587デフォルトの名無しさん
垢版 |
2017/09/12(火) 00:08:26.83ID:APGFN74L
質問です。
コンストラクタにはpublicを付けた方がいいのでしょうか?
それとも付けない方がいいのでしょうか?
0590デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:31:43.91ID:wkDGqWCe
>>587
コンストラクタの意味合いから考えて通常はpublicをつけます
逆にprivateをつけた時の効果とそれにより考えられる効能を想定してみましょう
0591デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:37:00.21ID:KwS1KeaA
>>585
恐らく三角形の底辺の右か左の尖ってる所
0592デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:40:47.97ID:KwS1KeaA
class X {
 private X() {}
}

俺の心の中でしか new できないクラス
0593デフォルトの名無しさん
垢版 |
2017/09/12(火) 01:50:55.01ID:wkDGqWCe
自身の初期化済みオブジェクトを返すクラスメソッドだけからしかオブジェクト生成をさせたくない時(があるのかしらんが)とかかねぇprivateコンストラクタを定義するとしたら
0594デフォルトの名無しさん
垢版 |
2017/09/12(火) 02:03:12.61ID:7I+dfSsy
昔はsingletonにする時によく使ってたけど、最近はDIコンテナに任せちゃうからなあ
0595587
垢版 |
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度目になりますが、回答の方よろしくお願いします。
0598デフォルトの名無しさん
垢版 |
2017/09/12(火) 11:19:16.85ID:WW0MtbKa
>>577-582
フィールドを直接アクセスするのは、同じクラス内だけ。
同じクラス内のソースコードを書く人は、
同じ会社・人物だから、勘違いが少ないから、OK

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

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

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

エラーの原因と、エラーになる場所が遠くなるから、ダメ
0600デフォルトの名無しさん
垢版 |
2017/09/12(火) 15:39:18.80ID:S9YYo8OY
>>598
そんな事やったら複雑になるだけだよ
データチェック用のクラスは別で用意して
モデルにデータチェックを持ち込まないようにしましょう
0602デフォルトの名無しさん
垢版 |
2017/09/12(火) 19:20:42.58ID:WW0MtbKa
MVC の、ビューでチェックするのか?

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

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

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


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

(B)
 String str = new String("あいうえお");
0619デフォルトの名無しさん
垢版 |
2017/09/12(火) 22:40:50.43ID:KwS1KeaA
>>616
全く問題ない。

てか、Bの方はメモリや時間の無駄だよ。実際には最適化されてAと同じになるとは思うけどね。
0621デフォルトの名無しさん
垢版 |
2017/09/13(水) 01:58:25.84ID:CljwMjVR
本当に「(B)のパターンもあるみたい」なのだと思っているのだとすれば自分の読解力を疑ったほうがいい
0622デフォルトの名無しさん
垢版 |
2017/09/13(水) 03:33:06.00ID:zEkVIE/g
CやC++やってた人だと "" だけで既に String クラスのインスタンスである事がすぐにわからんのかもね。
ていうか見た目が同じものなのに違う意味になってて混乱。やがて "abc".charAt(1) で 'b' が返される事に気付く。
0624デフォルトの名無しさん
垢版 |
2017/09/13(水) 07:40:55.11ID:8OiQxoax
初歩的な質問で失礼します。
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;
   }
}
0628デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:32:01.01ID:zEkVIE/g
>>623
そういうのの最適化は保証されてるんだっけ?
0630デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:44:14.18ID:9wr8j3v0
midでは切り取る長さが文字列の長さより長かったらどうなるんだ、条件分岐が必要なんじゃないか
■ このスレッドは過去ログ倉庫に格納されています

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