2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net

1 :デフォルトの名無しさん:2017/04/04(火) 20:41:11.59 ID:y0EcmGB0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/

2 :デフォルトの名無しさん:2017/04/05(水) 09:51:39.56 ID:nC3E9c0D
前スレ >>997
onCreateってのはAndroidでそのActivityが作られたときに走る処理だからそこでgetTextしてもEditTextの中が空だから怒られてる。
確定ボタンをButtonで作ったりキーイベントReturnを捉えるイベントリスナーの中でやるべき。

3 :デフォルトの名無しさん:2017/04/05(水) 18:26:37.85 ID:XSIU9b3V
JHoshu

4 :デフォルトの名無しさん:2017/04/05(水) 19:49:27.33 ID:xPaGCN9C
>>1


5 :デフォルトの名無しさん:2017/04/05(水) 20:16:36.85 ID:p+fIavz2
>>2
わざわざありがとうございます。
ようやく思い通り動くようになりました。
まだ細かい改善点はあるのでもう少し勉強してみます。

6 :デフォルトの名無しさん:2017/04/05(水) 23:22:35.35 ID:Ansd+i4M
>>999
なるほど。ポインタみたいなものでしたか。ご教授ありがとうございます。

>>1000
やはりitemにそれぞれの値を格納するほうがOOらしいですね。参考にします。

ありがとうございました。

7 :デフォルトの名無しさん:2017/04/06(木) 00:09:53.06 ID:b0BXYKSq
あるクラス内の2つのメソッドの中身を途中で何度も書き換えたいんだけどどう実装したらいい?
関数ポインタを扱うのように、途中で関数を書き換えたい。

抽象クラスを継承することで、メソッドの書き換えは出来るものの、継承したクラスの宣言時の一度しか
メソッドを書き換えられないと思うんだけど、他に方法はある?

8 :デフォルトの名無しさん:2017/04/06(木) 01:36:02.66 ID:iHw/QSTR
>>7
インスタンス入れ替えるだけじゃだめなのか?
例えばこんな風にして同一のインターフェースを実装した A, B のクラスを作っておく。

interface X {
 int methodA(int a);
 int methodB(int b);
}

class A implements X {
 int methodA(int a) {
  // 処理A-A
 }

 int methodB(int b) {
  // 処理A-B
 }
}

class B implements X {
 int methodA(int a) {
  // 処理B-A
 }

 int methodB(int b) {
  // 処理B-B
 }
}

で、使う所では
X x = new A();
のようにして int a = x.methodA(1); とか int b = x.methodB(2); とかして使う。class B の方に切り替えたくなったら x = new B(); として同様に x を通して使う。

9 :デフォルトの名無しさん:2017/04/06(木) 02:01:39.25 ID:FGV9lFi+
>>7
なんでそんなことしたいのか説明して
実装の話はそれから

10 :デフォルトの名無しさん:2017/04/06(木) 10:42:30.59 ID:wo+kdFBC
>>7
スマホからだから適当だけど
public class Sub{

private Function func;

public void setFunc(Function func){
this.func = func;
}

public Function getFunc(){
return this.func;
}

}

あとは呼び出し側で
Function<Integer,Integer> func = x -> x+1;
Sub sub = new Sub();
sub.setFunc(func);
Sysyem.out.println(sub.getFunc().apply(10));

これでどうだ
使えるかどうかは知らん

11 :デフォルトの名無しさん:2017/04/06(木) 16:06:42.01 ID:8OEcGMYc
>>7
Javaは静的に定義してコンパイルする言語だから実行中の動的書き換えは無理
9が言ってるように目的は何なのかを書け

12 :デフォルトの名無しさん:2017/04/06(木) 20:32:34.33 ID:vtBceFIS
>>11
関数ポインタのように差し替えたいって言ってるからinterfaceの差し替えでいいんしゃないの
リフレクションでもいいけど

13 :デフォルトの名無しさん:2017/04/06(木) 21:14:24.31 ID:O3QBzUs3
じゃあFunctional Interfaceで
http://ideone.com/AghCys

14 :デフォルトの名無しさん:2017/04/06(木) 21:39:53.20 ID:vtBceFIS
結局波平か

15 :デフォルトの名無しさん:2017/04/06(木) 23:04:04.80 ID:Lft96QhP
>>7
君の言う「宣言」ってのは「new」の事かな?
抽象クラス「interface XXX」を継承したクラス
「class AAA implements XXX」と、
「class BBB implements XXX」の2つ作ったとして、
「XXX XYZ=(XXX)new AAA()」としたらXYZのインスタンスはAAAだよね。
「宣言時の一度しかメソッドを書き換えられない」と言ってるけどソレって、
newした後で「XYZ=(XXX)new BBB()」と上書きしたらダメだと思ってない?
良いんだよ?XYZに元から入ってたAAAは消滅して新たにBBBが入る。
C言語の常識でmallocしたらfreeするみたいに考えてないか?
あと「メソッドを書き換える」というのは根本的に考え方がおかしい。
考えてるプログラムの構造がC言語っぽい。JAVAにはJAVAに合った構造がある。
短いサンプル書いて意見を聞いた方が良いと思うな。

16 :デフォルトの名無しさん:2017/04/07(金) 00:39:47.52 ID:g05Ok9Aj
https://ideone.com/Vf6xoW
上のソースコードが、イデオンだと実行時エラーに
なってしまいます。原因を教えて頂けないでしょうか。

17 :デフォルトの名無しさん:2017/04/07(金) 01:02:07.87 ID:E+iT9RU9
5行目のScannerが佐藤までバッファに読み込んでいて、
7行目のScannerがなにも読み込ないから。

https://ideone.com/0RB6Do

18 :デフォルトの名無しさん:2017/04/07(金) 01:02:48.90 ID:KCHCaqUQ
>>16
何故IDEとか使わずにコード張るサイト使うのか分からん
とりあえず普通に実行したら実行時にエラー吐かなかったから
idone使う時の入力方法を自分で調べるしかないだろ

19 :16:2017/04/07(金) 03:02:40.52 ID:g05Ok9Aj
>>17 >>18
ありがとうございます。
実は前スレでも似たようなことを質問させて頂きました…。

>>18
自分のパソコンに入っているエクリプスでは普通に出力されます。
ここにソースコードを貼るためにイデオンを使ってます。


String name1 = new java.util.Scanner(System.in).nextLine();
という表記法にはどんな問題があるのでしょうか?
スッキリわかるJavaに載っていたのですが。
どなたか教えてくれませんか?
ググってもこの表記法は見つかりません…。

20 :デフォルトの名無しさん:2017/04/07(金) 04:15:47.44 ID:E9+XPTIr
アイディーイーワン

1つのストリームに対して2つのScannerを使ってるのがいけない
俺の環境(1.8系)だとエラーになるよ

21 :デフォルトの名無しさん:2017/04/07(金) 04:20:28.04 ID:E9+XPTIr
これ
https://www.securecoding.cert.org/confluence/display/java/FIO06-J.+Do+not+create+multiple+buffered+wrappers+on+a+single+byte+or+character+stream

22 :デフォルトの名無しさん:2017/04/07(金) 13:21:40.10 ID:Q8YZksVL
>>16
表記法の問題じゃないよ。根本的な事が解ってない。
C言語で言う所のgets()と勘違いしているでしょ。
name1に入力してエンター押したら次にname2の入力待ちになると思ってない?
20氏が書いてる事の意味わかる?それだとname1とneme2が同時に開く。
間に「入力待ち」を入れないといけない。
ttp://tkykhk.hatenablog.com/entry/2013/08/15/172825
これで言うとhasNextInt()の事ね。

23 :デフォルトの名無しさん:2017/04/07(金) 15:10:53.06 ID:440JjrFN
Androidウェアラブル端末のBluetoothを用いて、端末所持者同士のすれ違いを検知するアプリケーションを製作しています。
APIレベルは19、4.4のKitKatです。

プログラムでは検知したBLEMACアドレスをテキストファイルに書き込む動作をおこなっています。
端末情報の項目などで確認できるBluetooth Device Address(BDA)を取得したいのですが現在は
*Random Addressを取得している
*GATTサーバのMACアドレスを取得している
のどちらかが発生しています。
こう考えた理由は生成したログファイルを確認すると一定時間ごとに同じ端末から得られるMACアドレスが変化している為です。
具体的には、作成したプログラムを稼働させた探知機でBeacon発信機を検出しそのMACアドレスと検出時刻をログファイルに書き込んでいます。
一日の稼働でおよそ100件ほど得られたデータのおいてすべてのMACアドレスが重複しない状態となっているからです。


相手方のBDAを取得する関数またはUUIDなど固有の番号をBluetoothの”検知”段階で入手する手段を教えて頂きたいです。
ご助言宜しくお願いします。

24 :デフォルトの名無しさん:2017/04/07(金) 16:38:24.04 ID:10W/Ra3M
もうイデオンでいいわw

25 :デフォルトの名無しさん:2017/04/07(金) 17:25:04.53 ID:am4C8gz9
>>23
ここはJavaスレなんで泥特有の質問は泥スレにどうぞ

Androidプログラミング質問スレ revision53
ttp://echo.2ch.net/test/read.cgi/tech/1488052551/

26 :16:2017/04/07(金) 20:57:30.40 ID:g05Ok9Aj
>>20 >>21 >>22
ありがとうございます。

アイディーイーワンって読むんですね。

ちょっと調べてみて、またレスしたいと思います。

27 :デフォルトの名無しさん:2017/04/07(金) 21:24:00.28 ID:a6ogP8yx
井出椀

28 :22:2017/04/08(土) 12:16:45.55 ID:OP2gpsJ+
16氏のレスは何か学生が先生に質問してるような雰囲気で若さを感じるんだが、
残念な事にIDEをイデオンと読むもんだから40歳以上とバレてしまっている。

29 :デフォルトの名無しさん:2017/04/08(土) 12:25:43.95 ID:TxXYCj/0
(20代だけどずっとイデオンって読んでた……)

30 :デフォルトの名無しさん:2017/04/08(土) 12:35:44.62 ID:4NiiBXjv
意外と有名
またはアニヲタ

31 :デフォルトの名無しさん:2017/04/08(土) 12:35:48.36 ID:CqR65F9s
>>28
>>16は↓のスレでコテハンと遊んでる34歳の無職だよ
ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489809785/

34歳、発達障害の無職ですが…4 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1486352667/

32 :デフォルトの名無しさん:2017/04/08(土) 12:44:33.10 ID:ryFntO7G
一行辺りは半角26文字で600万行あるテキストファイルの中身を
要素の数600万として一行づつ配列にいれていこうと思うのですが大丈夫でしょうか?

33 :デフォルトの名無しさん:2017/04/08(土) 12:45:57.94 ID:DTMJtpt4
>>32
余裕です

34 :デフォルトの名無しさん:2017/04/08(土) 12:46:36.51 ID:DTMJtpt4
312MB、余裕です

35 :デフォルトの名無しさん:2017/04/08(土) 12:52:36.33 ID:ryFntO7G
このテキストファイルもjavaで入力しましたが、全部書き込み終わるのに8時間から半日くらいかかってたと思います。

36 :デフォルトの名無しさん:2017/04/08(土) 12:55:54.81 ID:ryFntO7G
>>33
ありがとうございます
メモ帳でこのテキストファイル開いてもパッとは開かないので不安ですがやるだけやってみます

37 :デフォルトの名無しさん:2017/04/08(土) 12:57:12.51 ID:DTMJtpt4
>>35
ソースコード見せて

38 :デフォルトの名無しさん:2017/04/08(土) 13:00:01.26 ID:DTMJtpt4
>>36
メモ帳はね、uniscribeっていうリガチャやカーニングに対応した
高度なテキストレンダラを使ってるからもっさりしても仕方がない

39 :デフォルトの名無しさん:2017/04/08(土) 14:24:59.52 ID:QfXapNKS
余裕かどうかは動かすマシンによるのでは?

40 :デフォルトの名無しさん:2017/04/08(土) 14:33:44.07 ID:DTMJtpt4
その発想はなかったわ

41 :デフォルトの名無しさん:2017/04/08(土) 14:38:51.91 ID:YTkzg0Hn
ランダムな26文字の文字列600万行のファイルを作ってみたが3秒くらいだった
8時間〜半日かけてどういうデータを作ったのかが気になる

42 :デフォルトの名無しさん:2017/04/08(土) 14:39:55.19 ID:TxXYCj/0
その内一般家庭のPCスペックが「京」並になる時代がくるからへーきへーき

43 :デフォルトの名無しさん:2017/04/08(土) 17:01:59.34 ID:MZUufgxp
そういやJavaVMが使うメモリのデフォルトって今は多くなってんのかな?
これが小さい場合は自分で大きくなるようにオプション付けてVM動かさないとメモリオーバーフローになるよな。

44 :デフォルトの名無しさん:2017/04/08(土) 19:29:50.65 ID:FurKv1hb
vmが入ってる電子計算機でしか動かないjavaに深入りする価値あるんですか。

45 :デフォルトの名無しさん:2017/04/08(土) 20:17:39.84 ID:MZUufgxp
>>44
価値か。価値ねえ。それはあなたが何を求めているかで変わるんじゃないかな。

例えばAndroid用アプリを作って売るとか、無料ゲーム作ってサイト内課金で稼ぐとか、そういう商売してるなら少し遠回しではあるけどJavaに価値があるということになると思う。
実際に金稼げるわけだしね。Androidの端末は沢山出回っててユーザも多い。

46 :22:2017/04/09(日) 04:05:43.60 ID:o//fitNy
>>44
私もつい最近まで貴方と同じ考えで、javaを使い始めたのは今年からです。
ホームページでの説明にApplet版CADを使い、商品はC言語みたいな事をするつもりで
まずオールJavaでAppletのCADを作ってみたんですが、想像以上に動作が軽かったです。
巨大なデータを扱うつもりで無ければAppletで充分だと思いました。
それより何より、Javaはプログラミングが物凄く楽です。
C言語ですとイベントの順序とか挙動で思い通り行かずグチャグチャになりますけど、
javaだと問題そのものが存在しないというか対策済みという感じですね。
それと、私は未だ弄ってないですが、データベースを触るのが簡単そうです。
あと、Windowsで例えば動画再生なんかはCOMコンポーネントだのDirectShowだの
数々の山を乗り越える必要が出てくる事が非常に多いのですが、
Javaだと専用ライブラリを使ってチョチョイのチョイで済む事が多いようです。
そんな感じで、私はなるべくjavaでやりたいと思うようになりましたよ。

47 :16:2017/04/09(日) 23:24:51.53 ID:ySXi9r1b
>>28
若くはないですが、40まではいってませんよ。
あれは最初イデワンって読むと思ってましたが、Google検索の予測変換でイデオンってのが多かったから、ついそう読むのかなって勘違いしてしまったんです。

48 :デフォルトの名無しさん:2017/04/10(月) 03:52:41.97 ID:NTVTXuq3
>>47
その話はもう終わってる空気読め

49 :デフォルトの名無しさん:2017/04/10(月) 20:57:16.98 ID:AyjhZMz0
Air wife

50 :デフォルトの名無しさん:2017/04/11(火) 19:46:28.08 ID:R28Sl2m+
= new Air();

51 :デフォルトの名無しさん:2017/04/11(火) 21:28:46.27 ID:A5AwerKU
String a = new String("hello world") ;

String a = "hello world" ;

これは略し方の違いなだけで同じ意味なんでしょうか?

52 :デフォルトの名無しさん:2017/04/11(火) 21:37:35.09 ID:UT2aAcJz
うん。
手続き型言語では文字列を簡単に宣言できて、オブジェクト指向になったらいちいちnewするとか劣化のイメージだから、特別な記法としてC++とかからの伝統的な記法。

53 :デフォルトの名無しさん:2017/04/11(火) 22:44:52.71 ID:XRUbE8gX
別じゃね?
String a = new String("hello world")では新しく作られたStringオブジェクトの参照が代入されるけど、
String a = "hello world"ではコンスタントプールにある参照が代入される。

"hello world" == "hello world"はtrueになるけど、
"hello world" == new String("hello world") や new String("hello world") == new String("hello world")はfalseになる。
equalsを使ったらどれもtrueになる

54 :デフォルトの名無しさん:2017/04/11(火) 23:36:39.85 ID:ZPaqNK/Y
String の場合は intern() が返す参照を使うと同じ文字列が既にあったら同じ参照になるけどな。
同じ内容の内容の文字列が何度も new される可能性がある場合は使うとメモリの節約になる。

55 :デフォルトの名無しさん:2017/04/12(水) 03:26:16.05 ID:b48e4NDE
>>51
ま、これでも動かしてみなされ。

public class StringTest {
 public static void main(String[] args) {
  String s0 = "aaa";
  String s1 = new String("aaa");
  String s2 = new String("aaa");
  String s3 = s2.intern();

  String[] ss = { s0, s1, s2, s3 };

  for (int i = 0; i < ss.length - 1; ++i)
   for (int j = i + 1; j < ss.length; ++j)
    System.out.printf("ss[%d] %s ss[%d]%n", i, ss[i] == ss[j] ? "==" : "!=", j);
 }
}

56 :デフォルトの名無しさん:2017/04/12(水) 23:55:55.72 ID:NTW6AtnI
>>55
Javaなら環境依存はないことになってるんだから実行結果も貼ってみなされ。

57 :デフォルトの名無しさん:2017/04/13(木) 00:01:26.42 ID:oGpC5FIZ
>>55
ったく
https://ideone.com/NpPMa9

58 :デフォルトの名無しさん:2017/04/13(木) 01:22:32.11 ID:GDsbQNSJ
動かして理解しろってことでしょ……

59 :デフォルトの名無しさん:2017/04/14(金) 09:52:16.30 ID:umFkfZJf
FileReaderオブジェクト作ってread、readLineでファイル読み込んだあとにcloseメソッドで閉じることになっていますが、最後まで行ってない場合、closeしなくても良いのでしょうか
そしてそもそもcloseしないでプログラム終了するとどうなるのでしょうか

60 :デフォルトの名無しさん:2017/04/14(金) 12:10:52.91 ID:/1nusgkY
>>59
ファイルクローズは普通はそのファイルへの読み書きが不要になったらするものだ。どこまで読んだかなんてことは関係ない。

61 :デフォルトの名無しさん:2017/04/14(金) 12:23:50.00 ID:/1nusgkY
クローズしなかった場合はインスタンス消滅前にファイナライザでグロースされるだろうが、そんなもんあてにしてはいけない。
特別な事情がない限りプログラムは必ず自分でファイルクローズするように書くべき。

62 :デフォルトの名無しさん:2017/04/14(金) 12:27:55.91 ID:sfy7Edim
try-with-resource構文が便利すぎて気にしづらくなった感はある

63 :デフォルトの名無しさん:2017/04/14(金) 12:37:26.12 ID:/1nusgkY
>>62
一応それも自分でクローズするように書いてる事にはなる。何が起きるかわかって書いてるわけだし。

64 :デフォルトの名無しさん:2017/04/15(土) 07:07:28.68 ID:Q1oPXQ4H
エラーの原因の9割はメモリ問題っていうけど
これって解放すればいいだけじゃね?
つまり全ての作業の最後に解放するコードを常に入れてたら
エラーなんて出ようがないのでは?

65 :デフォルトの名無しさん:2017/04/15(土) 08:37:16.98 ID:mBBzgc7U
かってに削除しては、こまる。まだだれかが参照してるかとか…

66 :デフォルトの名無しさん:2017/04/15(土) 10:35:03.58 ID:IUu2MviJ
>>64
めんどくさいんだよ。
Cである程度の規模のアプリ作ってみろよ

67 :デフォルトの名無しさん:2017/04/15(土) 18:50:27.07 ID:ONyyaIO2
解放し過ぎて二重にfree()して落ちたりしてなw

68 :デフォルトの名無しさん:2017/04/15(土) 23:48:14.07 ID:+FDoqV6E
質問させてください。
今日パソコンにeqlipseを入れて文字の表示をしていたのですが
出先から帰って再度起動させてから他のクラスを作って実行しても
「現在、表示するコンソールがありません」というメッセージが出て反映させられません。

どちらも新規クラス作成でメソッド・スタブのmainメソッドにチェックを入れて作成しましたし、
コピペして中身が全く同じなのでどこに原因があるのかわからず困っています。

どなたかお知恵を貸していただきたいです!

69 :デフォルトの名無しさん:2017/04/16(日) 00:14:26.19 ID:m1EJuj8m
>>68
ソースコード見せて

70 :デフォルトの名無しさん:2017/04/16(日) 00:35:15.16 ID:qsila/iw
>>69

package jp.winschool.java.chapter1;

public class Sample01_03 {

public static void main(String[] args) {

// Hello worldと表示する
System.out.println("Hello world");
}
}

ソースコードこちらです!

71 :デフォルトの名無しさん:2017/04/16(日) 07:35:13.11 ID:Ey1n1KGC
よくお互いをロックして制御不能みたいな実行時エラーって
あれどういう原理なんですか?
そういうプログラム逆に組んでみたいんですが…

72 :デフォルトの名無しさん:2017/04/16(日) 09:48:34.56 ID:0couv4LD
>>71
https://ideone.com/HQeH5g
例えばこんなん

73 :デフォルトの名無しさん:2017/04/16(日) 19:57:09.57 ID:1+YnjkjO
>>71
いやほら A と B の二つロックする変数があって、それを2つのスレッドで、一方のスレッドは A, B の順でロックするようになっていて、もう一方は逆順に B, A の順でロック掛けるようになっているとタイミングによってデッドロックになる事がある。

74 :デフォルトの名無しさん:2017/04/16(日) 20:02:31.84 ID:jgmTryYz
nullが入力されたらループが止まるプログラム文にしたいのですが、
うまくいきません。
https://ideone.com/N1lSZi
どこが悪いのでしょうか?

75 :デフォルトの名無しさん:2017/04/16(日) 20:47:52.41 ID:rpbl7PtZ
それはnullっていう文字列だからnullではない
nullの入力で終わらせたいなら "null".equals(sc.next())とかにしないと

76 :デフォルトの名無しさん:2017/04/16(日) 21:14:34.70 ID:A/UzF3XD
>>74
入力が終わってるかどうかをhasNextLine()で調べてから読めばいいと思うが。
あとは>>76の言う通り。

77 :デフォルトの名無しさん:2017/04/16(日) 21:15:04.00 ID:A/UzF3XD
じゃない>>75だ。

78 :デフォルトの名無しさん:2017/04/16(日) 23:39:22.02 ID:7oLLQxXY
http://www6.kaiho.mlit.go.jp/02kanku/aomori/tappisaki_lt/livecamera/index.html

ここのライブカメラを見たいんですがセキュリティでブロックされて見れません。
javaの例外サイトに設定すればいいらしいのですが、どのURLを入れればいいのでしょうか。
あと、これって手打ちのみ?

79 :デフォルトの名無しさん:2017/04/17(月) 01:03:35.01 ID:70+t1EMT
Cをちょこちょこ勉強してたんですが並行でJavaの勉強も始めました
Cそっくりなのに無駄に文字数多くてめんどくせぇなとか思いながらテキスト眺めてたんですがこれメソッドってCで言うところの関数でいいんですか?
呼び方が違うだけ?

80 :74:2017/04/17(月) 01:14:04.66 ID:WPG7SQ/C
>>75 >>76-77
ありがとうございました。

81 :74:2017/04/17(月) 02:05:39.73 ID:WPG7SQ/C
たびたびすいません。
正しく動作するようになったのでリンク貼らせて頂きます。
https://ideone.com/fJbFul

82 :デフォルトの名無しさん:2017/04/17(月) 03:13:19.95 ID:H+Zq8CGz
>>79
そう。

83 :デフォルトの名無しさん:2017/04/17(月) 06:19:26.55 ID:ReyyQyZQ
>>79
関数にはレシーバー(主体)が無いけど、メソッドにはある

インスタンス(レシーバー).メソッド名()
関数名()

スッキリわかる Java入門 第2版、2014

この本を3回読んで、みっちりとオブジェクト指向を学ぶのが、
プログラミングとすべての言語の基本

84 :デフォルトの名無しさん:2017/04/17(月) 08:52:54.56 ID:jxYq0SCN
>>79
ほぼ同じ いちいち使い分けるやつは見たことない

ただし C Java を混ぜこぜにやるのはNG
「見た目は似てるけど根本的に違う」という部分を見逃すとどっちも使い物にならんよ

85 :デフォルトの名無しさん:2017/04/17(月) 10:19:19.48 ID:0jhtVsWG
String型変数 の5〜6字目(半角の数字)を2桁のint 型変数として取得したいと思っています。

substring(5,7)で一回別のString型変数に入れてから、Integer.parseIntでint型に変換するんじゃなくて、
直接int型としてsubstring(5,7)で抜き出す書き方はあるでしょうか?

86 :デフォルトの名無しさん:2017/04/17(月) 10:31:11.72 ID:SOQF/fhS
>>85
そういうメソッド書けばええやん
1行節約するためにそんなことする意味があるのかわからんけどね

87 :デフォルトの名無しさん:2017/04/17(月) 11:52:34.85 ID:KDQg4XsN
>>85
int i = Integer.parseInt(s.substring(5,7));
これでええんとちゃうん?

88 :デフォルトの名無しさん:2017/04/17(月) 20:31:37.19 ID:oBr7cjxV
>>79
関数はクラスと無関係なのがメソッドと違うとこ

89 :デフォルトの名無しさん:2017/04/17(月) 21:09:17.98 ID:70+t1EMT
>>82-84 >>88
ご丁寧にありがとうございました。
あと>>84さんのアドバイスですが、類似するもの関連するものを2つ以上学ぶ際は同時並行の方が学習効率が高いという研究がありましてそれに従っております

90 :デフォルトの名無しさん:2017/04/18(火) 07:59:43.48 ID:6G1kXLTk
Cは、まだJavaが無かった頃の、手続き型言語の代表

Javaは、オブジェクト指向の代表で、
Java以後は、ほとんどすべての言語がオブジェクト指向になった

C・Javaは、考え方が大きく異なるので、一緒に勉強できない

スッキリわかる Java入門 第2版、2014
まずこの本を3回読んで、オブジェクト指向をみっちりと学ぶ

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

この2冊は表裏一体だから、たのしいで苦しむと、
みんなのはスラスラと読めるようになる

その後、Groovy, Kotlin を勉強すればいい

91 :デフォルトの名無しさん:2017/04/18(火) 09:26:09.77 ID:dYgbMCUy
Perlも仲間に入れてあげてください

92 :デフォルトの名無しさん:2017/04/18(火) 10:42:45.58 ID:O7sr+UR8
>>89
そうじゃねえ、関連度が低いから無茶だって言ってるんだよ
俺音楽やってんだよねーって弦楽とDTM同時並行とか無理だろ?
せめてバイオリンとビオラくらいに関連してないと厳しい

93 :デフォルトの名無しさん:2017/04/18(火) 22:47:06.26 ID:/+d1udbI
>>89
表面は似ているが根本的に違うから
学習効果はゼロだと言った

94 :デフォルトの名無しさん:2017/04/19(水) 01:07:23.00 ID:3iqNnA3g
>>85
String.getChars()もしくはcharAt()で取り出して自作でa2iすればいい

95 :デフォルトの名無しさん:2017/04/19(水) 10:26:46.95 ID:9vZd9y2Y
おすすめの参考書ってありますか?

96 :デフォルトの名無しさん:2017/04/19(水) 13:12:44.81 ID:bjTcFC7K
>>95
何に対する参考書なんだ?
入門なのか試験対策なのか何かしらの技術についてなのか設計技法なのかはっきりしやがれ

97 :デフォルトの名無しさん:2017/04/19(水) 14:01:34.36 ID:lhJ18puQ
>>95
一番得るものが多いなって思ったのは言語仕様とVM仕様
https://docs.oracle.com/javase/specs/

98 :デフォルトの名無しさん:2017/04/19(水) 14:05:53.58 ID:OqLveeZp
ここは入門・初心者質問スレですよ
このスレで質問する人はどんな人なのかそしてどんな本を勧めればいいのか
ある程度予測できないようじゃ立派なプログラマーにはなれませんよ!

99 :デフォルトの名無しさん:2017/04/19(水) 15:00:06.31 ID:lhJ18puQ
>>98
すぐに読めとは言わないけど読んだほうがいいのは間違いないと思ってるよ
もちろん趣味プログラマじゃなく職業プログラマになるならの前提だけど

100 :デフォルトの名無しさん:2017/04/19(水) 19:14:26.52 ID:yJEVgkwQ
黒い表紙のjava SE8 Gold問題集買って完璧になればJava限定ならどこでもやっていける

101 :デフォルトの名無しさん:2017/04/19(水) 23:07:06.82 ID:CBlBPUu/
95氏は勉強と技術の習得が全く別物だという認識が無いんじゃないかな?
テストで良い点取りたいなら勉強するしか無いけども、
ソフトを作れるようになりたいなら、覚えるより先に何を作るか決めないとダメだよ。
中学校の英語の勉強と同じだね。仮に英語の単語と文法を全て覚えたとしても
テストで良い点数取れるだけで、英語の映画も英文の小説も楽しめないだろ?
プログラミングも同じ事で、勉強したって本に書いてある通りの事しか出来ないよ。
海外旅行する為に日常会話程度の英会話を覚えるって良くある話だけども、
そんな感じで作りたいソフトに必要な事だけを覚えていく感じでやるといい。

私はCADのプログラマなのでCADの事でないと上手く言えないんだけども、
CADなら画面が出て線が引けてマウスとキーボードとファイルの読み書き出来れば充分。
javaは初めて3ヵ月くらいで勉強と呼べるレベルの事はしていないが、
基本的な作業なら出来る程度のCADがもう出来ている。
未だjavaのシステムの構造を理解してない故の不具合は多いし、
クラスだの継承だのpublicとprivateの違いだの、余り深く理解してないけど、
売り物になる程度にまで完成させるのには大して時間はかからないと思う。
たぶんJavaの試験やったら落第レベルだけど商品レベルの物は作れるに?

102 :デフォルトの名無しさん:2017/04/19(水) 23:30:19.49 ID:hZKuXyWE
よく「何を作りたいかが大事」って言われるけどそうじゃないこともあるよね
俺なんか最初は「スーパーハカーかっけえ」くらいしか考えてなかったけどなぜかいまやWeb開発だ
みんながみんな最初から明確な目的持ってるわけじゃない

103 :デフォルトの名無しさん:2017/04/19(水) 23:46:23.05 ID:ekj+eUll
ExcelVBAで作ってるアプリケーションをウィンドウアプリケーションとして作りたくてあれこれ勉強してるけど、Java
のGUIがこれまた判らんというか^^;

目標はまだまだ遥か彼方ってな感じ

104 :デフォルトの名無しさん:2017/04/19(水) 23:50:56.30 ID:KzpInSVx
VBAだったらVBで作ればええやん。。。
C#でも良いけどさ。

105 :デフォルトの名無しさん:2017/04/20(木) 00:48:47.76 ID:l7lpSiQF
>>101
その品質で商品売るなよ犯罪だろ

106 :デフォルトの名無しさん:2017/04/20(木) 01:07:36.44 ID:FIxvesm0
勉強するにしても何か作るにしても情報は漁るんだし
今は情報過多な時代だし、質の良い情報を得るのはそれなりのスキルがいる状況になってる
その時に一番簡単に信ぴょう性の高い情報を得られるのが公式ドキュメントとリファレンス実装
ただこの辺の情報は文章が硬い事が多いから原典を多く参照している二次情報を探せばいいんじゃないかな

107 :101:2017/04/20(木) 05:46:25.48 ID:Lb1IHRyj
>>102
あぁ、ごめん。大きな目標を作れって話じゃない。
画面にボタンを配置する方法を学ぼうとするなら例えば電卓を作るとか、
ボタンを使ったソフトを何か考えろって事。覚えるだけじゃ何も作れるようにはならんのよ。
よく入門書とかで「ボタンを押すと表示が変わります」とかあるでしょ?
それを覚えたとして、それをどう使って何を作れる?
1つづつ順番に覚える学校の勉強みたいな事じゃ何も作れるようにはならんのよ。
君もそうだったはずだよ。上司から「コレ作れ」と言われて本読んだりしたろ?
その「コレ作れ」ってのが私の言う目的が先って事なのな。
何か無いかって聞いてる95氏は指導者が居ないか学生なんだろう。
何を覚えたらどんな事が出来るようになるのか、何から始めてどう進むべきか
そういう事が解らないはずだよ。指導者が居ないから自分で考える必要がある。
それに対して君は仕事の依頼という形で上司に上手く誘導してもらって
あんまり余計な事を覚えずともプログラミングが習得出来たんじゃないか?

108 :デフォルトの名無しさん:2017/04/20(木) 08:32:15.40 ID:ULVYgiZE
>>107
それこそ仕事で課題を振られた俺みたいに、>>95が何をしていいかわからないなら
適切な課題を振ってあげるのが指導者の努めだと思うけどね
(そもそも当時の上司の仕事の振り方は今考えても言語仕様も覚束ない初心者に
ノーヒントでやらせるものではなかったが…あのクソ野郎)
初心者に「自分で考えろ」はちと突き放しすきな気はするが、まぁここは初心者スレとはいえ所詮2ちゃんだからな
教師や上司レベルで親切にする必要もないか

109 :デフォルトの名無しさん:2017/04/20(木) 09:11:53.90 ID:5+bMAsvE
答えたい人が答えればいいだけだな

110 :デフォルトの名無しさん:2017/04/20(木) 19:35:53.47 ID:zzqpI3yw
わかりません教えてくださいじゃ仕事まわらないからな
独学する能力は必須と言ってもいい
最初から独学できないやつをスパッと切り捨てるのはありだよ
企業だってボランティアで素人を飼ってるわけじゃないんだからさ

111 :デフォルトの名無しさん:2017/04/20(木) 19:48:04.79 ID:14arbxYB
>>110
採用までに切れなかった人事が無能

112 :デフォルトの名無しさん:2017/04/20(木) 21:09:01.70 ID:you9TgiF
ここは質問スレなのに脱線し過ぎ
ちゃんと仕事できる人はわきまえてるはずだよね

113 :デフォルトの名無しさん:2017/04/21(金) 00:27:15.95 ID:W9vJ1k1y
>>95の人は何て質問すればよかったんですか?

114 :デフォルトの名無しさん:2017/04/21(金) 12:31:39.63 ID:O9u1h7rs
目的を書く

115 :デフォルトの名無しさん:2017/04/22(土) 20:11:13.16 ID:OyJbeS9D
開いているページ内で一度実行してからでないとCtrl+F11で実行のショットカットがうまく動作しません。
ショットカットキーは何か設定する必要があるんですか?

116 :デフォルトの名無しさん:2017/04/23(日) 12:59:19.13 ID:8bLn4k+p
プログラミングの勉強初めて数日
何か簡単なツールとか作ってみたいけど
題材として良いものありますか?

117 :デフォルトの名無しさん:2017/04/23(日) 16:25:01.37 ID:q6MqXCrn
>>116
まず、GUIにするかCUIにするか?
CUIは普通は画面についてあまり考えなくても良いので楽だ。

118 :デフォルトの名無しさん:2017/04/23(日) 18:34:09.06 ID:qqjyZhzJ
>>116
テキストに行番号つけて表示するコマンド作る。
自分のコード表示させてはニヨニヨ出来るのでオススメ。

119 :デフォルトの名無しさん:2017/04/23(日) 18:36:38.57 ID:ncn10vA7
>>116
自分でこんなのがあったらいいなって小物を幾つも作ると取っ掛かりやすいよ

120 :デフォルトの名無しさん:2017/04/23(日) 20:36:09.42 ID:7bZTt8wr
自分の場合はwikipediaのアルゴリズムで素数判定や素因数分解とか作ったなあ
bashのfactorよりかなり早いから普段から使えるし

121 :デフォルトの名無しさん:2017/04/24(月) 21:38:18.35 ID:b7o+AYSX
オーバーロードのメソッドで

/** method1 */
public static String hoge(String str) {
hoge(str, "hage");
}

/** method2 */
public static String hoge(String str, String hige) {
return hige + str;
}

というようなメソッドがあったとして
mehod1はmethod2を呼び出しているわけだが

こういう関係を表現するような日本語ってなんかないのかな
親とか兄弟とかそういう

122 :デフォルトの名無しさん:2017/04/24(月) 21:56:16.91 ID:LwZqUTHo
部分適用

123 :デフォルトの名無しさん:2017/04/26(水) 01:00:33.67 ID:DJoflXur
Java初心者なのですが
オラクルのJavaシルバー?の資格取得を目指そうと思ったら、どのぐらい勉強したらいけるのでしょうか
プログラミングの経験はPHPとRubyを齧ったぐらいです

124 :デフォルトの名無しさん:2017/04/26(水) 05:11:15.63 ID:fNfh3ik4
>>0121 たぶん貴方には気に入らない解答だと思うけど、
そのメソッドをC言語の関数に書き変えるなら可変長引数の関数になるよね。
int printf(const char *format,,,); こんな感じの。
何の為に言葉を必要としてるのか解らないけども、
要はオーバーロードの仕組みの説明を省こうとしてるのでは?
C言語にはオーバーロードが無くてぇ…という具合に説明するとか、
なにしろ話を聞く方からしたら解り辛い話をしようとしていそう。

125 :ich1:2017/04/26(水) 07:18:55.25 ID:KcpaNie5
https://goo.gl/Y4tSAe
これは嘘でしょ?
本当なら落ち込むわ。。

126 :デフォルトの名無しさん:2017/04/26(水) 08:46:31.56 ID:vzc1hE4D
>>123
人によるとしか…
参考書や問題集が売られているので読んで自分で考えよう

127 :デフォルトの名無しさん:2017/04/26(水) 16:36:59.72 ID:vjkzFaZx
>>121
義兄弟

128 :デフォルトの名無しさん:2017/04/26(水) 16:51:30.93 ID:/ZfpN6QH
イデワンに複数のクラスを書くことは可能でしょうか?
publicを外すことによって。

129 :デフォルトの名無しさん:2017/04/26(水) 17:46:51.25 ID:HrCTO57d
>>128
知らねえ。
てか、やってみればいいじゃねえか。

130 :デフォルトの名無しさん:2017/04/26(水) 18:04:36.33 ID:C1JG3n6h
>>128
ID:/ZfpN6QHはム板/マ板に住み着いている荒らしなのでスルーで
自分で調べりゃいいことを他人に丸投げして調べさせる、悪意ある質問を繰り返しています

131 :128:2017/04/26(水) 18:22:25.64 ID:/ZfpN6QH
>>130
荒らしではない。
悪意ある質問などしてない。

132 :デフォルトの名無しさん:2017/04/26(水) 19:08:26.13 ID:aOOyj4L0
>>131
まあとにかくやってみればわかるからやってみな。

133 :デフォルトの名無しさん:2017/04/26(水) 19:46:51.92 ID:VGUvgo7C
Ideoneの話だからここだとスレチじゃないかね
2chだと専門で扱ってる所無いかもしれんが、他で聞いた方が良いだろうな

134 :128:2017/04/26(水) 19:54:48.55 ID:/ZfpN6QH
>>129 >>132
ありがとうございました。

>>133
ソフトウェア板ですかね。

135 :128:2017/04/26(水) 20:17:14.84 ID:/ZfpN6QH
たびたび失礼します。

やってみたら出来ました!
https://ideone.com/V0Jd9h
繰り返しになりますが、アドバイスをくれた方ありがとうございます。

136 :デフォルトの名無しさん:2017/04/26(水) 20:23:09.70 ID:C1JG3n6h
>>135
どういたしまして

137 :デフォルトの名無しさん:2017/04/27(木) 12:34:34.72 ID:11f5ZnzK
テーブルでA1はHTML内で5に指定、A2に<input type ="number" value ="0">があって、A1セルとA2セルを足したい場合
rowsとcellsで指定するとA2がNaNになり結果が5NaNになるんですがどうしたらいいですか?
この場合inputの初期値0は効かないのでしょうか?A2をparseIntで囲ってもだめでした

138 :デフォルトの名無しさん:2017/04/27(木) 12:35:09.09 ID:11f5ZnzK
誤爆しましたすみません

139 :デフォルトの名無しさん:2017/04/27(木) 16:27:12.96 ID:KUrn7ZtR
Javaで、char型の変数に文字を(キーボードから)入力したいのですが、
Scannerクラスを使うとnextChar()が無いためうまくいきません。
next()やnextLine()だとコンパイルエラーになってしまいます。
どのようにすればよいでしょうか?

140 :デフォルトの名無しさん:2017/04/27(木) 17:06:15.78 ID:Zbny+f2I
>>139
今のJavaで積極的にcharを使う理由は全然ないんだけど、何か理由があるのかな
まあそれはともかくScannerから一度Stringで受けてからcharAt()すればいいんじゃね?

141 :139:2017/04/27(木) 18:34:31.17 ID:KUrn7ZtR
>>140
レスありがとうございます。
本の課題でchar型の入力を使うものがあったので。
charAt()メソッドを使ったら出来ました。
https://ideone.com/O96vZQ
ありがとうございました。

142 :デフォルトの名無しさん:2017/04/28(金) 03:06:25.55 ID:v9V+NcAE
>>141
君にこれをあげよう。
https://ideone.com/5vlm7f

143 :139:2017/04/28(金) 16:13:12.31 ID:OeyLlymU
>>142
ありがとうございます。
Scannerクラスより利用頻度は低くなると思いますが、
参考にしたいと思います。

144 :デフォルトの名無しさん:2017/04/28(金) 16:19:37.25 ID:pIHGdJ8Z
>>143
逆逆、Scannerの方が頻度低くなる

145 :139:2017/04/28(金) 16:52:55.66 ID:OeyLlymU
>>144
まだ詳しく理解してないですが、
char型を使う場合に、という意味ですかね。
今はScannerしか使ったことないので…。

146 :デフォルトの名無しさん:2017/04/28(金) 17:26:10.18 ID:pIHGdJ8Z
>>145
汎用性の高さって意味
ScannerよりもIOStreamの方がやってる内容が低レベル(機械に近い)ので見る機会も使う機会も多いよ

147 :139:2017/04/28(金) 17:53:15.48 ID:OeyLlymU
>>146
分かりました。覚えておきます。
ありがとうございます。

148 :デフォルトの名無しさん:2017/04/29(土) 15:38:04.47 ID:JW7PzOlh
cvsファイルで
1 田中 りんご
3 鈴木 みかん
6 齋藤 ヨーグルト
2 根元 パン
5 根岸 サラダ
4 佐藤 ご飯

こんな感じのやつをソートしたいです。
数字の列が 配列0
名前が 配列1
食べ物系が配列2に入ってます

cvsを読み込んで数字の列を新しい配列0〜5にいれてソートして表示するとこまではできたのですが
後ろの名前と食べ物が同時にソートされません。

やり方教えてください

149 :デフォルトの名無しさん:2017/04/29(土) 15:38:07.81 ID:hP9HIxoy
JavaFXでゲーム作りたいけど全然解説してる所ない…・・・
そんなに見放されてるもんなのか

150 :デフォルトの名無しさん:2017/04/29(土) 15:39:33.67 ID:JW7PzOlh
なんどもすみません
今は
1 田中 りんご
2 鈴木 みかん
3 齋藤 ヨーグルト
4 根元 パン
5 根岸 サラダ
6 佐藤 ご飯

みたいになってます。

151 :デフォルトの名無しさん:2017/04/29(土) 15:48:07.67 ID:nyANDfpK
別々の配列じゃ連動とか複雑過ぎ。
クラス作って、クラスの配列で読込やソートすれ。

152 :デフォルトの名無しさん:2017/04/29(土) 17:15:02.95 ID:HCCTcSxI
JavatrてCでいうとこの構造体って無いんすか?

153 :デフォルトの名無しさん:2017/04/29(土) 17:16:52.09 ID:6B/XobRt
>>148
インデックスをソートしちゃえばいいよ
https://paiza.io/projects/Brbmeg7M6bZOYPELm1TOMQ

データは列の集合、列は行の集合になっているけれども

テーブルのようなデータ扱うときは
データは行の集合、行は列の集合
にしたがいんじゃないかな

154 :デフォルトの名無しさん:2017/04/29(土) 21:02:24.15 ID:y1rMzUYG
そもそも構造体を拡張したのがクラスじゃないの?

155 :デフォルトの名無しさん:2017/04/29(土) 23:13:29.81 ID:nyANDfpK
C#には構造体在るけど、Javaは無い。
メソッド無いクラス作れば、事実上の構造体。

156 :デフォルトの名無しさん:2017/04/30(日) 02:15:39.83 ID:Dc5Ny+RF
Kotlinでは、年齢・名前で、ソートすると、
Alice, Kate, Dave, Tom の順になる

class Person(var age: Int, var name: String) { }

var list = mutableListOf<Person>();
list.add(Person(25, "Tom"));
list.add(Person(25, "Dave"));
list.add(Person(20, "Kate"));
list.add(Person(20, "Alice"));

val sortedList = list.sortedWith(compareBy({ it.age }, { it.name }));
sortedList.forEach{ println("${it.age} : ${it.name}"); }

157 :デフォルトの名無しさん:2017/04/30(日) 03:12:27.12 ID:Pd/tmEqA
>>150
それぞれの列を別々の配列に詰めたら行ごとの関連付けが面倒くさいから行単位で関連付けてから配列に突っ込むイメージの方が楽
具体的にはもう出てるけど各行を表すEntityクラス作って各行のデータ突っ込んだインスタンスを配列化する

158 :デフォルトの名無しさん:2017/04/30(日) 05:33:25.51 ID:0NS9QiRt
一括りのデータを扱う時はレコードというもので扱うんだよ
レコードには固定長レコードと可変長レコードがある
固定長レコードは各フィールドの長さが決まってるからランダムアクセスすることができる
対して可変長レコードはシーケンシャルアクセスしかできないという欠点がある

159 :デフォルトの名無しさん:2017/04/30(日) 05:34:31.46 ID:/xQtxfzV
TreeMap 使えばいいのでは?
TreeMap<Integer, String[]> のインスタンスに put な。

160 :デフォルトの名無しさん:2017/04/30(日) 05:36:54.83 ID:/xQtxfzV
あ、行ごと扱うならキーだけIntegerにして値はそのまんまStringで入れといてもできるな。

161 :デフォルトの名無しさん:2017/04/30(日) 05:50:10.68 ID:/xQtxfzV
できた。ソートをTreeMapに任せてCSVの中身を何も考えずに突っ込んでる版。
https://paiza.io/projects/El4IUBlhQJydI6F0wf6YAA

162 :デフォルトの名無しさん:2017/05/01(月) 14:58:41.66 ID:F35eYYLf
return文の考え方が今一分からないです

public class Main05_11{
private static int add(int x, int y){
return x + y;
}
public static void main(String[] args){
System.out.println("10+20=" + add(10, 20));
}
}

この時ってreturn x + y;は一体どこに値を返しているのですか?
int ans = x + y
return ansであれば、値をansに返していると分かるのですが
ansなしでよく分からない所に返しているのに動いているのが分からず……

163 :デフォルトの名無しさん:2017/05/01(月) 15:07:15.65 ID:UF+7Ud8a
>>162
return x + y;はx + yの値をメソッドの呼び出し元に返してる
return ans;はansの値をメソッドの呼び出し元に返してる

164 :デフォルトの名無しさん:2017/05/01(月) 15:36:26.65 ID:F35eYYLf
>>163
あ、どっちもメソッドの呼び出し元に返してるんですね
根本的に認識を間違えてたみたいです、ありがとうございます

165 :デフォルトの名無しさん:2017/05/04(木) 03:35:25.45 ID:gAUNCpWB
paizaでfor文で解ける問題をforEachで解いてみたら軽く2倍以上の時間がかかったのですが効率悪くないですか?
使い道あるんですかね

166 :デフォルトの名無しさん:2017/05/04(木) 03:57:25.21 ID:0GlJDnqX
Java随分離れたけど、forEachって何。
メソッド?
Javaのforeachって拡張for文だったはずだが。

167 :デフォルトの名無しさん:2017/05/04(木) 04:52:18.46 ID:4JL58KAn
foreachは生えてるぞ。
list.forEach(System.out::println);
とか。拡張forにしろイテレータ使うと要素数によっては処理時間に差がつくな。

168 :デフォルトの名無しさん:2017/05/04(木) 05:13:05.21 ID:0GlJDnqX
ふむふむ。
Linqっぽいの付いたのね。
その用途だとmapとかの方がらしいメソッド名なんだが。

169 :デフォルトの名無しさん:2017/05/04(木) 08:04:03.31 ID:dLBAq4Dp
この文脈だと処理時間が2倍なのか解答時間が2倍なのか

170 :デフォルトの名無しさん:2017/05/04(木) 08:29:19.35 ID:BU79yY+V
>>165
LinkedListで使ってみたら?

171 :デフォルトの名無しさん:2017/05/04(木) 11:49:23.38 ID:p0RzDybu
これだから理系は付き合いきれん
機械の方がまだ融通が利くわ

172 :デフォルトの名無しさん:2017/05/04(木) 13:22:46.77 ID:qYtoqfij
>>168
mapは変換のインタフェースとして別であるよ
forEachはstreamの終端処理だよ

173 :デフォルトの名無しさん:2017/05/04(木) 14:52:50.80 ID:hrGLq/bC
今扱ってるシステムがJava7だからstreamとかラムダ式とか使わないけど
本読んでもよくわからん……

174 :デフォルトの名無しさん:2017/05/04(木) 15:36:20.32 ID:EbCQq7yq
あれ?Java7にはないんだっけ?

175 :デフォルトの名無しさん:2017/05/04(木) 15:58:11.88 ID:hrGLq/bC
あれ?Java8からじゃなかったっけ?

176 :デフォルトの名無しさん:2017/05/04(木) 16:07:35.97 ID:5jh0epYp
streamなんてSQLとか扱える思考回路があれば使えるぞ

177 :デフォルトの名無しさん:2017/05/04(木) 19:19:52.86 ID:YNozeJnq
皆最初どうやってjavaを勉強したの?
自分今基本情報処理試験をあとはプログラミングのところだけっていうところまでやったのだけど、カプセル化とかモジュール分けとかオブジェクト指向とかそういう考え方があるんだってういのはわかったんだけど
いざ自分でnetbeansのjavaファイルで書こうとしたらまずはoutprintしてみようと思ったら早速エラーが出てエラー原因が何だか全く分からない
英語の基本文法みたいにそういうの知らないと厳しい気がするのだが
皆の初学の経験を教えてほしい、できれば独学でやった人から聞きたい
あと、何か作ろうって思ったときはフローチャート作った方がいい?

178 :デフォルトの名無しさん:2017/05/04(木) 19:43:35.61 ID:mK1iuMfc
>>177
俺は全て独学だがまずはC言語、C++、C#の順に勉強する
するとJavaを半日程度で理解できる下地が出来上がる
何事も基本が大事だ
基本ができてればJavaなどたやすく扱えるし基本ができてなければどんな勉強をしても身につかない
物事には順番がありそれはお手軽に身につくものではない

179 :デフォルトの名無しさん:2017/05/04(木) 20:04:55.79 ID:u6JIByox
>>177
ひたすらエラーメッセージを読む
エラーメッセージをググる
「java ○○」でググる
「java ○○とは」でググる
「java ○○ できない」でググる
「java ○○ するには」でググる
エラーメッセージで知らない英単語があれば意味をググってからもう一度読む
答えが書いてあるっぽい掲示板が英語で書かれてても臆せず読む

それだけ

180 :デフォルトの名無しさん:2017/05/04(木) 20:07:29.10 ID:mK1iuMfc
>>179
こういう知識を啄ばむような雑な勉強方法はダメ
スカスカの知識しか身につかない

181 :デフォルトの名無しさん:2017/05/04(木) 20:11:19.54 ID:TB6ujr0/
>>177
まずは入門書1冊買ってきてそれに合わせて勉強するしかない
エラーの原因とかも正しい書き方自体がまだ分かって無い状態だし

後はエラーが出たらググるか
ソースコードどっかに置くかかここに書いて聞くか

182 :デフォルトの名無しさん:2017/05/04(木) 20:30:41.25 ID:rPmF/fmP
>>180
体系的な知識を身につけるのは大前提として、エラー対処の知識が要らないわけないでしょう
少なくともJavaを勉強するために先にC#を学ぶなんてトンチンカンなことしてる暇があったらその時間でJavaの
知識を仕入れるべき

183 :デフォルトの名無しさん:2017/05/04(木) 20:49:08.82 ID:Z6thB1wv
スッキリわかるJava(という書籍)では、コンストラクタやインスタンスメソッドに
publicが付いてないのですが、基本的に付けない方針で問題無いでしょうか?

184 :デフォルトの名無しさん:2017/05/04(木) 20:59:23.90 ID:0H6f0r38
>>183
ここに詳しく書いてある
http://msugai.fc2web.com/java/permitmod.html
まともにコード書きたいならパッケージの外から呼び出せるかとか一々考えながら書くといいかな(おすすめしないが実を言うとリフレクションで呼び出せちゃうけど)

185 :デフォルトの名無しさん:2017/05/04(木) 21:14:39.50 ID:mK1iuMfc
>>182
トンチンカンだとおもっているならその程度だよ君は
C、C++を知らないプログラマなど潜りの素人だし
優れた言語設計のC#をJavaより先に学ぶメリットは大きい
そしてこれらをこなせばJavaも自然とできるようになっている
したがってJavaなんぞは後回しで良い

186 :デフォルトの名無しさん:2017/05/04(木) 21:23:59.84 ID:qYtoqfij
>>185
C、C++、C#を勉強するのにかかる時間はどれくらい?
それはJavaだけを勉強したときよりも短くなるの?

187 :デフォルトの名無しさん:2017/05/04(木) 21:32:52.04 ID:mK1iuMfc
>>186
Javaだけやって同じレベルになるより遥かに早いよ
初心者から初めて金を貰っても許されるレベルになるまで1年といったところだな
Javaだけだと10年経ってもその領域に届かないクズが少なくないということはこの業界の先人たちが証明している
急がば回れというやつだ

188 :デフォルトの名無しさん:2017/05/04(木) 21:35:23.59 ID:rPmF/fmP
スッキリ君といいちょいちょい変なのが沸くスレだな

189 :デフォルトの名無しさん:2017/05/04(木) 21:37:31.74 ID:g1QlM0ze
C#を覚えるとデリゲートくれLINQくれプロパティくれ〜ってなるのでよくない

190 :デフォルトの名無しさん:2017/05/04(木) 21:40:59.09 ID:qYtoqfij
>>187
C、C++、C#を勉強してJavaを勉強して到達するレベルを
基準にしたらそれはそうなると思うんだよ

Javaを勉強したいというときに
Javaだけを勉強するのとどちらが効率いいですか?ってことなので
Javaだけを基準にした場合、到達速度っていうのは変わってくるんじゃない?

いろんな言語を1年で齧って回るよりはJavaを勉強したがいんじゃないかな

191 :デフォルトの名無しさん:2017/05/04(木) 21:47:21.88 ID:qYtoqfij
>>177
慣れることが大事なのでサンプルコードを書きまくるのがいいと思う

おすすめは↓の2冊

10日でおぼえるJava入門教室
https://www.amazon.co.jp/dp/4798120197/

新・明解Java入門 (明解シリーズ)
https://www.amazon.co.jp/dp/4797387602/

10日でおぼえる〜は1日目はこれみたいに区切りがいいので
やりやすいかと

192 :デフォルトの名無しさん:2017/05/04(木) 21:47:36.98 ID:GHkN69u9
>>177
元々C言語は知っていて仕事でもずっと使ってた。で、C++が流行り出したので少しは学習したが仕事で本格的に使うまでには至らなかった。
その後かなり時間が経ってからJavaが流行り出して、そこで入門書読んでだいたいわかった感じ。これが20年ぐらい前の話だ。
しかし今まで仕事はずっとC言語ばかりでJavaを仕事で使うことはなかった。Linuxのサーバ側のCで作られたプログラムにずっと関わってたからだ。

193 :デフォルトの名無しさん:2017/05/04(木) 21:51:14.78 ID:4KUdSbXO
>>173
流れを感じるのじゃ

194 :デフォルトの名無しさん:2017/05/04(木) 22:01:25.36 ID:mK1iuMfc
>>190
Javaにはろくな参考書がないからね
良書の揃ってるCファミリとC#の方が早く深く学べる
そうして土台が出来上がればじゃあJavaの場合はどうなのという事を覚えるのは実に容易い
結果的にJavaだけを学ぶ場合よりも早く深くJavaを知ることができる

195 :デフォルトの名無しさん:2017/05/04(木) 22:06:59.52 ID:qYtoqfij
>>194
JavaとC#は似てるから
JavaがわかるようになればC#もわかるかと

深くJavaを知るっていうのはつまりC、C++、C#を勉強して到達するレベルの話だよね
そうでなくてJavaを勉強して到達するレベルを基準にした場合
Javaを勉強するのが近道だと思わない?

196 :デフォルトの名無しさん:2017/05/04(木) 22:13:01.02 ID:qYtoqfij
Javaがわかるようになればプログラムの考え方も身についてるから
CやC#もすっと入ってくるんじゃないかな
C++は人類にはまだ早いと思う

197 :デフォルトの名無しさん:2017/05/04(木) 22:26:18.44 ID:hGwzsYkf
むしろJava分かったから、C/C++のスタック/ヒープの意味(newするクラスとしないクラスの違い)や、C++特有のフレンドクラスが分かった。
順番はどうでも良いけど、Javaとは別にCは学んでおいた方がいい。

198 :デフォルトの名無しさん:2017/05/04(木) 22:30:38.02 ID:4KUdSbXO
プログラマーたるもの手続き型、オブジェクト指向型、関数型に属する言語を最低でも一つずつは習得しておかんとね
そして関数型に惚れ込んでJavaでもラムダ計算やカリー化をバシバシ使い周りに疎まれる存在となるのだ

199 :デフォルトの名無しさん:2017/05/04(木) 22:38:29.99 ID:TB6ujr0/
ruby→javaの順だけど
オブジェクト指向の理解はし易くなった感
javaだと思いっきりソースコード変わるから実感じやすい

200 :デフォルトの名無しさん:2017/05/04(木) 22:41:33.02 ID:g1QlM0ze
Javaでラムダ計算はつらいとか考えてたら気がついたらマシンにClojureが導入されてる

201 :デフォルトの名無しさん:2017/05/04(木) 23:25:17.13 ID:6JYEyXx+
int型配列の最頻値を求めるメソッドは用意されてないのでしょうか?

202 :デフォルトの名無しさん:2017/05/04(木) 23:38:27.31 ID:qYtoqfij
>>201
標準ライブラリにはないけれども、大丈夫っしょ、余裕っしょ、できるっしょ

203 :183:2017/05/04(木) 23:40:33.61 ID:Z6thB1wv
>>184
ありがとうございます。
よく見てみたいと思います。

204 :デフォルトの名無しさん:2017/05/05(金) 00:12:55.97 ID:YKLEnk0e
>>90
ここに書いてある

スッキリわかる Java入門 第2版、2014
まずこの本を3回読んで、オブジェクト指向をみっちりと学ぶ

この本が、すべての言語の基本。
その後、好きな言語を勉強すればいい

205 :183:2017/05/05(金) 01:17:39.61 ID:GcsXwLgt
>>204
その本悪くないと思うし、あんまりケチつけたくないけど、
Scannerクラスの使い方が詳しく載ってなかった。
(インスタンス化についての記述が無い)
Randomクラスも同様。
過信は禁物か。

206 :デフォルトの名無しさん:2017/05/05(金) 01:23:45.78 ID:ecYRcjUo
>>205
その辺詳しく書いてある本を知りたいわ
Javaは本多いけど、どのレベルまで書いてあるか全然分からん

207 :デフォルトの名無しさん:2017/05/05(金) 01:24:59.61 ID:jRdxjTk1
ここからJavaのほとんどを学んだ
http://www.ne.jp/asahi/hishidama/home/tech/java/index.html

208 :デフォルトの名無しさん:2017/05/05(金) 01:30:04.44 ID:yjG7qa8A
>>205
>>31

209 :デフォルトの名無しさん:2017/05/05(金) 02:03:32.40 ID:Pxg1OvaW
>>207
こういうサイトがある時何から学べばいいの?
俺みたいなちんぷんかんぷんだと上から全て順に読んで、わからない言葉があると調べて、それでも概念的なものがよくわからなくてとりあえずわかったふりしたまま先に進んで結果あまり頭に入ってなかったっていうのがよくある失敗パターンなのだが

210 :スッキリ厨:2017/05/05(金) 02:04:46.46 ID:YKLEnk0e
「たのしいRuby」など普通の本では、オブジェクト指向の説明は、数十ページ

でも「スッキリわかる Java入門」では、250ページもある。
つまり、Javaの本と言うよりも、オブジェクト指向の本なんだよ。
そして、すべての言語の基礎になる

だから、この本は、歴史的な本と言われるわけ。
これ以前には、オブジェクト指向を勉強する、簡単な本は無かった

未だに外国では、この本が無いから、
オブジェクト指向を勉強するのに、四苦八苦している

211 :デフォルトの名無しさん:2017/05/05(金) 02:06:41.17 ID:Pxg1OvaW
あと、javaを実行する時とJSPを実行する時、それぞれpublic class{とか<%とか必要だと思うんだけどこれがないとコンピュータが処理であると認識しないっていうこと?

それとprivate class とpublic class の違いもイマイチわからぬ
Privateはそのクラス内でしか呼び出せないっていうけど、そもそも呼び出すってなんぞや

212 :デフォルトの名無しさん:2017/05/05(金) 02:21:57.70 ID:Pxg1OvaW
>>207
もう一個質問お願いします
extends 抽象クラス
その後に具体的な処理を書くって書いてあるけど抽象クラスを定義する意味ってあるの?
具体的な内容を記述するならそもそも抽象クラスを定義する必要あるのかなって
抽象クラスとかは使い方もわからないしそもそもなんでそういう考え方をするのかも理解ができない
何が言いたいかというと例えば車っていう抽象クラスがあったとしてそれは排気量を記述しなければいけない、メソッドとして走る機能を持つって事として

後で具象化クラスでextends車で抽象クラスを呼び出した時に結局排気量=なんたら、とかを記述しないといけないじゃない
だから、そういう制約的な意味しかないんじゃないかなと
プログラミングにおいて便利にするためにそういう事をしてるはずなのに、その利便性がイマイチ掴めないのだ

今は繰り返し処理とかつかって素数を求めるプログラムを作るっていう事を書いてるレベルだから、もっとゲーム的な方に行くとその意味がはっきりするのかね?

213 :デフォルトの名無しさん:2017/05/05(金) 02:36:54.89 ID:Y8XbhYBn
もうはっきり言ってしまうとプログラミング初心者がオブジェクト指向型言語なんてものから始めるべきじゃないんですよ
たかだかHelloWorldやFizzBuzzするためになんでクラスやアクセス修飾子を気にせねばならんのだと
それでもどうしてもJavaから覚えたいなら身の丈に合わない疑問は飲み込んでひたすら前に進むしかないのですよ

214 :デフォルトの名無しさん:2017/05/05(金) 02:40:44.53 ID:iQB12R96
つっても、もう世に出てる言語の殆どはLL含めオブジェクト指向言語だろ。

。。。関数型言語の世界へようこそ?

215 :デフォルトの名無しさん:2017/05/05(金) 02:44:11.57 ID:jRdxjTk1
>>212
例えばその走るって動作には、燃料と空気を供給してエンジンを作動させて動力を生み出すという過程があって、これは二輪でも四輪でも共通である(現実にはエンジンごとに違うがここでは無視)
二輪と四輪のクラスを作るとしてそのベースになる車というインターフェースを定義するとして、両方に同じことを書くことになって、それは無駄だからその部分を抽象クラスとしてまとめてしまおうという考え
間違ってたらスマソ

216 :デフォルトの名無しさん:2017/05/05(金) 02:50:09.25 ID:TDjvniVu
>>210
>未だに外国では、この本が無いから、
>オブジェクト指向を勉強するのに、四苦八苦している

それはないww
そこまで書くとステマかと思うわ

217 :デフォルトの名無しさん:2017/05/05(金) 02:54:03.98 ID:Pxg1OvaW
>>212
そういう前提があるっていう事でしょ?でも実際処理で車のエンジンの仕組みは重要じゃなくてどのようにそれらの車が動くかが重要になるのじゃない?
マニュアル車ならクラッチ操作、オートマならレンジチェンジ(でいいんだっけ)などの具体的な操作を個々に記述して行くと思うんだけど共通の仕組みそのものを定義する事は便利さには繋がっていないんじゃないかなって
確かに車はエンジンがないと動かないけど、プログラム上では(ってかユーザーにとっては)エンジンがあるかないかなんて関係が無いんじゃないの?
定義しないといけないっていう具体的な例があったら教えて欲しい

218 :デフォルトの名無しさん:2017/05/05(金) 02:59:46.55 ID:Pxg1OvaW
窓はガラスでできている。そのガラスを使って窓を開け作った上でこっちに押したら閉まる、こっちに押したら開くなどのことが出来るようになる
だからまずはガラスでできているという共通前提定義が必要となる。それはわかる
でも実際プログラム上でそれがどう有効なのかがわからない
人間クラスに名前はまず名前、年齢が必要、その上で個々の動作をして行くわけだけど定義してそのクラスを呼び出しても結局年齢とかは手書きで書いて行くわけじゃん

例えばどういう時にオブジェクト指向を使ってるのかとかあったら教えて欲しい、ゲームとかでもいいので

219 :デフォルトの名無しさん:2017/05/05(金) 03:13:17.49 ID:jRdxjTk1
確かに個々の動作を書くのには抽象クラスは全く役に立たないよ、ただプログラムを動かすにはその外から見て重要ではない部分が必要なわけで、その部分が共通だとコピペするのは簡単だが後々の修正が大変、だからまとめておくと

220 :デフォルトの名無しさん:2017/05/05(金) 03:20:10.72 ID:Pxg1OvaW
>>219
具体的にプログラムの世界だと何をまとめるの?実行するための記述以外にプログラムそのものを動かすために必要なものの具体例がわからないのだが

221 :デフォルトの名無しさん:2017/05/05(金) 03:37:46.29 ID:jRdxjTk1
JavaにはListって可変長の配列を作るためのインターフェースがあるけど
http://docs.oracle.com/javase/jp/7/api/java/util/List.html
これだけのメソッドを実装しろと要求してくる
そしてこれを使って中身の違う実装を作るときに全部を何度も実装するのは骨が折れる作業だよね
そこでAll系のメソッド等他のメソッド呼び出しで書けるものを抽象クラスに書いておけば実際に実装するときに書かなくてよくなる(効率化したいとかだと書いてもよい)
折角クラスライブラリのソースあるんだしAbstractList辺りのソース見てみるといいよ

222 :デフォルトの名無しさん:2017/05/05(金) 03:43:35.59 ID:jRdxjTk1
分かりにくい説明しかできなくてすまんの、多分現実の物体で考えずにプログラムとして直接考えるのが一番の近道じゃないかな

223 :デフォルトの名無しさん:2017/05/05(金) 03:50:24.78 ID:TDjvniVu
>>220
たとえば共通の手順とか

テンプレートメソッドと呼ばれるパターンの例(HeadFirstデザインパターンより)
http://i.imgur.com/4m0ZWv7.png
コーヒーでも紅茶でも抽象化した手順は同じたし
お湯沸かしたりカップに注ぐ部分は全く同じ

今はJavaでも抽象クラスとは違う方法でも実装できるけど
こういう基礎の理解は必要

224 :デフォルトの名無しさん:2017/05/05(金) 04:16:15.80 ID:JPrvtXpw
ゲームのマップを作ろうと考えています。
マップ画像を表示させ、マップ上の任意の部屋をクリックすると、その場所の名前(ロビー、キッチン、ベッドルーム、など)を表示するようにしたいです。
この処理を実装するには、どのような方法がスマートでしょうか?
各部屋の形は四角形ではなく、円や三角形など複雑な形をしているので、単純に四隅の座標を部屋名とともに配列に格納しておき、クリックした座標を内部に含むものをfor文で回して探索する・・・という方法は難しいです。
どうかお力添えください。

225 :スッキリ厨:2017/05/05(金) 05:14:23.88 ID:YKLEnk0e
ゲームは、オブジェクト指向の最高峰

キャラクタークラスから、勇者・魔法使いなどを、
モンスタークラスから、スライム・ゾンビなどを派生させる

is-a, has-a とか勉強すれば?
消防車は車の一種。is-a。継承
車はハンドルを持っている。has-a。部品

「スッキリわかる Java入門」では、オブジェクト指向の説明が、250ページもある。
ここ20年間、世界中の中年のCプログラマーが、皆、C++へ移行できずに撃沈している

オブジェクト指向がどれぐらい難しいか、分かるでしょ?
だから、スッキリが日本中に、革命を起こした

226 :デフォルトの名無しさん:2017/05/05(金) 05:22:28.10 ID:YKLEnk0e
>>224
java.awt.Shape interfaceで定義される、containsメソッドは、
指定された点が、図形の境界の内側にあるか否かを判定する

「java 図形 内側」などで検索!

227 :デフォルトの名無しさん:2017/05/05(金) 12:17:52.64 ID:Oxs8iPV6
超単純にやるなら
・種別(矩形、三角形、円)
・パラメータ(最大4つ)
 頂点の絶対座標もしくは円の中心座標&半径

とやって判定時などに種別に応じて処理を分ける

それと一つの部屋?を分割して単純な図形の組み合わせにする
回転が必要なら矩形を2つの三角形に変える

スクロールとか必要ならもっと面倒だけど
プロパティかパラメータを増やせばなんとかなるべ

228 :デフォルトの名無しさん:2017/05/05(金) 12:24:15.13 ID:jsHCnOkz
Javaプログラマはオブジェクト指向をよくわかってない人が多い
C#プログラマはみんなよくわかってる
C#マイクロソフト公式の参考書など良書が揃っているからね
Javaはろくな本がない
初心者をごまかしてわかった気にさせるような本ばかりだ

229 :デフォルトの名無しさん:2017/05/05(金) 12:42:33.54 ID:8b9qfJY2
それってあなたの感想ですよね?
なんかそういうデータあるんですか?

230 :デフォルトの名無しさん:2017/05/05(金) 12:50:52.07 ID:XP+Q0OKG
>>229
会社にあります

231 :デフォルトの名無しさん:2017/05/05(金) 12:55:46.33 ID:Dvx8ftQc
いちいち部屋分割して図形の頂点座標測ったりとか種別とかやってられないでしょ
元のマップとは別に、それぞれ部屋ごとに色で塗りつぶしたマップを用意して裏で読み込ませといて、クリックした地点のカラーコード読んで色に対応した部屋名を取り出す
ってのを考えたんだけどどうよ

232 :デフォルトの名無しさん:2017/05/05(金) 13:14:01.06 ID:8b9qfJY2
>>230
それ「宿題家に忘れました」と同レベルじゃないですかー

233 :デフォルトの名無しさん:2017/05/05(金) 13:22:43.96 ID:XP+Q0OKG
>>232
バカなの?
宿題と同じ感覚で会社のデータ持ち出しちゃうんだ君は

234 :デフォルトの名無しさん:2017/05/05(金) 13:28:33.31 ID:8b9qfJY2
>>233
説得力が皆無だからそれ以上非論理的な話をするのはやめとけと言っているだけですよ
データを他人に見せられない主張に意味などない
まぁ所詮2ちゃんだし、それでもわめきたければ好きにすれば?

235 :デフォルトの名無しさん:2017/05/05(金) 13:29:35.85 ID:Up1lvbHo
まぁポンコツな会社にはポンコツが集まるって言われてるし

236 :デフォルトの名無しさん:2017/05/05(金) 13:41:46.76 ID:XP+Q0OKG
>>234
そもそも君を説得する必要もないしね
事実は事実として変わらないことだから君がどう思おうと何の影響もない

237 :デフォルトの名無しさん:2017/05/05(金) 13:49:41.18 ID:n4hNDFR+
会社にありますはガイジすぎる
そんなん通るならC#プログラマーは全員屑!証拠は俺の会社にある!

238 :デフォルトの名無しさん:2017/05/05(金) 14:21:00.68 ID:XP+Q0OKG
というか俺の会社じゃなくてもどの会社にでもある
過去の案件を分析すれば答えは出るよ
Javaがいかに失敗を生み出してきたか数字ではっきりと出てくる
GW明けにでも調べてみるといい

239 :デフォルトの名無しさん:2017/05/05(金) 14:28:17.47 ID:xfO5LNpr
今から勉強しようとしてる人向けの話じゃなかったのか?
今から勉強しようとしてるのなんて学生に決まってるんだから会社の資料は見れないでしょ……
まさか社会人にもなってやっとJava勉強しようとしてる意識低い系の話なのか?

240 :デフォルトの名無しさん:2017/05/05(金) 14:30:45.16 ID:EB13pOeh
去年調べた結果だと、Javaの方がC#より三倍生産性が良かったよ。
今年は知らんが、多分同じじゃない?

241 :デフォルトの名無しさん:2017/05/05(金) 14:35:53.90 ID:XP+Q0OKG
>>239
Javaはそういう意識低い人ばかり

242 :デフォルトの名無しさん:2017/05/05(金) 16:17:42.92 ID:Pxg1OvaW
public class void String NewClass() {

System.out,.print ("hello");

}

実行しようとしてもエラーが出る 
identifierがありません。
全く持って意味が分からない…

243 :デフォルトの名無しさん:2017/05/05(金) 16:28:41.11 ID:8b9qfJY2
おまじないがおかしいよ
ますおまじないをそらで書けるようになってから応用しなさい
あとoutの後ろの,はいらん

244 :デフォルトの名無しさん:2017/05/05(金) 16:40:39.14 ID:Pxg1OvaW
>>242に関しては自己解決しました。
もう一つ質問だけどとりあえずネット上にあるサンプルを使ってコードを書きまくってみようと思ってるのだけどなにかコードを記述したいって思ったときに
public static void とかprivateとかいろいろあると思うんだけど何を基準に選んだんラいいの?
あと、いまやっとこさこれが書けたんだけどこの言葉から記号一つ一つの意味まで全部把握しておいた方がいい?
public class NewClass{
public static void main(String args[])
{
System.out.print("表示できるか??");
}


}

main このmainっていうのはクラス名?あとどこかでclassは一つのファイルに一つまでしか書けないって書いてあったけどこれにはclassが入ってないけど例えばオブジェクト指向で新しいクラスを作りたいってなった時に
classはファイル名と一緒でなければいけないって書いてあったのだけど、どうやって考えたらいいの?

245 :デフォルトの名無しさん:2017/05/05(金) 16:48:22.02 ID:Pxg1OvaW
多重に質問申し訳ない
言葉を覚えての色々な事を質問して回る子供だと思って聞いてほしい
javaの構文を覚えるときは皆一つの熟語として覚えてる?
例えばこういうときは
public static void main(String args[]){  を使うんだ、みたいなものを一つひとつの意味を考えないで丸ごと覚えているイメージ?
あとついでにもう一つ頼む、args[]の[]は配列を表すものだったと思うんだけどよく見るこのコードはなんで配列を指定しているの?

246 :デフォルトの名無しさん:2017/05/05(金) 17:03:12.00 ID:Pxg1OvaW
お願いします
今まで出力はコンソール上またはjspをつかってweb上だけに計算結果を出力させてたんだけどより実践的にwebにつながなくてもコンピュータ上だけで処理させるには何が必要になってくるの?
あとテキストボックスとかラジオボタンとか使いたいのだけどその際にはimportとか必要になってくる?

247 :デフォルトの名無しさん:2017/05/05(金) 17:06:37.66 ID:UN44kkRF
全てに意味があるんだから全て覚えなさい

「ファイル名 class」
「mainメソッド」
「アクセス修飾子」
「staticメソッド」
「引数」
「戻り値」
「戻り値の型」
「コマンドライン引数」

このあたりで調べなさい
全部まともに答えるには金取らんと割に合わんレベルだよそれ

248 :デフォルトの名無しさん:2017/05/05(金) 17:06:41.65 ID:SKOR9dHG
public
static
void
main()
String args[]
{
それぞれの意味を覚えてる

args[]は実行時の引数の格納するから
javac test.javaでコンパイルした場合
実行時にjava test aaaとするとarg[]にaaaも含まれる

コントロールはjava コントロール名とかで調べる

249 :デフォルトの名無しさん:2017/05/05(金) 17:14:34.88 ID:Up1lvbHo
とりあえずスッキリJava読んだほうがよくね

250 :デフォルトの名無しさん:2017/05/05(金) 17:26:34.34 ID:G0OfeBgr
個人的には最初から1から10まで理解しようとしたら
頭がパンクするだろうから、ある程度は絞ったほうが良い

@public class Tes {
A public static void main(String[] args) {
B System.out.println("hello java");
}
}

まずは
@:ファイル名とクラス名が同じじゃないと、Javaのプログラムって動かないんだなーぐらいは覚える
A:とりあえず動かすにはこの魔法の呪文が必要なんだぐらいしておく
B:文字列出力するのはこう書くのかー
ぐらいが理解できれば次に進んで良いと思うわ
最終的にはpublic、static、void、stringとかの意味も理解する必要はあるけど
それを利用する(あるいは目的を持って変更する)場面を知ってからじゃないと、結局分からず仕舞いで終わるだろうし

上で書いたソースしか知らない段階でvoid調べて、「何も値を返さない時はvoid型を指定する」とか見ても
理解できるどころか「値を返す、返さないってなんやねん!」ってなって意味が無い

251 :デフォルトの名無しさん:2017/05/05(金) 17:43:33.01 ID:RNJ7gaAH
どこから突っ込んでいいのか。。。
ここで質問するより入門書読むなり、入門サイト読むなりした方が良いよ。
分からないことが整理出来てから質問しなさい。
そこまで何も知らない状態で質問されても、入門書くらい読んでからにしろよと呆れられるだけ。

252 :デフォルトの名無しさん:2017/05/05(金) 20:46:02.93 ID:Pxg1OvaW
わかりました。
じゃあすっきりJAVA入門ていうの買ってみることにします。
ちなみにこれをやれば基本的な文法は理解できるようになりますか?
自分は今コーディングするたびに〜〜classにはメソッドがありませんとか型の開始が不正ですとかidentifierがありませんとか
そういうエラーメッセージに苦しめられてる状態ですけどそういった部分も解決できるでしょうか?
それといろいろなコーディングの例ものっていたりするでしょうか?
とりあえず今やりたい事としてはアプリ上にテキストボックスなどを置いてユーザーからの入力に対して対応できるプログラムが出来ればいいなと思ってます
つまり、今は素数一覧判定するプログラムを作ってあるんですけど内部で数値を書いてファイルを実行して初めて表示されるのだけど、コードの内部を知らない人に使ってもらえるようなアプリを作れるようになるかというところです

自分全くの初心者なのでわかりやすさと、どのレベルまで行けるかっていうのを教えてもらえると嬉しいです、それと、第二版と二種類あるみたいだけど安い方を中古で買えば問題ないですか?

253 :デフォルトの名無しさん:2017/05/05(金) 20:47:26.36 ID:3kP3AuyS
GWでJava勉強してるやつ、進捗どう?
手遅れ感感じた?

254 :デフォルトの名無しさん:2017/05/05(金) 20:50:14.80 ID:jRdxjTk1
>>252
メモ帳か何かでコード書いてるのだとしたらIntelliJ使ってみるといいかもな

255 :デフォルトの名無しさん:2017/05/05(金) 20:59:16.11 ID:Pxg1OvaW
>254
netbeansでやってますよ

256 :デフォルトの名無しさん:2017/05/05(金) 21:07:56.45 ID:MjMW9HuU
この年でJavaとか、他にもっとやることあるだろ

257 :デフォルトの名無しさん:2017/05/05(金) 21:22:34.99 ID:RNJ7gaAH
>>252
mainメソッドねーよとか、正しいmainメソッドの書き方じゃねーよって怒られてるだけ。

入門すれば何怒られてたのかも分かるから。

258 :デフォルトの名無しさん:2017/05/05(金) 21:31:22.44 ID:RNJ7gaAH
入門書は大抵古い面倒な書き方->新しい楽な書き方の順で紹介する。
なので長い目で見たら新しい入門書のが良い。
到達出来るレベルは楽な文法覚えてるだけで何か作れる訳じゃ無い。
どっち読んでも大差はない。

英語覚えたから英語ペラペラか?
言語ってのは使ってナンボ。

入門したら、簡単なので良いからさっさと何か作る。

259 :デフォルトの名無しさん:2017/05/05(金) 21:51:52.06 ID:Pxg1OvaW
>>258
なるほど

つまり作るための下地は作れると考えて大丈夫?

260 :デフォルトの名無しさん:2017/05/05(金) 21:55:05.15 ID:RNJ7gaAH
うむ。
最低限はね。
複雑なのはWebで本家のドキュメント眺めながらとか。
あなたのアイデア次第の部分のが多い。
作り方を思いつけるか。
調べられるか。
知ってるか。

261 :デフォルトの名無しさん:2017/05/05(金) 22:15:47.72 ID:Pxg1OvaW
>>260
発想の部分は好きだから多分いけると思う
むしろ色々な事をどんどん広げて行きたいと思う
事務職でマクロやってた時も結構複雑な処理をネットで調べたりして実装してた
知ってるか
っていうところがちょっと不安だけど大丈夫かな
でもとりあえず「オブジェクト指向 例 」「メソッドとは」「クラス 定義 必要性」とかわからないままを永遠にループ検索することはとりあえずなくなりそうでよかった
早くAmazonからこないかな

262 :デフォルトの名無しさん:2017/05/05(金) 22:48:55.45 ID:G0OfeBgr
しかしJavaで書籍というか入門書無しで勉強する人おるんだな
大体はスッキリの入門、やさしいJava、明解のどれかから手を付けて始める印象が多い

というかせっかく入門書一杯あるんだから利用しない手はないべ

263 :デフォルトの名無しさん:2017/05/05(金) 22:49:01.87 ID:RNJ7gaAH
知ってるかは思いつけるかと調べられるかの繰り返しによる積み重ねだから、心配は要らない。

264 :デフォルトの名無しさん:2017/05/05(金) 22:49:39.29 ID:+CHRnsuY
エネルギーを2chに使うのをやめないと本読んでも意味ないんじゃないかな

265 :デフォルトの名無しさん:2017/05/05(金) 23:14:46.17 ID:GcsXwLgt
配列について質問です。
…{1,2,3};
という表記法と、
…new int[]{1,2,3};
という表記は何か違いがあるのでしょうか?

266 :デフォルトの名無しさん:2017/05/05(金) 23:16:03.94 ID:yjG7qa8A
>>265
>>31

267 :デフォルトの名無しさん:2017/05/05(金) 23:39:09.89 ID:GcsXwLgt
>>266
アラ探しは止めてもらえます?

268 :デフォルトの名無しさん:2017/05/05(金) 23:42:36.40 ID:RNJ7gaAH
newの方が本来の書き方で、newしない方はCからの移行組のために単純に書けるように後から作られたもの。

269 :265:2017/05/06(土) 00:35:25.29 ID:gDC1nU6T
>>268
そうなんですね。ありがとうございます。

どちらかではOKでどちらかでは駄目という場面とかありますかね?

270 :デフォルトの名無しさん:2017/05/06(土) 00:39:00.98 ID:9tv813Aq
無い。
楽な方選ぶ。
(なので大抵newしない方で書かれる)

271 :265:2017/05/06(土) 01:34:48.70 ID:gDC1nU6T
>>270
分かりました。ありがとうございました。

272 :デフォルトの名無しさん:2017/05/06(土) 02:51:48.75 ID:GtACJVEu
インスタンスの同一判定で違いが有るという話を見たこと有るが、
配列のインスタンスを判定する事自体がダメな事だと思ってる。

それより、int result[]=new int[10];
なんて書き方は覚えたての頃に少しした程度で、
今は、int result[]={ 0,1,2,3,4,5,6,7,8,9 };こう書くよなぁ…
C言語は知らなくても慣れてくるとみんなこうならない?

273 :デフォルトの名無しさん:2017/05/06(土) 03:07:22.28 ID:9tv813Aq
なる。
実はC++だとnewする、しないはスタックかヒープかの違いがあって、new int[n]とか宣言時に[]内に変数使える、使えないとか、配列作れる限界もnewした方が大きいとか違いがある。
でも、Javaは基本型以外は全部ヒープに置くので配列はヒープにしか置かない。
C形式がまだ無かった初期の入門書には何故配列をnewするのかの解説まであった。

Javaにおいてnewするしないに違いが無いなら、してられっかよ。って誰も書かなくなった。

274 :265:2017/05/06(土) 04:21:51.57 ID:gDC1nU6T
と納得したのですが、突っかかる箇所があるのでまた書かせて頂きます。すいません。

今読んでいる書籍の問題で、(必要な個所だけ抜粋します)
public class Player {
int[] hand; // 手札配列
}
の実行用クラス(Exec)を作成しろという問題で、
Player player1 = new Player();
とした後、player1の手札配列に{2,13,26,13,48}をセットしろとのことなんですが、
player1.hand = {2,13,26,13,48};
とするとコンパイルエラーになるんですよね。解答には、
player1.hand = new int[]{2,13,26,13,48};
と書いてあり、そう入力するとエラーは無くなります。
なのでこの二つの表記法に文法的な違いがあるのでは?
と思ったわけです。

改めて皆さんの見識を伺いたいです。
本には違いはほとんど書かれていませんでした。

275 :デフォルトの名無しさん:2017/05/06(土) 04:31:13.41 ID:5R6Ql+c4
>>274
new を省略できるのは初期化の時だけ。あくまでも初期化の時だけ特別に書くことを省略することが許されている。
(書かれていないだけでやることは同じになる)。

276 :デフォルトの名無しさん:2017/05/06(土) 04:34:42.43 ID:feNHzNcv
>player1.hand = {2,13,26,13,48};
>とするとコンパイルエラーになるんですよね。解答には、

そのエラーメッセージで検索すべき!
それでも分からなければ、そのエラーメッセージをここに書いて、質問する

277 :デフォルトの名無しさん:2017/05/06(土) 04:44:15.46 ID:feNHzNcv
推測で書くけど、

型 a = {2,13,26,13,48};
これは、配列リテラル。
初期化時の、特別な書き方

たぶん実行文じゃない。この行で実行されるわけではない。
アプリの開始前に、コンパイラが置き換える。
即値、つまり、既に何もせずとも値になってる

型 a = new int[]{2,13,26,13,48};
一方、これは実行文。この行で、newが実行される

278 :デフォルトの名無しさん:2017/05/06(土) 08:30:46.24 ID:9tv813Aq
>>274
Cだとそもそも宣言時以外はそう言う書き方出来ないんだが、そうか、クラスのフィールドだと宣言と初期化が別れるな。
宣言と同時に初期化する時のみの特別な記述としてnewしない記述は使える。
それ以外はnewしないとダメ。
説明が雑ですまん。
理由は基本型じゃ無いから。
ヒープに置くのは全てnewが必要で、記述上特別扱いは配列の宣言と同時に初期化する時と、文字列のみ。
Cなんて、宣言と初期化が別れたらforで一個一個配列に値を入れるしか無いって言う。。。

279 :265:2017/05/06(土) 11:15:43.19 ID:gDC1nU6T
多くのレスありがとうございます。

エクリプスでは「配列定数はイニシャライザにおいてのみ使用可能です」と表示されました。
皆さんの言うように{1,2,3}という表記法は初期化時のみしか使えないということみたいです。
でも>>274の場合は初期化に相当しないのかな、と思うのですが…。

280 :デフォルトの名無しさん:2017/05/06(土) 12:34:15.65 ID:RxOQwEqu
宣言文の一部分である初期化子やろ

281 :デフォルトの名無しさん:2017/05/06(土) 13:07:31.76 ID:3Bn/MS7d
>>279
それは初期化であってる。
んで、newしなくて良いのは「宣言と同時に」初期化する場合のみ。
クラスのフィールドでint[] a;ってなってるのが宣言。

282 :デフォルトの名無しさん:2017/05/06(土) 13:09:11.36 ID:3Bn/MS7d
x int[] a;
o int[] hand;

人のコードよく読んで無かった。。。

283 :デフォルトの名無しさん:2017/05/06(土) 13:44:30.80 ID:jYP/Wf/9
>>279
ありがとう。

284 :デフォルトの名無しさん:2017/05/06(土) 16:41:50.05 ID:5R6Ql+c4
>>277
書き方違うだけでコードは同じように new する形式になっていると思うが。
というのは何れの書き方でも a[1] = 2; みたいに内容を後から変更可能だから。
ただし static の場合は書き換え可能なデータ領域に最初からインスタンスがあって
(つまりコンパイラがそれを含めた形でバイナリを作ってあって)そこへの参照を a に
代入するだけになるかも知れない。
static でない場合は普通に実行人ヒープに領域確保してからリードオンリーの
データ領域(コンスタントプール)から初期値をコピーしていると思う。

285 :デフォルトの名無しさん:2017/05/06(土) 16:46:57.57 ID:HAuELHoN
まあどうなってるか見たいならコード書いてコンパイルしてjavap通せ

286 :265:2017/05/06(土) 17:14:44.21 ID:gDC1nU6T
>>281
そうなんですね、分かりました。

繰り返しになりますが、多くのレスありがとうございました。

287 :デフォルトの名無しさん:2017/05/08(月) 17:19:02.28 ID:C0kEGIYB
今日からjavaの本で学習し始めたんだけど

慣れたらpublicなんたらかんたらとか長い分も自分で一からかけるようになるの

288 :デフォルトの名無しさん:2017/05/08(月) 17:24:11.64 ID:3+foG7x1
IDEに生成させるもんだろ

289 :デフォルトの名無しさん:2017/05/08(月) 18:34:23.43 ID:YdKqfeaH
確かに自動生成されるけど、慣れるといつのまにか暗唱できるようになってる。
という感じ。

290 :デフォルトの名無しさん:2017/05/08(月) 18:54:52.71 ID:6xooNmVM
IDEでもテキストエディタでも入力補完機能があるから
わざわざ覚える事でもない

291 :デフォルトの名無しさん:2017/05/08(月) 20:55:56.19 ID:epGpOLAg
>>287
なる。
1〜2秒ぐらいで打てるようになる。

292 :デフォルトの名無しさん:2017/05/09(火) 08:36:16.33 ID:wOo51I5g
まぁでも本で勉強してればmainメソッドの成り立ちなんてじっくりねっとり解説されるから嫌でも覚えちゃうよね

293 :デフォルトの名無しさん:2017/05/09(火) 12:44:24.36 ID:zagaBJts
画像解析のソフトを使うのにJava Library Pathを追加しないといけないのですがJavaをインストールした後の最初から躓いています(;;)
https://github.com/qupath/qupath/wiki/Working-with-MATLAB
この真ん中あたりに書いてある
Option #2: Control MATLAB from inside QuPath
-- Add MATLAB libraries to QuPath's Java Library Path
で,JVMOptionsをどうやって作ったらいいかわかりません

下記のページの最後「パスの設定は完了」ってところまでやったんですが..
http://techfun.cc/java/windows-jdk-pathset.html

関係ないソフトでてきてごめんなさい

294 :デフォルトの名無しさん:2017/05/09(火) 12:49:33.75 ID:zagaBJts
Win7 64bitです

295 :デフォルトの名無しさん:2017/05/09(火) 16:18:51.10 ID:iKf74YDS
>>293
なにがしたいのかわからん
そのソフト使いたいだけならexe形式のインストーラあるからそれ使えばええやん?

296 :デフォルトの名無しさん:2017/05/09(火) 16:45:19.33 ID:dAYvtASF
スッキリわかるjava入門でどこJavaじゃダメだからコマンドプロンプトっていうのを使ってくれって書いてあったんだけど、正直よくわからないからそのままnetbeansぇ続けても大丈夫?

297 :デフォルトの名無しさん:2017/05/09(火) 18:01:00.16 ID:xhqm65zv
そんなあなたにpaiza.io

298 :デフォルトの名無しさん:2017/05/09(火) 18:28:25.96 ID:zagaBJts
>>295
説明不足でごめんなさい
この2つのソフト(コマーシャルのMATLABとオープンのQuPath)はどちらも独立して使えてはいるんですが,片方のソフトからもう片方のソフトを呼び出せる機能があってそのことが書いてあるのが最初に添付したリンクです.
QuPath内にあるQuPath.cfgをJVMOptionに移動させるのが最初のステップなのですがそのJVMOptionが作りかたがわからないのです.

299 :デフォルトの名無しさん:2017/05/09(火) 18:42:38.34 ID:wOo51I5g
大丈夫大丈夫
これからも正直よく分からないところはどんどん飛ばしていけ
そうすれば正直よく分からないところで悩む必要無くなるから

300 :デフォルトの名無しさん:2017/05/09(火) 19:45:49.93 ID:41He4fJz
>>298
そもそもそのページがMATLAB → QuPath(op #1)とQuPath → MATLAB(op #2)の両方書かれてるのは理解してるよな?
op #1はMATLAB側の環境を整えてる
同#2はQuPath側だな

んで問題の箇所は簡単に済ませるならjava.library.pathをQuPath.cfgの中に記述しろって書いてるだろ?
実際のファイル見てないからわからんが、テキストエディタで見れば最低でも[JVMOptions]の行はあるだろうから、その下に追記してやればいい
例で書かれてるのはMAC版みたいだから自分の環境に合わせて書き換えろよ

301 :デフォルトの名無しさん:2017/05/09(火) 20:00:45.39 ID:dAYvtASF
public class 素数判定 {
public static void main(String[]args)
{
int sum=0;
int a =new java.util.Scanner(System.in).nextInt();
System.out.print(a+"=");
int m=a;
boolean test=false;
for(int i=2;i<=a;i++){
if(a%i==0){
if(m!=a){
test =true;}
while(a%i==0){
a=a/i;
sum++;
}
if (sum!=1){
System.out.print(i+"^"+sum+"・");}
else{
System.out.print(i+"・"); }
sum=0;}
}
if (test==false){
System.out.println("\n"+m+"は素数です!");
}}}

書いてみたのだがすっきりしない
式の最後によけいな「・」が出てしまうし、iのループ中で一回でもtrueが出ればそのあとは判定しなくていいわけだし
改良点があれば教えてほしい

302 :デフォルトの名無しさん:2017/05/09(火) 20:18:00.56 ID:smTpNxH0
インデントおかしいし変数名分かりづらいし

303 :デフォルトの名無しさん:2017/05/09(火) 20:28:39.39 ID:/JePIrk9
>>301
trueになった時点でbreakしたら素因数分解できないでしょ

304 :デフォルトの名無しさん:2017/05/09(火) 20:32:53.06 ID:dAYvtASF
>>303
そう
だからtrueを判定する適切な場所がどこだかわからない

305 :デフォルトの名無しさん:2017/05/09(火) 20:42:22.15 ID:60ZWnyEc
100が素数かどうか調べる時は√100まで
つまり2〜10でええんやで

306 :デフォルトの名無しさん:2017/05/09(火) 20:45:33.38 ID:dAYvtASF
>>305
ルートを出してその整数部分だけ使えばいいのか
そういうの出来たっけ?

307 :デフォルトの名無しさん:2017/05/09(火) 20:51:57.55 ID:SmlWSda1
Math.sqrtの結果をintキャスト

308 :デフォルトの名無しさん:2017/05/09(火) 20:55:23.79 ID:dAYvtASF
>>307
なるほど!ありがとう

309 :デフォルトの名無しさん:2017/05/09(火) 22:29:03.24 ID:ivwxgVxg
>>301
「・」は出すように書いてあるからその通りに出てくるだけ

310 :デフォルトの名無しさん:2017/05/10(水) 01:27:24.94 ID:BYWHw2Iq
プログラミングっていうかゲーム作りって言ったらGUIとかアニメーションを使うのが一番に出て来ると思うんだけど、javaのコーディングでできるものなの?

311 :デフォルトの名無しさん:2017/05/10(水) 02:06:28.58 ID:qeZ1bcfg
>>301
4も8も素数と出るのだが・・・

312 :デフォルトの名無しさん:2017/05/10(水) 02:07:09.79 ID:qeZ1bcfg
>>310
できる。

313 :デフォルトの名無しさん:2017/05/10(水) 02:24:21.40 ID:k+Fw34TB
エラトステネスのふるい懐かしい

314 :デフォルトの名無しさん:2017/05/10(水) 02:25:43.59 ID:7vBaEDXu
いやエラトステネスの篩いま関係ないっす

315 :デフォルトの名無しさん:2017/05/10(水) 09:46:36.96 ID:BYWHw2Iq
>>311
そうなんだよね
自分もそれを投稿した直後に気付いた
If(m!=a)をif(m!=i)にしたら直った
累乗の数はそうなっちゃってたみたい



今はネットビーンズでプログラミングしてコンソール上で処理を表示させてるんだけど普通のアプリと同じようにダブルクリックして起動させるようにするにはどうしたらよいの?

316 :デフォルトの名無しさん:2017/05/10(水) 12:42:35.37 ID:3FTnTomt
>>315
jarファイルのMANIFEST調べろ

317 :デフォルトの名無しさん:2017/05/10(水) 13:21:55.97 ID:GZ1G5LqK
>>310
例えばMinecraftはJavaとOpenGLのライブラリを使って書かれている

318 :デフォルトの名無しさん:2017/05/10(水) 19:54:36.55 ID:39V1aTUU
>>293-300
MATLAB は、Python だろ

The Jupyter Notebook ( IPython )
ブラウザで、tmpnb

319 :デフォルトの名無しさん:2017/05/11(木) 16:34:47.91 ID:a7kjTynb


320 :デフォルトの名無しさん:2017/05/11(木) 16:36:18.38 ID:a7kjTynb
クラスのフィールドとかメソッドを書き換えられないようにfinalをつけるっていうけどソースコードそのものを渡さないとクラスが使えないだろうしfinalを外したりするのは自由にできてしまうのではないの?

321 :デフォルトの名無しさん:2017/05/11(木) 16:50:23.23 ID:eS2L0WVj
>>320
いいやコンパイルされたクラスにシンボル情報が付いてるからソース無くても使える

余談だかこれのせいで逆コンパイルしやすいそうな

322 :デフォルトの名無しさん:2017/05/11(木) 20:02:59.23 ID:90G5iBS0
継承について質問させてください
public class Parent{
public void hoge(){ System.out.println("p_hoge"); }
private void piyo(){ System.out.println("p_piyo"); }
}

public class Child extends Parent{
public void hoge(){ System.out.println("c_hoge"); }
public void piyo(){ System.out.println("c_piyo"); }
}

public class Main {
public static void main(String[] args) {
Child child1 = new Child();
Parent child2 = child1;
child1.hoge(); // c_hoge
child1.piyo(); // c_piyo
child2.hoge(); // c_hoge
child2.piyo(); // error: piyo() has private access in Parent
}
}

ここで、child2.piyo()がコンパイルエラーになるのは何故でしょうか
確かに型はParent型ですが、単にChildインスタンスへの参照を代入しただけなので
関係ないかと思ったのですが
実際child2.hoge()はChildクラスのhogeメソッドを実行してますし、Parentクラスの
piyoメソッドのアクセス制限をpublicにするとchild2.piyo()は「c_piyo」を出力します
あるいは Parent child3 = new Child();としても同じ結果でした
コンパイルの際、型情報はどういう順番でチェックされているのですか?

323 :デフォルトの名無しさん:2017/05/11(木) 20:24:14.54 ID:qSTwHBOZ
>>322
こんパイル時は単純に変数が何クラスなのかしか見てなくて、それの場合はParentクラスだからその定義を見てpiyo()メソッドはprivateだからエラーにしてるだけ。

324 :デフォルトの名無しさん:2017/05/11(木) 20:33:32.16 ID:90G5iBS0
>>323
なるほど、コンパイル時は型情報のみでチェックをして、中身は実行時に初めて見てるのですね
参考書の「実行時のインスタンスを想像しながらプログラムを書いてはいけない」という意味がようやくわかりました
ありがとうございます

325 :デフォルトの名無しさん:2017/05/12(金) 00:38:23.02 ID:55apZTWp
エクリプスやコマンドプロンプトから別ウインドウを開いてシンプルな折れ線グラフを表示したいのだけど、何をどうすればいいかわかりません。
swingとかいうのを使えばいいのでしょうか?

326 :デフォルトの名無しさん:2017/05/12(金) 02:22:52.66 ID:Otw8y3gH
System.exit(1);(数字は任意)はなるべく使わない方がよいのでしょうか?

327 :デフォルトの名無しさん:2017/05/12(金) 06:49:04.24 ID:84Td0x+H
>>326
その数字は終了ステータスと言って0以外だと異常終了したって扱いになるからちゃんとしたコマンドを作るなら使い分ける必要がある

328 :デフォルトの名無しさん:2017/05/12(金) 14:49:58.50 ID:LGrn4Vkx
メソッドの中カッコ(インデント)は改行しないで書くのが習わし?

あと、次の処理を行うまで2秒とか時間間隔を置くコードがあれば教えて欲しい

329 :デフォルトの名無しさん:2017/05/12(金) 15:28:45.71 ID:LGrn4Vkx
もう一個質問
クラスから作ったインスタンスって他でも利用できる?
メインでheroクラスのhを作ったとしてhのhpがあるメソッドによってデフォルトの100から50減ったとする
他のメインで呼び出した時hpが50減ったまま反映されてるのかな

330 :デフォルトの名無しさん:2017/05/12(金) 15:37:25.98 ID:LGrn4Vkx
つまり

public class main {
public static void main(String[]args){
wizard w =new wizard();
matango m=new matango('あ');
w.name="タカ";
w.attack(m);
w.fireball(m);
System.out.println(m.hp);
}
}
こういうコード書いてるんだけどこれだと毎回実行するたびに新しいmatangoが生成されてhpも全てリセットされちゃうんだ
メソッドで実行したこういう情報を保持しておきたい
他のメインメソッドで一番最後の行のmatango.m..hpをsystemoutしようとしたら変数が見つかりませんってなっちゃう

331 :デフォルトの名無しさん:2017/05/12(金) 16:17:48.87 ID:8okmpAdZ
実行時引数で受け取るor外部ファイルor共有メモリ
後何があるかな

332 :デフォルトの名無しさん:2017/05/12(金) 16:37:05.11 ID:QfK6Pl49
外部プログラムに情報を渡したいってこと?
いろんなとこで使うならDB保存でもすればいいんじゃないかな

333 :デフォルトの名無しさん:2017/05/12(金) 18:10:13.38 ID:80n6+mfo
Javaの公式リファレンスは
https://docs.oracle.com/javase/jp/8/docs/api/index.html
これしかないのでしょうか?

出来れば実際にメソッドを使った時の挙動も示してある物が見たいのですが、どこにも見当たらないもので・・・・・・

334 :デフォルトの名無しさん:2017/05/12(金) 18:18:07.13 ID:84Td0x+H
>>333
公式はそれだけ、クラス名やメソッド名でググるしかないよ

335 :デフォルトの名無しさん:2017/05/12(金) 18:22:29.06 ID:80n6+mfo
>>334
マジですか・・・・・・
プロの人はこれで動きが分かるのでしょうか

とりあえずはクラス名とメソッド名でググるようにします、ありがとうございます

336 :デフォルトの名無しさん:2017/05/12(金) 18:24:57.87 ID:84Td0x+H
Pythonのリファレンスとかが詳しすぎるだけで本来こんなもんだよ、(多分俺の読解能力が腐ってるせいで)意味不明だからソース読みにいったりすることがよくある

337 :デフォルトの名無しさん:2017/05/12(金) 18:28:04.48 ID:80n6+mfo
>>336
Rubyのリファレンスみたいなのを想像していたので戸惑いました・・・・・・
もし詳細な言語仕様が書かれた書籍などがあればそれも知りたいです

338 :デフォルトの名無しさん:2017/05/12(金) 18:28:26.99 ID:LGrn4Vkx
外部に渡すっていうより、 
public static void main(String[]args){}の中に一緒に記述してたらインスタンス(勇者)を作るのと敵と戦うが同時に起きてしまって、敵にHPを減らされてもまた同じメインを実行したら勇者のHPも最初からにりせっとされちゃうじゃない
ゲームで言うセーブみたいな機能ってjavaでどうやって実現するのかなってずっと気になってた

339 :デフォルトの名無しさん:2017/05/12(金) 18:42:20.75 ID:tAeUMPRn
>>330
matango m を new してるから生成される
matango型の変数をグローバル(?)なところに保存しておいて、どこかで new してそれを再利用しよう

340 :デフォルトの名無しさん:2017/05/12(金) 19:39:12.19 ID:8okmpAdZ
>>338
それもう外部ファイルに状態を保存しかなくね

341 :326:2017/05/12(金) 19:54:24.39 ID:Otw8y3gH
>>327
ありがとうございます。

この命令を使う是非についてもどなたか教えて頂けないでしょうか?

342 :デフォルトの名無しさん:2017/05/12(金) 20:50:18.79 ID:5vkuZfot
>>341
是非とは? 327が書いてる通りだと思うよ
必要なら使うし、いらないなら使わない

343 :デフォルトの名無しさん:2017/05/12(金) 21:02:08.92 ID:84Td0x+H
>>341
シェルスクリプト等のバッチ処理でコマンドが正常終了したとかの判定に使われるステータスだからそういう用途に使うならちゃんとしとけ、それ以外なら適当でいい

344 :デフォルトの名無しさん:2017/05/12(金) 23:25:25.16 ID:Otw8y3gH
>>342 >>343
例えば、ジャンケンをするプログラムです。
https://ideone.com/EK5omF
このように気軽に用いてよいでしょうか?

345 :デフォルトの名無しさん:2017/05/12(金) 23:29:51.49 ID:84Td0x+H
>>344
おk、UNIXのコマンドで実際にヘルプ出した後に1返すやつあるし

346 :326:2017/05/13(土) 01:04:29.17 ID:0v4JDuG/
>>345 >>他レスくれた方
ありがとうございました。気軽に使おうと思います。

347 :デフォルトの名無しさん:2017/05/13(土) 13:16:21.43 ID:nXg2xudY
あー。学校の課題かな?
これから switch 習うところみたいな。

348 :デフォルトの名無しさん:2017/05/13(土) 15:09:30.58 ID:nn66e6lH
>>347
>>326はプログラマ目指してる34歳発達の無職だよ
あんまり相手にしない方がいい

↓のスレの774とIDが一致

ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489809785/

↑と↓でトリップが一致

34歳、発達障害の無職ですが…5 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1492326920/

349 :デフォルトの名無しさん:2017/05/13(土) 15:20:15.97 ID:AEmw9vXq
Javaリファレンスを読み始めたのですが
フィールドのサマリーやメソッドのサマリーというのは一体なんなのでしょうか?
java.lang.Systemを見るとフィールドのサマリーの方は
System.[out]←これの事を説明しているのは分かったのですが
メソッドのサマリーの方は検討もつかず・・・・・・

350 :デフォルトの名無しさん:2017/05/13(土) 16:33:51.59 ID:nXg2xudY
>>349
サマリーって要約だろ?
それが何か?

351 :326:2017/05/13(土) 16:58:01.94 ID:0v4JDuG/
>>348
あー余計な事書かないでー。

なんかすいません、学生じゃないんです。
ここは速やかに返答が得られるので、使わせて頂いてます。

352 :デフォルトの名無しさん:2017/05/13(土) 17:03:10.28 ID:AEmw9vXq
>>350
あ、本当にただの要約なんですね
わざわざ「サマリー」で表記してあったので、てっきり特別な意味があると思ってしまいました・・・・・・

353 :デフォルトの名無しさん:2017/05/13(土) 17:38:29.56 ID:GZKqOPY+
>>352
Javaのリファレンスって、翻訳が直訳気味だから、英語の方読んだ方がマシな場合もあるよ

354 :デフォルトの名無しさん:2017/05/13(土) 22:39:40.42 ID:a+Yyd3LZ
今はmetbeansを開いてメインメソッドを書いて、ファイルの実行ボタンを押して起動させてるけど
ファイルをダブルクリックで開いたらこのアプリケーション起動、みたいなコマンドって作れる?
Fileクラスでオープン、そしてテキストファイルに書き込みとかは一応出来るようになった

355 :デフォルトの名無しさん:2017/05/13(土) 23:32:38.00 ID:GC0/nJum
それはOSの機能。
ファイルにアプリを関連付ける。

356 :デフォルトの名無しさん:2017/05/13(土) 23:34:07.61 ID:GC0/nJum
あと、ダブルクリックで起動するGUIアプリはJavaだとJarファイル作る。
作り方はググってくれ。

357 :デフォルトの名無しさん:2017/05/14(日) 09:13:39.78 ID:GiIrdLHV
NETBEANSなら自動でJarファイル作るけど、
自作のJarを継承したりするとJarの中にフォルダを作って入れてはくれないので、
やっぱり自分で作るかな

358 :デフォルトの名無しさん:2017/05/14(日) 17:33:23.51 ID:QSKs3vuK
>>354
>>316

359 :デフォルトの名無しさん:2017/05/14(日) 22:40:11.72 ID:neLc5GA+
トランプを作りたいのだが多次元配列で組み合わせようと思ったけど結局1をAにしたり11、12、13をJQKにしたり、
あとは例えば二枚のカードを合計するってなった時は2+3とかじゃなくてハートの2たすクラブの3っていう感じになって計算ができないんじゃ無いかってところで行き詰まってる
ネットで調べたらenumって出てきたけど最後に;を記述してないし使い方がよくわからないのだ

何か知恵を貸してくれないか

欲を言えばトランプの絵の中にそれら配列(もし配列を使うとしたら)の要素一個一個に当てはめる的な事もしたいけどそれはまた後で調べる、これは出来るかできないかだけでいいから教えてくれ

360 :デフォルトの名無しさん:2017/05/14(日) 22:41:34.73 ID:neLc5GA+
トランプのどんなゲームにも使えるカードクラスって簡単に定義可能なの?

361 :デフォルトの名無しさん:2017/05/14(日) 22:52:56.19 ID:ztp16LZQ
>>360
Suits列挙とNumber列挙、それらを持つCardクラス作るだけやん

362 :デフォルトの名無しさん:2017/05/15(月) 00:22:18.88 ID:F3iBT9nS
>>360
例えばハートの6とクラブの9を足して15にできる?多次元配列でint 部分の配列を取り出す事とかできるの?

363 :デフォルトの名無しさん:2017/05/15(月) 00:28:40.14 ID:oAljGLAm
>>362
二次元配列でも良いけど
そういうのだったらHashMap使った方が早くね?

364 :デフォルトの名無しさん:2017/05/15(月) 01:05:18.25 ID:F3iBT9nS
>>363
どうして?HashMapって配列番号を文字にしただけでしょ?

365 :デフォルトの名無しさん:2017/05/15(月) 01:14:15.51 ID:Hm7XRpaa
javaやってるのに多次元配列使う奴なんて見たことない
c言語じゃないんだから

366 :デフォルトの名無しさん:2017/05/15(月) 08:01:13.47 ID:iwHegv+w
HashMapは文字通り中にハッシュテーブルを持っててそれを利用して探索するから配列を探索するよりとても速い

367 :デフォルトの名無しさん:2017/05/15(月) 10:32:21.13 ID:WBt6bwRo
>>359
面倒なら数値だけでやればいいじゃん。内部では0〜51で値持っといて13で割った値が種別、13で割った余り+1がカードの番号みたいにして。

368 :デフォルトの名無しさん:2017/05/15(月) 14:11:56.96 ID:YV/XJMDJ
javaでif文を使って文字列か数字か判断する時の条件式って何?教えてくれ頼む!!

369 :デフォルトの名無しさん:2017/05/15(月) 15:05:38.35 ID:YV/XJMDJ
if(入力値 == String){
//処理
}else if {
//処理


上記のやり方じゃ駄目だよな?

370 :デフォルトの名無しさん:2017/05/15(月) 16:29:33.70 ID:oRDR+P6W
instanceof

371 :デフォルトの名無しさん:2017/05/15(月) 16:31:44.87 ID:+sV7Di0p
parseIntじゃだめですかい?
String input = "12345"

try
{
int i = Integer.parseInt(input);
} catch (Exception e) {

}

372 :デフォルトの名無しさん:2017/05/15(月) 16:59:39.84 ID:LmqNwbQD
>>368
入力値 instanceof Stringでおk

373 :デフォルトの名無しさん:2017/05/15(月) 17:03:33.71 ID:LmqNwbQD
>>368
間違えたすまん、371のやり方じゃないと

374 :デフォルトの名無しさん:2017/05/15(月) 17:11:06.15 ID:YV/XJMDJ
>>371 >>373
ありがとう。やっぱtry文でやらないと出来ないのか

375 :デフォルトの名無しさん:2017/05/15(月) 17:36:48.54 ID:9QbDhZRz
ルークregexを使え

376 :デフォルトの名無しさん:2017/05/15(月) 18:11:19.72 ID:Nyf5aX+C
1文字ずつ正規表現でチェックするとか

377 :デフォルトの名無しさん:2017/05/15(月) 21:23:38.19 ID:94d7jC/v
>>366
Hash mapって確かに原理はわかるんだけど、hash関数にキーを通して得られた数値をアドレスにすると、アドレス飛び飛びになってメモリ効率悪くなったりしないのかね

378 :デフォルトの名無しさん:2017/05/15(月) 21:32:58.19 ID:iwHegv+w
>>377
直接アドレスにしてるわけじゃない
中に連結リストが数個あって得られた数値ごとに範囲分けしてそのリストに振り分けてる
連結リストの長さだったか要素数だったかが敷居値を超えると連結リストの数を増やして再構築する
大体こんな感じで実装されてるからハッシュ値が飛び飛びなのは問題ではない、むしろそうなるように推奨されてたはず

379 :デフォルトの名無しさん:2017/05/15(月) 21:54:17.44 ID:tcwc+G1E
int n=1;
int[] nums={0,1,2};
nums[0]=n;
n=5;

nums[0]=?

1でいいんだよね…?

380 :デフォルトの名無しさん:2017/05/15(月) 22:28:53.11 ID:iwHegv+w
>>379
せやで、参照を書きかえてるだけだからね

381 :デフォルトの名無しさん:2017/05/16(火) 17:39:21.61 ID:hRmrFLEJ
jar ファイル作ってみたのだが
netbeans上でファイルを実行したらちゃんと動くのにフォルダからそのファイルの場所まで行ってダブルクリックしても何の反応もないのだが

ウインドウがポップアップされるはずなのに何も出てこない、どうして?

それと質問なのだがこの処理を実行したら次はこの処理が実行されるみたいなのって全てメインクラスに書くものなの?
プログラムを動かすにはメインメソッドが必要だって書いてあったんだけどたとえばドラクエで、このどうくつにはいったら今度は洞くつクラスに移るみたいな
そういうのって一つのメインメソッドに書ききれるのかなとか前からすごい疑問だった

すっきりJavaを読み終えた入門者だがもし足りないのなら次に読むべき本とかあったら教えてほしい

文法を理解できたようで、enumクラスっていう新しい用語を使ってみると、どこからそれを呼び出したらいいのかとか全く分からなくなってしまう

例えば、いろいろなゲーム、トランプとかテトリスとか、そういうののソースコードを一から全て解説してくれる本とかあったら助かる

とりあえず実践をしたいのだがどうやって学んだ事を応用していったらいいのか全く分からない

誰か助け船を出してくれ

382 :デフォルトの名無しさん:2017/05/16(火) 19:20:34.36 ID:vjuQQ4tJ
>>381
ながい

→ダブルクリック実行はJava関係無くOSでjar拡張子の実行設定してるかどうか

→main()云々は作ってみたほうが理解が早い
CUIでいいからtodoアプリ作ってみ?
1でタスク一覧、2でタスク登録、3でタスク削除の3機能
DBとか無しで、アプリ落としたらタスク全部消えてなくなる感じ
これ作ったらmain()で全部書けるかどうかわかるだろう

383 :デフォルトの名無しさん:2017/05/16(火) 19:57:51.53 ID:p+PjrRhB
>>381
スッキリのオブジェクト指向の所から読み直しつつ
自分でソースコード漁りしてみると良い
オープンソースで一杯転がってるぞ

384 : ◆QZaw55cn4c :2017/05/16(火) 20:51:07.12 ID:szD5YOp7
「テトリス入門」とかいう書籍を書いたら売れるかもしれないね

385 :デフォルトの名無しさん:2017/05/16(火) 21:51:28.05 ID:46vWVqfK
>>384
しかしゲームのやり方しか書いてなかったりしてw

386 :デフォルトの名無しさん:2017/05/16(火) 22:37:54.81 ID:wKnc2Dey
>381
jarのくだり以外は何言ってるのか全くわからない
大丈夫かお前?

387 :デフォルトの名無しさん:2017/05/16(火) 22:47:07.51 ID:enwqrWLT
大学のjavaの授業で指定されたエディタがメモ帳に毛が生えたようなやつで、スクリプト言語しか触ったことない身には辛い
javaはIDEで書くものだと聞いてたんだけど、強い補完機能使わないほうが身につくものなの?

388 :デフォルトの名無しさん:2017/05/16(火) 22:50:02.85 ID:wKnc2Dey
身につかないっていうかメモ帳は時間の無駄

389 :デフォルトの名無しさん:2017/05/16(火) 23:08:27.75 ID:hRmrFLEJ
それと、APIリファレンスの見方が分からないのだが
Arrayのなかのメソッドのequalsで
public static boolean equals(int[] a,int[] a2)
って書いてあったから引数を二つ書くのかなって思って
equals(配列A,配列b);
って書いてみたらエラーになって

配列A.euqals(配列B);にしたらエラーが出なくなった

メソッドってクラスの「インスタンス変数.メソッド」って書くのか?とか考えたけどそのあとの
sort()を見てみると普通に
sort(配列);でやったら実行できた
調べ方っていうかリファレンスの読み方がわからない

あとこれはAllayListのサマリーのやつだが
boolean add(E e)
リストの最後に、指定された要素を追加します

これの修飾子と型がbooleanだったのだがなぜvoidじゃないの?
true,falseの要素がないと思うのだが

390 :デフォルトの名無しさん:2017/05/16(火) 23:27:55.96 ID:wKnc2Dey
ひっでぇ文だな・・
学生かな

391 :デフォルトの名無しさん:2017/05/16(火) 23:53:20.25 ID:hRmrFLEJ
>>382
Jdkのbinファイルを設定するって書いてあったんだけどjdkファイルの中にbinが見つからない・・・

392 :デフォルトの名無しさん:2017/05/17(水) 00:11:58.28 ID:a2t4m9UZ
配列はややこしいね
Arrays.equals(a1, a2)とa1.equals(a2)は別物だよ
後者は参照先の比較って言ったらそこら辺はスッキリで詳しく書いてるから分かると思うけど
あと戻り値は必ず変数に入れなきゃいけない訳じゃない
今回のに関してはAllayListの親クラスのCollectionがaddでbooleanの戻り値を返すってなってるからそうなってるけどAllayListでは多分必ずtrue返すようになってる?分かんないけど
Setとかでbooleanの戻り値使いたいからそうなってるんだろうね

393 :デフォルトの名無しさん:2017/05/17(水) 00:19:21.93 ID:Cj0bDaOf
>>392
その辺りが物凄く理解できない
やっぱり経験積んで必要な場面に当たるしかないのかな

できれば最初から文法をマスターしたいと思うんだけど難しいのかな

394 :デフォルトの名無しさん:2017/05/17(水) 00:21:17.17 ID:EKDDBUyo
Javaのリファレンスはすげえ読み辛いのが辛い所だな
実際の挙動書いてないし

395 :デフォルトの名無しさん:2017/05/17(水) 00:45:10.55 ID:aIm9uZNt
JavaScriptやPHPのリファレンス見てると何でメジャーどころのJavaのリファレンスがこのレベルなんだ…って思っちゃう

396 :デフォルトの名無しさん:2017/05/17(水) 00:47:35.12 ID:EKDDBUyo
各クラスの挙動を知りたいなら
個人ブログかQiita辺りを探した方が早いっていう何とも言えない現状

397 :デフォルトの名無しさん:2017/05/17(水) 01:09:07.24 ID:KDFx7HS2
リファレンスを見た後、サンプル・例などで検索すれば?

398 :デフォルトの名無しさん:2017/05/17(水) 02:16:15.58 ID:PX1bjgD6
Locale locale = new Builder()
.setLanguage("ja")
.setRegion("JP")
.setScript("Latn")
.setExtension(Locale.UNICODE_LOCALE_EXTENSION, "ca-japanese")
.build();

普通は
インスタンス名.メソッド名()などのようにドットでつなげると思うのですが
上のようなソースは、なんていう機能なのでしょうか。
ググりたいので、キーワードを知りたいです。

399 :デフォルトの名無しさん:2017/05/17(水) 02:24:06.64 ID:fdwvTzQk
スーパーバイリンガルダブルスタンダードジェネラルアクセッサ記法です

400 :デフォルトの名無しさん:2017/05/17(水) 03:04:38.91 ID:KDFx7HS2
JavaScript, jQuery などで、よく使う、メソッドチェーン

a().b().c()

メソッドを、this を返すように作っておいて、つなげていく

401 :デフォルトの名無しさん:2017/05/17(水) 03:55:23.34 ID:rtSwMeCb
HashMapの中身をfor文で取り出す処理のメカニズムがよく分かりません。
どなたか説明してもらえませんか?
@キーの一覧を取得
A各キーについて、対応する値を取得
と書いてはあるのですが…。

402 :デフォルトの名無しさん:2017/05/17(水) 04:07:19.23 ID:gPdRTvOW
>>400
なるほどです。
戻り値が、自分自身だからチェーンに出来るんですね。
勉強になりました。ありがとうございます。

403 :デフォルトの名無しさん:2017/05/17(水) 05:09:57.57 ID:Cj0bDaOf
スッキリジャバの入門編も読めばさらに理解が深まるかな?

404 :デフォルトの名無しさん:2017/05/17(水) 05:10:53.79 ID:Cj0bDaOf
間違い、実践編

405 :デフォルトの名無しさん:2017/05/17(水) 07:04:43.87 ID:oji8uaFL
javaリファレンスはカタコトの日本語だからまだしも、
androidなんて英語だから意味不明

406 :デフォルトの名無しさん:2017/05/17(水) 08:22:36.48 ID:+tyn5AAd
>>401
古典かよw 今時そんな取り方しない
どうしてもやりたいならMap#keySet()調べてみ

ついでにMap#forEach()もな

407 :デフォルトの名無しさん:2017/05/17(水) 11:35:36.57 ID:Hln6Xg1O
ファイル開くときにcloseかtry-with-resourcesを忘れないってのはわかったんですが、
BufferedReaderとかScannerで標準入力からテキストを読み込むときもこれは必要ですか?

408 :デフォルトの名無しさん:2017/05/17(水) 12:12:09.07 ID:+tyn5AAd
>>407
原則として標準入出力は閉じてはいけない
そのプログラム中で二度と標準入力を使わないようなタイミングなら閉じてもいいが…やらないな

409 :デフォルトの名無しさん:2017/05/17(水) 12:24:57.57 ID:+tyn5AAd
一応、System.inの正体はこれな
new InputStream(new FileInputStream(FileDescriptor.in))

410 :デフォルトの名無しさん:2017/05/17(水) 12:32:10.78 ID:lfsZhYIw
>>407
不要だけどあってもいいんじゃね?

411 :デフォルトの名無しさん:2017/05/17(水) 12:51:21.54 ID:vBWq/bhA
無しだろ
最初から開いてるものだし
自分で開いたものなら閉じるべきだが
他人が開いたものを閉じるのは責務的に違うだろ

412 :デフォルトの名無しさん:2017/05/17(水) 13:18:19.80 ID:Cj0bDaOf
自分の好きな画像をguiで使うにはどうしたらいいの?

413 :デフォルトの名無しさん:2017/05/17(水) 13:21:39.19 ID:fdwvTzQk
好きな画像をGUIで読み込めばいい

414 :401:2017/05/17(水) 16:48:24.10 ID:rtSwMeCb
>>406
調べてみます。
ありがとうございます。

415 :デフォルトの名無しさん:2017/05/17(水) 23:44:07.57 ID:aIm9uZNt
int[] s = 条件式 ? {0, 1} : {1, 0};
って書いたら弾かれたんですがJavaは三項演算子を使っての配列の初期化は出来ないということですかね?

416 :デフォルトの名無しさん:2017/05/18(木) 00:37:28.69 ID:QINyhTse
オラクルで働きたいんだが雇ってくれんかな
java初心者だが素晴らしい言語だと思うんで

417 :デフォルトの名無しさん:2017/05/18(木) 00:43:40.92 ID:mIgvPrGJ
OpenJDKに貢献するのが一番の近道だと思うが
オラクルはそんなにいい会社じゃないぞ多分

418 :デフォルトの名無しさん:2017/05/18(木) 00:53:33.86 ID:gS0Z1nN7
>>415
int[] s = 条件式 ? new int[]{0, 1} : new int[]{1, 0};

419 :デフォルトの名無しさん:2017/05/18(木) 07:23:18.00 ID:mhJy8/8/
ArrayListを作るときよく入門書だと
List<String> list = new ArrayList<String>();
と書いてありますが、将来的にListとして扱う予定が全くない場合でもこう書くものですか?
とにかく広く受けとけばいいなら極論ジェネリクスも要らないですよね?
ArrayListで必要十分なところをListと書くのはどうも型安全から外れてる気がして抵抗があるのですが

420 :デフォルトの名無しさん:2017/05/18(木) 07:47:59.91 ID:hMdHD0v3
Listで必要十分

421 :デフォルトの名無しさん:2017/05/18(木) 07:58:02.36 ID:DonT+oLB
>>419
ArrayListで必要十分ってことはArrayListクラスで定義されたものを使ってるんだからListで書いたらダメだろw
あとArrayListをListとして使うことがないってのはありえない
なぜならArrayListはListを実装してるから

422 :デフォルトの名無しさん:2017/05/18(木) 08:25:23.87 ID:hXrMTvib
>>421
それはそうですね、すみません、言い方を間違えました
ArrayList固有の機能を使わない前提でないとこの問いは成り立たないですね
ただ拡張性を意図してないときにインターフェースで宣言するメリットがあるのだろうかと思った次第です

423 :デフォルトの名無しさん:2017/05/18(木) 08:55:42.22 ID:DonT+oLB
>>422
なぜ具象クラスではなくインタフェースなのかってことなら、英単語の意味のとおりインタフェースだから
この話が特に問題になりやすいのはメソッドシグネチャに使われるときと、クラスの特性を利用するときなんで、
メソッド内部のローカル変数として宣言/定義するだけで外部に影響なく使うならぶっちゃけ何でもいいよ

逆に言うと、影響が出るなら(特に)最上位のインタフェースを使ってはいけない
Map<String, String> m1() { return new WeakHashMap(省略); }
・このm1はヤバい。戻り値を普通のMapのように使ってると、GCでいきなりエントリーが消えたりする
・戻り値の型をWeakHashMapにするべき
Set<String> s1() { return new TreeSet<String>(); }
・これもヤバい。戻り値にset()すると勝手にソートされる
・戻り値の型をSortedSet(インタフェース)にすべき

424 :デフォルトの名無しさん:2017/05/18(木) 08:57:08.36 ID:X6c7i21D
汎用性も拡張性も皆無の個人レベルのゴミソースなら
いくらでもArrayListで型宣言すればいい

425 :デフォルトの名無しさん:2017/05/18(木) 08:59:24.71 ID:DonT+oLB
途中送信になっちゃった

上のような例外的なケースを除き、基本的な使い方しかしていないなら最上位のインタフェースで宣言すべき
それはコードを読む人に変なメソッドやクラス特性を使っていないから安心して使えるというメッセージになる
#バグとかはまた別の視点だよ?

426 :デフォルトの名無しさん:2017/05/18(木) 12:35:06.27 ID:hXrMTvib
>>425
詳しくありがとうございます
出来る限り最上位のインターフェースで宣言した方が安心感があるのですね
例えば(あまりないと思いますが)addとforEachしか使わないなら
ListよりCollectionで宣言した方がいいということですかね

インターフェースだけでなくクラスも同様に、出来る限りObjectクラスに近い方がいいのでしょうか
例えばListに数字を入れるならList<Integer>よりList<Number>の方がいいですか?

427 :デフォルトの名無しさん:2017/05/18(木) 13:06:42.91 ID:DonT+oLB
>>426
そういうのをやりすぎって言うんだよ
自分で書いてて不親切というか不便だと思わない?
CollectionやNumberのJavadoc読んでみ

428 :デフォルトの名無しさん:2017/05/18(木) 13:26:08.84 ID:hChOTcwf
コードによるんじゃ

429 :デフォルトの名無しさん:2017/05/18(木) 13:27:02.92 ID:hChOTcwf
>>423
setは順番を保証しないから良くないか?

430 :デフォルトの名無しさん:2017/05/18(木) 13:30:10.52 ID:hChOTcwf
>>419
.netはlistが実装を持ってるからその指摘は的を得ていると思う

431 :デフォルトの名無しさん:2017/05/18(木) 13:30:43.70 ID:7OpOK0t2
なんで.NETの話してんの?

432 :デフォルトの名無しさん:2017/05/18(木) 14:12:31.44 ID:QINyhTse
ArrayList<String> list = new ArrayList<>();

普通に上記のような書き方でも大丈夫ですか?
どう違うのかな…糞初心者が便乗で失礼しました。

433 :デフォルトの名無しさん:2017/05/18(木) 14:42:56.14 ID:DonT+oLB
>>429
setの例は確かにまずかったね
実際やってみるとわかるけどさ、SortedSetに突っ込むものはComparable実装してないと実行時例外起きるのよ
Stringは実装してるからいいけど例えば自作のComparable実装してないクラスを突っ込むSetだと死ぬ

434 :デフォルトの名無しさん:2017/05/18(木) 16:08:06.15 ID:YsT8kXyi
>>427
最大限の抽象化を目指しつつ、必要に応じて落としどころに着地させる技術が必要なのですね
何となくわかりました。ありがとうございます

435 :デフォルトの名無しさん:2017/05/18(木) 17:27:32.89 ID:X6c7i21D
中途半端に理解力の悪い馬鹿だね君は
特定のインターフェースを受け皿にするのは意味があるからやってるんだから
君のような馬鹿は凡例に倣っておまじないのように真似して使ってればいいんだよ

436 :デフォルトの名無しさん:2017/05/18(木) 18:04:44.47 ID:pcJKb7uP
>>431
ベタージャバ

437 :デフォルトの名無しさん:2017/05/18(木) 18:07:21.85 ID:pcJKb7uP
>>435
listは意味なくない?

438 :デフォルトの名無しさん:2017/05/18(木) 18:10:00.52 ID:pcJKb7uP
>>432
おけ

439 :デフォルトの名無しさん:2017/05/18(木) 18:11:30.15 ID:pcJKb7uP
>>433
なるほどねー

440 :デフォルトの名無しさん:2017/05/18(木) 19:53:57.62 ID:YsT8kXyi
>>435
わかりました
初心者はあまり疑問に思わずにとにかく慣れた方が良さそうですね
もうちょっと詳しくなってから改めて考察します

441 :デフォルトの名無しさん:2017/05/18(木) 20:45:03.53 ID:41k9t0yi
paizaってサイトいいですか?

442 :デフォルトの名無しさん:2017/05/18(木) 21:28:09.31 ID:6GwfJscL
>>441
34歳には向いてません

443 :デフォルトの名無しさん:2017/05/18(木) 21:32:18.96 ID:mhJy8/8/
paizaっつーか競技プログラミングにJavaは相性悪くないですかね?

444 :441:2017/05/18(木) 23:50:40.17 ID:41k9t0yi
34歳板の住人以外の方からのレス、お待ちしています。

>>443
競技プログラミングなんですか?誰が速いとか競うんですか?

445 :デフォルトの名無しさん:2017/05/18(木) 23:56:50.39 ID:GHcWpog8
>>444
34歳板って何?
スレチにつき誘導

【CodeIQ】コーディング転職 2社目【paiza】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1495051565/

446 :441:2017/05/19(金) 00:51:55.16 ID:os6zJ8mg
>>445
スレ違いでしたか、すいませんでした。
リンクありがとうございます。

447 :デフォルトの名無しさん:2017/05/19(金) 04:01:57.36 ID:7cLMvP3Z
画像を読み込み、それにスタンプを張り付けて保存するGUIツールを作っています。
JFrameの左側にはコントローラーとして動作するJPanel、右側には読み込んだ画像とスタンプを表示するJPanelを配置しています。
コントローラーの操作によって画像を新しく読み込むたびに右側のJPanelを破棄し、新しいJPanelを生成するようにしたいのですが
これを実現するのに今考えているのは、コントローラーのインスタンスのフィールドにJFrameへの参照を格納しておき
コントローラーのイベントリスナーで新規読み込みを受け取ったら、JFrameからJPanelをremove()、ついでnewする、というものです。

448 :デフォルトの名無しさん:2017/05/19(金) 04:05:15.30 ID:7cLMvP3Z
続きです。

JPanelを再生成するためだけに3つのクラスをまたぐ、というのがどうもスマートに思えません。
可読性やメンテナンス性も悪い方法だと思うのですが、これ以外に良い方法が思いつきません。
もっと良い方法があるのか、それともそもそもの構造が悪いのか、どうかアドバイスをお願いします。

449 :デフォルトの名無しさん:2017/05/19(金) 04:40:07.52 ID:Yy4p2hUQ
>画像を新しく読み込むたびに、
>右側のJPanelを破棄し、新しいJPanelを生成する

一々、パネルの破棄・生成を繰り返さなくても、
画像を再読み込みすれば、良いのでは?

has-a だろ。
フレームは、複数のウィジェット(UI コンポーネント)を持つ

フレームの作成(JFrameクラス)
https://www.javadrive.jp/tutorial/jframe/

450 :デフォルトの名無しさん:2017/05/19(金) 04:58:05.99 ID:7cLMvP3Z
ありがとうございます。

右側のパネルは、JPanelを継承したクラスのインスタンスで、読み込んだ画像の表示やスタンプの情報の保持を行っています。
画像を新しく読み込む場合、それらの情報のクリアもする必要があるので、パネル自体を破棄し再生成したほうが楽ではないかと思ったのです。
それよりも、すべての情報をクリアするメソッドを用意しておき、画像読み込みと同時にそれを呼ぶようにすべきでしょうか?

451 :デフォルトの名無しさん:2017/05/19(金) 06:24:16.60 ID:Yy4p2hUQ
厳密に言えば、パネルの破棄・生成を繰り返すのは、
GCの仕事が増えるだけで、無駄だけど、

回数が少ないのなら、やりやすいようにすればいい

452 :デフォルトの名無しさん:2017/05/19(金) 07:19:36.73 ID:TEDPcFuO
>>450
すべての情報をクリアするって書いてるけど、クリアするのは画像の情報のリスト1つだけだろ?
もしかして継承したパネルの中にバラバラに情報もたせてる?

453 :デフォルトの名無しさん:2017/05/19(金) 07:56:58.28 ID:QxcdFIRu
3つのクラスをまたぐっていうのは、左JPanel内で
this.jFrame.rightJPanel = new RightJPanel()
みたいなことをしてるのかな?

JFrameにreadNewImage()を作って右JPanelのnewとかの処理はそこでして
左JPanelはreadNewImage()を呼び出すだけでってのはどう?

454 :デフォルトの名無しさん:2017/05/19(金) 08:37:45.48 ID:Yy4p2hUQ
左右のパネルが、相互に依存したら、ダメ

親 → 左の子
親 → 右の子

あくまでも、親から働きかけるようにする。
つまり、階層構造を浅くする

そうしないといずれ、スパゲッティ・泥団子のように密結合し、手に負えなくなる。
設計の基本は、疎結合

455 :デフォルトの名無しさん:2017/05/19(金) 09:09:28.77 ID:bDipVMhT
極力一元管理

456 :デフォルトの名無しさん:2017/05/19(金) 09:59:04.74 ID:UcTeaZgR
上司を通さず別部署に仕事頼んじゃうのはまずいみたいな話か

457 :デフォルトの名無しさん:2017/05/19(金) 15:02:46.01 ID:7cLMvP3Z
>>451
そうなんですか・・・
やろうと思えば何度でも再読込はできるので、この方法はやめておきます。

>>452
パネルのフィールドとして、画像の縦横サイズ、スタンプのインスタンスなどを持っています。

>>453
それです。
コントローラーからの操作はすべてJFrameの持つメソッドから行うようにする、ということでしょうか?

458 :デフォルトの名無しさん:2017/05/19(金) 15:27:47.14 ID:V7EPUvXw
Javaだけで2chのスレ・レス取得、スレに書き込みできるのでしょうか?

459 :デフォルトの名無しさん:2017/05/19(金) 15:39:32.26 ID:gmSWrJbX
Javaだけで作られた専ブラが既にある、後は分かるな?

460 :デフォルトの名無しさん:2017/05/19(金) 15:53:27.22 ID:TEDPcFuO
>>457
そういうのはパネルのフィールドにばらまいてはダメなやつだよ
パネルは入れ物であって中身は中身でまとめて別に管理しないと

ついでに言うと、読み込んだ画像とスタンプは同じもの
読み込んだ画像って、ユーザが選択して重なり具合が常に最背面になってるスタンプだろ?
パネルにはList<ImageInfo>みたいなものを持たせて、Listの中身を並び順で画像表示するような設計でいい気がする
リセットはListを空にして再表示だし、複数スタンプもListに追加して再表示で終わるだろ

461 :デフォルトの名無しさん:2017/05/19(金) 15:59:47.29 ID:V7EPUvXw
>>459
あったんですね
thx

462 :デフォルトの名無しさん:2017/05/19(金) 16:28:12.16 ID:7cLMvP3Z
>>454
おっしゃるとおりだと思います。
現に、現在進行形で泥団子化しているような気がします。
自分でもなんとかしたいと思っているのですが、今まで手続き型のやり方でお茶を濁してきたツケで、オブジェクト指向的な考え方に馴染めず困っています。
例えば、左のパネルを操作して右のパネルに表示されている画像上にスタンプを追加する、というような操作を考えたとき、どのように実装すればいいかこんがらがってしまって・・・
教えてくれとは申しませんので、オブジェクト指向で書かれたGUIアプリケーションのサンプルソース集などはないでしょうか。

463 :デフォルトの名無しさん:2017/05/19(金) 16:40:46.85 ID:7cLMvP3Z
>>460
なるほど、画像やスタンプの情報もオブジェクトに閉じ込めてしまうのですね。
確かにそのようにすれば初期化や並び順管理も容易にできそうです。
今は画像上のマウスポインタのx,y座標を保存する変数などもバラバラになっているのですが、これもオブジェクトとして扱えば良いですね。
どうもありがとうございます。

464 :デフォルトの名無しさん:2017/05/19(金) 16:54:03.15 ID:8fy8h9zZ
>>461
ちなみにV2Cってやつ

465 :デフォルトの名無しさん:2017/05/19(金) 18:11:40.44 ID:V7EPUvXw
>>464
どうもです

466 :デフォルトの名無しさん:2017/05/19(金) 19:01:25.59 ID:UcTeaZgR
>>464
V2Cは今では2chへの書き込みできないよな。
したらばとかの2chに似ている掲示板では書き込みできるが。

467 :デフォルトの名無しさん:2017/05/20(土) 12:30:03.29 ID:MUxe8l0w
パッケージ名とクラス名を同じにしないといけないってなんで?
調べても出て来なかったし、実際違う名前にしてみても問題なく動いた

468 :デフォルトの名無しさん:2017/05/20(土) 14:15:46.69 ID:PoJQGONs
>>467
クラス名とファイル名じゃないか?

469 :デフォルトの名無しさん:2017/05/20(土) 15:40:52.53 ID:MUxe8l0w
>>468
ああごめん
そうだった
でも結局それでも動いた

470 :デフォルトの名無しさん:2017/05/21(日) 17:41:03.62 ID:yzZ9l0t7
どうでもいいことかもしんないけど、is○○って、boolean型を返すメソッド名のみに使うべき?
boolean型の変数名に使うのはNG?

471 :デフォルトの名無しさん:2017/05/21(日) 17:57:08.86 ID:1QefLJTZ
>>470
OK、Javaはメソッド名とフィールド名を区別するから関係ない

472 :デフォルトの名無しさん:2017/05/21(日) 19:27:03.36 ID:wfwMepb4
>>471
動くか動かないかではなくて、命名規則的に好ましいか好ましくないかを聞きたいです

473 : ◆QZaw55cn4c :2017/05/21(日) 19:30:34.94 ID:pUWFtSb1
悪くはないと思うよ,嘘ついているわけじゃないし

474 :デフォルトの名無しさん:2017/05/21(日) 19:38:17.39 ID:LHr6gtTw
人によるといわれたらそれまでなのですが、三十代プログラミング経験無しが業務で使えるようになるにはどれくらいかかると思いますか?

475 :デフォルトの名無しさん:2017/05/21(日) 19:47:45.48 ID:zNfd0kUp
出来るからって区別しないのはキモい。
日本語で変数書いても悪く無いけど、キモいでしょ。
俺俺ルールならメソッドはisXXX。
変数やフィールドはXXXflgとかXXXflagとかにしてたな。

bool型の変数やフィールドにこう付けろって慣習はJavaは無かった気がする。
Cだとflgやflagで付ける慣習(ってほどでも無かったけど)あったから、おいらはJavaでもそうしてただけだが。

ずっとずっと昔の話だが。。。

476 :デフォルトの名無しさん:2017/05/21(日) 19:48:50.69 ID:RUGjRrqs
>>474
スレチ
てゆうか君>>441とか>>348の人でしょ
なんでJavaスレでそんな質問するんだよ
スレタイ読める?
ここはJavaの初心者スレであってネット初心者スレではないんだけど

477 :デフォルトの名無しさん:2017/05/21(日) 19:49:58.64 ID:Ku4JySDo
人によるし業務によるとしか
なんの根拠も無いけど半年を目安にして貰ったら良いんじゃないかな

478 :デフォルトの名無しさん:2017/05/21(日) 20:00:57.93 ID:zNfd0kUp
>>474
まあ長くて一年で才能ある人は何かしらゲーム作れてるよ。
ジャンケンとかの簡単なのじゃなくて格ゲーみたいなの。
具体的には同級生がそう言う人種。
2-3ヶ月で作れてた気もするが。

一年で出来ない奴は、おいらみたいに10年経ってもショボいツールしか作れない。

479 :デフォルトの名無しさん:2017/05/21(日) 20:36:10.10 ID:KT6Xsd7k
>>476-478
申し訳ありません。
業務と平行しながら勉強してるのでここでいいかなと思いまして。

なかなか身に付かず焦って質問してしまいました。半年から一年を目処に頑張ります。

480 :デフォルトの名無しさん:2017/05/21(日) 21:17:08.99 ID:8VZiX6Z0
>>479
次からはこっちで質問すると良いよ。

スレ立てるまでもない質問はここで 147匹目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1490436082/

481 :デフォルトの名無しさん:2017/05/22(月) 08:09:37.82 ID:rV93qz9q
Windows+Java環境下でFFTを計算したいのですが感染性が無く再配布可能なライセンスのライブラリってありますか?

482 :デフォルトの名無しさん:2017/05/22(月) 09:22:38.69 ID:4kDceHI4
>>481
ググったらファイナルファンタジータクティクスが出てくるぞ?
それの何を計算するんだ?(笑
とか言われないように略称じゃなくてきちんと書けやアホ

あとなぜライセンスにこだわるんだ?
作ったもので金とるからって理由なら調査費用くらい惜しむなよ

483 :デフォルトの名無しさん:2017/05/22(月) 09:29:07.58 ID:mjjAkcu0
高速フーリエ変換通じないのは流石に通じない方が悪いし、通じない奴は質問の対象者じゃないんだから黙っとけよ

484 :デフォルトの名無しさん:2017/05/22(月) 10:30:45.35 ID:1JJhboIc
プロゲートで無料のぶんだけひととおりやったんですがこんな単純なものだけで組み合わせたら色々できるの?

485 :デフォルトの名無しさん:2017/05/22(月) 10:57:24.88 ID:cucl6upm
プログラミングは言語は何であれアイデアや応用の世界だからな

486 :デフォルトの名無しさん:2017/05/22(月) 11:14:41.72 ID:tvdR/xt5
「アホ言うやつがアホ」という言葉がまた証明されたようだな

487 :デフォルトの名無しさん:2017/05/22(月) 12:09:31.25 ID:P/AfA+PI
>>482
そんなこと言うやつがクソだろ

488 :デフォルトの名無しさん:2017/05/22(月) 14:14:19.86 ID:1JJhboIc
難しいものを作るには難しいプログラムが必要じゃなくて簡単なものの組み合わせ方って言うことなの?

489 :デフォルトの名無しさん:2017/05/22(月) 14:23:39.87 ID:cucl6upm
何をイメージして難しいとか言ってるんだ?

490 :デフォルトの名無しさん:2017/05/22(月) 14:53:57.12 ID:d6K1UVaP
ま、そうだな。難しい漢字みたいなものだ。
分解すると一つ一つは簡単なカタカナみたいなやつでしかない。

491 :デフォルトの名無しさん:2017/05/22(月) 16:08:03.03 ID:3W7nNBo7
難しいものってのが何なのかによるんじゃないかね
計算量が膨大なものならそれなりに難しいアルゴリズムも必要になるだろうし
Javaでそこまで踏み込むかはわからんが

492 :デフォルトの名無しさん:2017/05/22(月) 16:23:53.42 ID:PfanrHfD
>>481
これなんかどう?
http://hp.vector.co.jp/authors/VA046927/fft4gjava.html

493 :デフォルトの名無しさん:2017/05/22(月) 19:43:15.47 ID:rV93qz9q
>>492
おぉ、ありがとうございます。試してみます

494 : ◆QZaw55cn4c :2017/05/22(月) 20:00:29.53 ID:Zgh5eQVH
>>482
FFTもしらないなんて‥

495 :デフォルトの名無しさん:2017/05/22(月) 20:02:50.44 ID:Xg9/hZFe
>>482
一番上に高速フーリエ変換のWikiが来るじゃねーかw

496 :デフォルトの名無しさん:2017/05/22(月) 20:10:28.65 ID:mjjAkcu0
Googleって検索者がよく調べてるものの関連のものが上に来るんだっけ?

497 :デフォルトの名無しさん:2017/05/23(火) 04:57:47.00 ID:ZEoEO5ey
FFT っていう単語を知らないなら、さすがにヤバイ、レベル

Matlab などの数値計算なら、Python

tmpnb
Jupyter Notebook (IPython)

498 :デフォルトの名無しさん:2017/05/23(火) 19:41:11.76 ID:i368ua84
Rubyのpメソッドみたいに
変数の中身や配列の中身を手軽に確認できるメソッドって無いのでしょうか
特に配列の中身を確認する方法が分からず、デバッグをする際に苦労するのですが・・・・・・

499 :デフォルトの名無しさん:2017/05/23(火) 20:01:14.31 ID:nu8Noumz
>>498
Arrays#toStringもしくはArrays#deepToString使えばおk
RubyみたいにpはないけどIDE使えばsysoutとかsoutから補完できるぞい

500 :デフォルトの名無しさん:2017/05/23(火) 20:01:46.83 ID:0KCdNJNi
Arrays.toString(調べたい配列)をよく使うわ

501 :デフォルトの名無しさん:2017/05/23(火) 20:26:13.35 ID:nu8Noumz
そういやスタティックメソッドだから#じゃなかった

502 :デフォルトの名無しさん:2017/05/23(火) 20:52:26.34 ID:+maOq34X
日付と時刻を表示するプログラムを作ったのですが、時間の表示がおかしいです。
なぜでしょうか?
https://ideone.com/Osdsox

503 :デフォルトの名無しさん:2017/05/23(火) 21:00:51.52 ID:i368ua84
>>499
ありがとうございます
その二つを使ってチェックしていきたいと思います

>>502
デフォルトだと日本時間ではなく、グリニッジ標準時間 (GMT)になるので
時差の分ずれてると思われます

504 :デフォルトの名無しさん:2017/05/23(火) 21:02:43.60 ID:IEg1DOoE
>>502
IDEONEの鯖のタイムゾーンがGMT仕様だからじゃないかな、多分手元で実行すれば大丈夫

505 :デフォルトの名無しさん:2017/05/23(火) 21:03:25.21 ID:IEg1DOoE
あ、すまんこれシステムのタイムゾーン取ってるわけじゃないのか

506 :デフォルトの名無しさん:2017/05/23(火) 21:15:24.77 ID:RzWtz9Yc
ほんとだ
https://ideone.com/qKqvOz

507 :502:2017/05/24(水) 00:25:16.54 ID:PoyHH2+7
レスをくれた方、ありがとうございました。
>>506の方のリンクやスッキリJava実践編を参考に改良してみたいと思います。

508 :デフォルトの名無しさん:2017/05/24(水) 17:28:31.44 ID:rgjqqiZm
https://ideone.com/TgG170

配列の中身を拡張for文表示させようとした際に
上記のように上手く行かないのですが、なぜなのでしょうか?

509 :デフォルトの名無しさん:2017/05/24(水) 18:14:51.41 ID:oppUfTVj
>>508
System.out.println(i);

510 :デフォルトの名無しさん:2017/05/24(水) 18:51:24.14 ID:NmDuToTQ
>>508
その文脈でのiはループ変数ではなく配列のそれぞれの要素そのものだから、>>509の書き方をすればいい
まぁそもそもループ変数じゃないんだからiなんて名付けちゃいかんね
nくらいにしとくといいよ

511 :デフォルトの名無しさん:2017/05/24(水) 19:16:31.99 ID:rgjqqiZm
>>509>>510
ああ、ループ変数ではなく、そのまま要素になるんですね
混同してしまいました
勘違いしないようにもっと分かりやすい名前をつけるようにします

ありがとうございました!

512 :デフォルトの名無しさん:2017/05/24(水) 19:57:10.67 ID:2FV//qQH
拡張for文をちゃんと理解して
numsから要素取り出してるだけだから
iは1,2,3でnum[i]は2,3,範囲外例外になってるだけだよ。

513 :デフォルトの名無しさん:2017/05/24(水) 23:15:42.47 ID:CMr8dFBK
propertiesファイルを読み込んで、そこからenumを生成するようなことは可能ですか?
つまり

#Animals.properties
enums=DOG,CAT,HUMAN, ...

と書かれたファイルを読んで

enum Animals {
    DOG,
    CAT,
    HUMAN,
    ...

となるようにしたいのですが

514 :デフォルトの名無しさん:2017/05/24(水) 23:21:34.43 ID:0Qc+9z9K
   ∩___∩
   | ノ      ヽ
  /  >   ● |    ムリ☆
  |    ( _●_)  ミ
 彡、    |∪|   )
/      ヽノ //
ヽ|       /
 |       /
 ヽ /  /
  / /ヽ
(´_ /ヾ_)

515 :デフォルトの名無しさん:2017/05/24(水) 23:30:40.23 ID:CMr8dFBK
やはり無理ですよね・・・
ありがとうございました。

516 :デフォルトの名無しさん:2017/05/26(金) 09:43:02.44 ID:AcHukEBi
型のメソッドdatetime(Timestamp)は引数(Timestamp)に適用できませんって出るんだけどどうしたらいいのか教えてください

517 :デフォルトの名無しさん:2017/05/26(金) 12:02:24.51 ID:eKd8m2Nz
適用できないのでどうしようもありません

518 :デフォルトの名無しさん:2017/05/26(金) 12:47:00.31 ID:7lZclfT9
違うpackageのTimestampを引数に使ってるんじゃね?

519 :デフォルトの名無しさん:2017/05/26(金) 12:52:15.67 ID:R5Fz6uU5
ideoneにでもソース上げた方が早そう

520 :デフォルトの名無しさん:2017/05/26(金) 13:53:37.24 ID:AcHukEBi
>>518
うん、違うパッケージで書いたゲッター、セッターに値を入れようとしてる

521 :デフォルトの名無しさん:2017/05/26(金) 14:15:00.54 ID:eKd8m2Nz
アホの子かな?

522 :デフォルトの名無しさん:2017/05/26(金) 14:23:54.10 ID:AcHukEBi
ごめん、間違ってた同パッケージ内の他クラスに値を入れようとしてるんだ

523 :デフォルトの名無しさん:2017/05/26(金) 15:05:41.68 ID:AcHukEBi
解決しました。どうやらTimestampのimportが間違ってたみたい

524 :デフォルトの名無しさん:2017/05/26(金) 17:56:19.31 ID:jskRO0Qi
FFT の本を買って読むのが一番だと思うが、Java で出版されているのはあるのかな?
https://www.amazon.co.jp/dp/4789830322/

525 :デフォルトの名無しさん:2017/05/27(土) 05:57:17.98 ID:IXLLFPSU
テキスト読み始めて1ヶ月が経過した初心者なのですが
プログラムを書く練習の為にお題や解答等が
記載してある良いサイトがあれば教えて頂けないでしょうか。

526 :デフォルトの名無しさん:2017/05/27(土) 06:40:26.62 ID:I4+BI8Pi
>>525
AOJ

527 :デフォルトの名無しさん:2017/05/27(土) 17:51:11.88 ID:3U461hCt
新わかりやすいjava入門編というものを進めてきてオブジェクト志向に入り案の定つまづきました
そもそもクラスとメソッドというのがよくわかりません。色々なサイトを見ているとクラスというのはオブジェクトの設計書なる説明が目立ちます
HelloWorldなりif文なりをクラスの中に書いてきましたけど別にオブジェクトの設計書なんて作った覚えがなくてこれはどういうことかと
メソッド(=関数)がまとまったのがクラス(=プログラム)で、クラスがまとまってパッケージ(=大きなプログラム)になるくらいの認識だったのですが……

528 :デフォルトの名無しさん:2017/05/27(土) 18:03:31.28 ID:WiwmRK76
ただメソッドをまとめたものじゃなくてクラスのインスタンス内にはフィールドによる状態があるからね

529 :デフォルトの名無しさん:2017/05/27(土) 18:28:20.46 ID:5U21Fkdq
クラス=実在しない脳内の中の紙切れ。設計書でも何でもない
インスタンス=実在する紙切れ。いくらでも複製可能

530 :デフォルトの名無しさん:2017/05/27(土) 18:43:41.59 ID:5U21Fkdq
static修飾子=脳内の紙に思い描いただけでそれにアクセスすることができる魔法の言葉

つまりウンコ変数やチンコ変数またはマンコメソッドなどを
脳内で想像しただけで既に実在することになるが複製はできない

531 :デフォルトの名無しさん:2017/05/27(土) 20:45:17.11 ID:899ucGB1
>>526その他の方
525の人ではないですが、
日本語のサイトでは無いですかね?英語が読めないもので…。

532 :デフォルトの名無しさん:2017/05/27(土) 20:46:45.03 ID:WiwmRK76
AOJなら一部ページ除いてちゃんと日本語が用意されてるよ

533 :デフォルトの名無しさん:2017/05/27(土) 20:47:26.42 ID:bQ1clPq0
>>531
https://paiza.io/ はどうだったかな?前に問題解いた記憶があるんだが、答えはあったかどうか忘れた。

534 :デフォルトの名無しさん:2017/05/27(土) 21:20:33.59 ID:3U461hCt
>>528->>530
説明ありがとうございます。さっぱり解らないのでやはりjavaは自分には早かったようです……

535 :デフォルトの名無しさん:2017/05/27(土) 21:37:32.99 ID:583uXQeo
プログラマで英語読めると読めないじゃ得られる知識に天と地ほどの差があるから、真面目に英語覚えた方がいいぞ。

536 :デフォルトの名無しさん:2017/05/27(土) 21:41:43.89 ID:HQTdzCti
>>531
>>348

537 :デフォルトの名無しさん:2017/05/27(土) 21:54:13.93 ID:WqZ7Atlq
>>531
会津大学が運営だぞ……さすがに日本語対応してることくらいは気づいてくれ

538 :531:2017/05/27(土) 22:33:43.16 ID:899ucGB1
レスをくれた方、ありがとうございました。

>>532
よく見たら日本語にできました、すいません。

>>533
このサイトも日本語にできますね。ありがとうございます。

>>535
単語を覚えるのが苦痛なんです…。

>>537
確かにu-aizu.ac.jpって書いてありますね。
URLに気付かないとは…自分自身に笑っちゃいました。

539 :デフォルトの名無しさん:2017/05/27(土) 22:45:08.47 ID:Cnbgg+tR
>>538
むしろ単語はコード読んでたら普通の人より知ってるだろ。。。

540 :デフォルトの名無しさん:2017/05/27(土) 22:50:09.90 ID:aR8Z7uvM
英語読めると海外サイトのQ&Aが原文で読めるっていうのが凄いありがたいからな
大概ググると海外で既に答えが出てる問題だったりするし

541 :531:2017/05/28(日) 00:55:35.48 ID:cBtiXtru
>>539
コードに出てくる単語には詳しくなっても、専門用語に関してはあんまり…。
記憶力に自信が無い方なので…。

>>540
そうですか、それはメリットですね。
でも今から英語をマスターするなんて俺には無理でしょうね…。

542 :デフォルトの名無しさん:2017/05/28(日) 00:59:02.60 ID:7JGA0U31
34歳、発達障害の無職ですが…6 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1495077839/

543 :531:2017/05/28(日) 01:12:07.04 ID:cBtiXtru
失礼します。

>>536 >>542
リンク貼るの止めてもらえませんか?ニーズも無さそうですし。

544 :デフォルトの名無しさん:2017/05/28(日) 01:18:18.20 ID:1i8XYM/R
問題とかアルゴリズムにやたら拘ってるけど
関数分割もできないレベルの奴がそんなもの追い求めても時間の無駄だって
ずっと教えてやってるのに一向に聞く耳持たないよなお前

545 :デフォルトの名無しさん:2017/05/28(日) 05:51:20.33 ID:oCI88hgR
>>541
マスターするというほどでなくても大丈夫。とにかくわからない単語が出てたらコピーしてすぐググれ。意味出て来るから。

546 :デフォルトの名無しさん:2017/05/28(日) 09:34:28.95 ID:7JGA0U31
>>543
参考にします。

547 :デフォルトの名無しさん:2017/05/28(日) 16:33:34.89 ID:x9tOFMEC
教えてやってんのに無理無理ばっかりじゃもう教える気にならんわ

548 :デフォルトの名無しさん:2017/05/28(日) 17:02:24.77 ID:JNmEYY0a
(´・ω・`)みんながおすすめしてたからスッキリわかるJAVA入門注文しました
これ分厚いけどがんばって読んだらプログラマーになれるの?
みんなはひと月ぐらいで読み終わるの?
http://i.imgur.com/eiBgULb.jpg

549 :デフォルトの名無しさん:2017/05/28(日) 17:15:31.02 ID:x9tOFMEC
少しプログラミングの経験があるなら1週間あれば読み終わる
ただ読むだけじゃ役に立たない 自分で実際に書いて動かしてみないと

550 :デフォルトの名無しさん:2017/05/28(日) 17:35:16.55 ID:3VcyGTAo
>>548
読むと言うよりは実際にソースコードを動かしながら勉強していく
ついでにIDEも導入して、実際に開発してる気分でやっていくとテンションが上がる上
IDEの使い方も理解できて一石二鳥

551 :デフォルトの名無しさん:2017/05/28(日) 17:50:43.69 ID:vFbXjviW
クラスがBTOパソコンのカタログスペックみたいなもんでメモリだのハードディスクの容量だの指定して注文して届いたPCがインスタンスみたいな理解したんですけど大丈夫ですかね
ただそうなると本でオブジェクト指向の手前までに載ってるプログラムもクラスってなんでクラスなんです?例えばただのHelloWorldとか
インスタンス生成しないならクラスである必要でないというかそもそもクラスじゃないんじゃないかと思うんですけれど

552 :デフォルトの名無しさん:2017/05/28(日) 17:52:43.55 ID:1i8XYM/R
スッキリはホントわかりやすいと思うわ
そこら辺のゴミみたいな入門書とは雲泥の差だから宣伝しなくても
口コミで勝手に売れて作者も印税ウハウハだろうな
元々ある程度Java触ったことある奴なら1日で読み終わる

553 :デフォルトの名無しさん:2017/05/28(日) 17:53:47.81 ID:JNmEYY0a
>>550
>>549
(´・ω・`)そうなんやー
じっさいにやりながらですね
がんばります

554 :デフォルトの名無しさん:2017/05/28(日) 18:00:25.93 ID:1i8XYM/R
HelloWorldが出力されてる時点でインスタンスが存在するんだが

555 :デフォルトの名無しさん:2017/05/28(日) 18:43:34.75 ID:QwjzxVOm
作家の座談会によると、
スッキリは、無名の著者が、2, 3年掛かって作ったとか聞いた

イラスト代とか、途方もなく、お金が掛かっているプロジェクト。
大赤字からスタートしてるんだろ

無名の著者で、売れるかどうかも、分からないような本だった

理由は知らないけど、スッキリの編集者は、転職したらしい

556 :デフォルトの名無しさん:2017/05/28(日) 18:53:19.68 ID:x9tOFMEC
>>554
mainメソッドにのみ記述した場合はインスタンス作成されませんが

557 :デフォルトの名無しさん:2017/05/28(日) 19:37:02.55 ID:1i8XYM/R
メインメソッドが既にインスタンスなんだが
バカなんだから思い込みだけでレスつけるなよ阿呆
インスタンスの定義が何かわかってんのかお前

558 :デフォルトの名無しさん:2017/05/28(日) 19:41:04.59 ID:wvAEkP6f
>>555
だから元を取るために必死にダイマしてるの?

559 :デフォルトの名無しさん:2017/05/28(日) 19:44:08.81 ID:rKdLC74L
>>557
知ったかで人を阿呆呼ばわりするのはどうかと
メインメソッドにstaticって付いてるのの意味分かってる?

560 :デフォルトの名無しさん:2017/05/28(日) 19:45:36.04 ID:x9tOFMEC
>>557
なんでいきなりキレられてるのか全然わかんないんだけど
メインメソッドがインスタンスになることはできないよ?

561 :デフォルトの名無しさん:2017/05/28(日) 19:47:27.86 ID:1i8XYM/R
クラスローダーがmainメソッドのあるクラスを読みこんだ時点で
mainメソッドがインスタンス化するんだよ阿呆
小学校からやり直して来いアホども

562 :デフォルトの名無しさん:2017/05/28(日) 19:50:14.15 ID:1i8XYM/R
メモリの概念すらわかってなさそうな馬鹿しかいないとかビックリだわ
HelloWorldは魔法の言葉か?w

563 :デフォルトの名無しさん:2017/05/28(日) 19:54:14.22 ID:rKdLC74L
メソッドがインスタンス化で草生えるわ、JavaScriptかってのw

564 :デフォルトの名無しさん:2017/05/28(日) 19:55:52.87 ID:tr4rluHU
>>560
Appクラスにmainがあるとしたら、mainはApp.classというひとつしか存在しないインスタンスのメンバーだよ

565 :デフォルトの名無しさん:2017/05/28(日) 19:55:55.36 ID:rKdLC74L
まあクラスオブジェクトをインスタンスって言うならそうだろうけどな

566 :デフォルトの名無しさん:2017/05/28(日) 20:03:51.11 ID:1i8XYM/R
インスタンスじゃなかったら何なんだよ?wwwww
メモリ上に実態がないのにアクセスできんのか?www
専門学校生レベルの奴はチンポでも弄ってろよ阿呆

567 :デフォルトの名無しさん:2017/05/28(日) 20:15:26.83 ID:qHRbOIzL
>>566
聞く前に自分で考える癖を付けようよ

568 :デフォルトの名無しさん:2017/05/28(日) 20:57:22.72 ID:VccFyu7h
>>554
自分の書いた部分以外では、な。

569 :デフォルトの名無しさん:2017/05/28(日) 21:04:50.30 ID:VccFyu7h
>>566
涙拭けよ

570 :デフォルトの名無しさん:2017/05/28(日) 21:35:45.78 ID:QPUrPhGM
Javaから入るのはよくないけどな。

571 :デフォルトの名無しさん:2017/05/28(日) 22:58:57.33 ID:vFbXjviW
>>554
new クラス名 ってやって初めてインスタンスができるのではないのですか

572 :デフォルトの名無しさん:2017/05/28(日) 23:00:44.44 ID:Y/jTFKWE
>>570
どういうところがよくないの?

573 :デフォルトの名無しさん:2017/05/28(日) 23:02:53.89 ID:Y/jTFKWE
>>571
ライブラリ内部でインスタンス作ってるケースも普通にあるからね
newを自分で書くときは、あくまで自クラスでインスタンス作るときの場合に使うってだけ

574 :デフォルトの名無しさん:2017/05/28(日) 23:08:25.60 ID:QPUrPhGM
>>572
コンピュータとオブジェクト指向プログラムが乖離しすぎているから。

575 :デフォルトの名無しさん:2017/05/28(日) 23:26:56.70 ID:6qJqAaY9
>>574
それJava云々じゃなくてオブジェクト指向自体に疑問を呈してるってことだろ?

576 :デフォルトの名無しさん:2017/05/28(日) 23:36:35.46 ID:wvAEkP6f
文脈的には単に初心者が手続き型プログラミングとオブジェクト指向型プログラミングを
一気に覚えようとするのは好ましくないくらいのニュアンスじゃないの

577 :デフォルトの名無しさん:2017/05/29(月) 00:27:00.16 ID:lFCv8yRy
オブジェクト思考言語が手続き型言語ではないという説は初めて聞いた

578 :デフォルトの名無しさん:2017/05/29(月) 00:45:21.43 ID:KqfCApyh
>571
インスタンスって言葉に惑わされてるだけ
mainメソッドという処理を行うためのstaticな領域は既に存在する
その中で書かれた処理は順次あらたに領域が確保されていくだけ
処理を行うための領域が存在したないただのクラスはnewして初めて領域が確保される

579 :デフォルトの名無しさん:2017/05/29(月) 01:13:01.57 ID:JZ+YO2S6
staticの概念が難しい・・・・・・
言われてる事は分からんでも無いんだけど、理解出来てる気がしない

580 :デフォルトの名無しさん:2017/05/29(月) 08:27:06.94 ID:C0b3SugI
int[]よりArrayList<Integer>の方が型安全ですが、固定長なら配列の方が高速に動作しますよね?
普通はどちらを取るものですか?

581 :デフォルトの名無しさん:2017/05/29(月) 08:51:58.84 ID:BkgkdtpP
型安全とは?

582 :デフォルトの名無しさん:2017/05/29(月) 10:09:34.31 ID:krahuleL
>>578
入門者にstaticとか領域とか申されましても……
待ってくれたまえ ことばの洪水を ワッと いっきに あびせかけるのは

583 :デフォルトの名無しさん:2017/05/29(月) 10:17:19.00 ID:QVs41rDP
>>581
<>でクラス指定しとくと他のクラスのインスタンスへの参照入れられなくなるってことじゃね?

584 :デフォルトの名無しさん:2017/05/29(月) 10:30:59.28 ID:SygdXyO8
>>580
普通はどちらかのみ使うではなく、用途によって使い分けるじゃね?

585 :デフォルトの名無しさん:2017/05/29(月) 11:00:42.17 ID:xnEvchj+
>>584
Effective Javaでは配列はあまり推奨されてないようなので、実際のところどうなのかなと思いまして

586 :デフォルトの名無しさん:2017/05/29(月) 12:47:36.03 ID:wRfxx2EJ
>>580
なにをもって配列の方が速いって言ってるのか知らないけど、ArrayListも中身は配列だからw

587 :デフォルトの名無しさん:2017/05/29(月) 13:17:24.11 ID:xpUPwHwO
>>585
しかし ArrayList は文字通り中で配列使ってるよ。
なんだったらソース見てみな。

588 :デフォルトの名無しさん:2017/05/29(月) 13:17:59.69 ID:xpUPwHwO
か、かぶった。リロードし忘れた。とほほ。

589 :デフォルトの名無しさん:2017/05/29(月) 13:18:05.22 ID:6ZDN/iGx
>>586
コレクションだよな。

590 :デフォルトの名無しさん:2017/05/29(月) 13:20:40.27 ID:6ZDN/iGx
>>586
配列のようにしか使わないなら配列の方が早いだろう。

591 :デフォルトの名無しさん:2017/05/29(月) 13:54:37.23 ID:WVHDxzCz
「スッキリわかるJava入門」インプレス
昨日購入しまして、早速取り組み開始。
130P程読み進み、例題で「数あてゲーム」を書けってのがありまして、
それを何も見ないで考えて書いて出来上がり走った時の達成感
[ヵンド→]*☆*ヽ(*´Å`*)ノ*☆*[ウレ千→]
この気持ち忘れず最後まで読破します。

チラ裏失礼

592 :デフォルトの名無しさん:2017/05/29(月) 15:08:34.74 ID:qlUWK/sD
次はデバッグの楽しさだなw

593 :デフォルトの名無しさん:2017/05/29(月) 16:59:09.15 ID:npKTVoCQ
普通のArrayよりArrayListばっかり使ってるわ
可変長の配列の方が個人的にイメージしやすいし

普通の配列は書く時は直感的だけど、ArrayListでは使えるメソッドが使えなかったりするから不便でしょうがない

594 :デフォルトの名無しさん:2017/05/29(月) 18:40:35.39 ID:s4hVHfzU
お疲れ様です。
今度、springでwebアプリケーションの業務
をすることになり2週間程学習をしているの
ですが全く理解出来そうにありません。

自学しようにも、インターネットの情報は
少なく感じますし、spring究極入門という本も
買ってみたのですが、何ヶ月かかるか
わからないほど自分には難しいです。

どのように学習を進めて行けばいいでしょうか?

595 :デフォルトの名無しさん:2017/05/29(月) 19:00:48.24 ID:hK31qQAt
基本的な事という事を承知の上で質問いたします
nextInt();で生成した乱数が 0〜10だった場合はこの処理をそうでなかったら10〜20かチェックそうでなかったら...
という処理は可能なのでしょうか...?
r = New Random()
for(int s = 0; 10 <= s; s++){
if(s = r){
//処理...
}
}else for(...){
//処理
}
と書きたいのですがelse for が構文エラーになってしまいます....
何か他の方法があるのでしょうか

596 :デフォルトの名無しさん:2017/05/29(月) 19:16:34.05 ID:JOJKTbqr
>>595
なんでforループになるのかわからん
書いてることそのまま翻訳したらこうならねえ?

int r = new Random().nextInt(21);

if ( r <= 10 ) { /* ... */ }
else if ( r <= 20 ) { /* ... */ }

597 :デフォルトの名無しさん:2017/05/29(月) 20:58:21.92 ID:KqfCApyh
正直フレームワーク系の本って買うだけ金と時間の無駄
最低限アノテーションの使い方とインジェクションの作法覚えて
ググりながらspringプロジェクトをローカルで作成して適当に
簡単な認証システムでも作ってりゃ覚えるだろ
springつってもいくつか種類あったと思うけど

598 :デフォルトの名無しさん:2017/05/29(月) 22:54:19.91 ID:hK31qQAt
>>596
すいません説明不足でした、100ならこの景品、80〜99ならこの景品、60〜79ならこの景品、というようなコードを書きたいのでそれでは思い描いた通りにならないのですよ...
for(int s = 0; s <= 100; s++){
if(r = s){

//処理

}
}else for(int t = 101; t <= 200 ; t++){

//同上
}
というように書きたいのです...

599 :デフォルトの名無しさん:2017/05/29(月) 23:15:03.72 ID:npKTVoCQ
>>598
そもそもelse forなんて構文無いだろ
書くならこれで良いだろ?

package test;
import java.util.Random;
public class Main {
public static void main(String[] args){
Random rand = new Random();

int n = rand.nextInt(100);
System.out.println(n); //デバッグ用に表示

if(70 <= n && n <= 100){ //70~100まで大当たり
System.out.println("大当たり!");
}else if(40 <= n && n < 69){ //40〜69まで中当たり
System.out.println("中当たり!");
}else if (20 <= n && n < 40 ){ //20〜39まで小当たり
System.out.println("小当たり!"); // 19以下ははずれ
}else{
System.out.println("外れ");
}
}
}

600 :デフォルトの名無しさん:2017/05/29(月) 23:34:58.26 ID:9PSXRaA2
>>594
最初にこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

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

アスペクト指向も出てくる

601 :デフォルトの名無しさん:2017/05/29(月) 23:40:17.48 ID:KqfCApyh
評価2.5のゴミみてぇな本を勧めるなよwwww
目次見ただけでゴミってわかる
こういう読むだけたいして意味も価値もない無駄な知識を入れようとするから
フレームワーク関連の本は糞で初心者はさらにわからなくなるんだよ

602 :デフォルトの名無しさん:2017/05/29(月) 23:48:53.76 ID:hK31qQAt
>>599 様の通りにやってみたところ正常に動作しました、
こんなバカの質問に答えていただきありがとうございました

603 :デフォルトの名無しさん:2017/05/29(月) 23:53:29.49 ID:r7OgtnEw
>>601の話聞くよりは本読んだほうがマシだと思う

604 :デフォルトの名無しさん:2017/05/30(火) 00:16:24.33 ID:xiJHA6at
>>603
ただのあの本は前提知識がある人向けただからな。

605 :デフォルトの名無しさん:2017/05/30(火) 00:22:56.26 ID:HpOG2ZPb
掌田は地雷だから

606 :デフォルトの名無しさん:2017/05/30(火) 00:35:53.61 ID:yvdd5Rk1
フレームワークの本に3000円とか金ドブもいいとこ
しかも3年前の生ごみとかありえんわ

607 :デフォルトの名無しさん:2017/05/30(火) 01:20:31.09 ID:2FSzpxmb
ほとんどの言語・フレームワークは、掌田だろ

JavaScript, Rails 5, Spring とか、
Unity, Unreal Engine も掌田

608 :デフォルトの名無しさん:2017/05/30(火) 01:22:58.17 ID:6dJw7tnc
個人的にはむしろフレームワークの方こそ本か何か体系的に入門から学べるものがあった方が良いと思うけどな
ネットの情報だけだと大事なところ端折ってあったりある程度分かってる人にしか通じなかったりで大変な部分もある
独自フレームワークとかになるとベースを理解してなきゃ話にならないし

609 :デフォルトの名無しさん:2017/05/30(火) 01:59:53.28 ID:H7vYKQcq
たまに入門書に親殺された人居るけど色んな意味で謎
Java勉強し始めたら、スッキリ・明解・やさしいの3択じゃね?

610 :デフォルトの名無しさん:2017/05/30(火) 02:22:50.04 ID:zApK3OKs
そもそもフレームワークなんて必要なくね?

611 :デフォルトの名無しさん:2017/05/30(火) 02:37:54.92 ID:2FSzpxmb
漏れは、柴田望洋・林晴比古・高橋麻奈・猫でもわかるの粂井康孝などの言語学者よりも、

掌田津耶乃・山田祥寛・宮本信二など、
フレームワーク・開発系の本を書ける著者を、上に見てる

この人らの講習会も、1日4万円とか高い

612 :デフォルトの名無しさん:2017/05/30(火) 06:44:19.91 ID:XoWmMRXk
漏れとかリアルタイムで使うやつ初めて見たわ
使われてたの10年くらい前なんでしょ?ww

613 :デフォルトの名無しさん:2017/05/30(火) 06:57:02.83 ID:ChA7tHQK
>>610
自分でこしらえるか?
豪の者だな

614 :デフォルトの名無しさん:2017/05/30(火) 10:27:24.55 ID:pjqd0kNY
漏れ漏れ詐欺

615 :デフォルトの名無しさん:2017/05/30(火) 12:30:57.86 ID:nOhBpO6Y
仕事でC#ばかりやっているのでJAVAもかじっておきたいとサーティファイという団体が主催する能力認定試験1級を申し込んだのですが、試験は何の変哲もないテキストエディタでコードをガチで書くのでしょうか?受けたことのある方がいらっしゃったらお聞きしたいです。

616 :デフォルトの名無しさん:2017/05/30(火) 13:04:49.18 ID:xiJHA6at
>>610
Javaにはオレオレフレームワークが多くて結局、ソースコードを見るはめになる。

617 :デフォルトの名無しさん:2017/05/30(火) 13:05:39.80 ID:xiJHA6at
>>608
それはそのフレームワークを作っている人間どもが不親切なんだよ。

618 :デフォルトの名無しさん:2017/05/30(火) 16:53:33.56 ID:fjPf+h/e
学校通ってますが
講師の先生の話を聞いてるより
スッキリわかるjavaを読んでる方が
良くわかると言う悲しい状況になっている(´・ω・`)

619 :デフォルトの名無しさん:2017/05/30(火) 17:54:50.62 ID:bCOz8Dem
新入社員で研修だけど講師がCOBOLとCしか実務経験ない人がJava教えてるからスッキリしか読んでない

620 : ◆QZaw55cn4c :2017/05/30(火) 18:29:35.07 ID:tKJtC0l3
Javaの資格は修飾に役に立ちますか?

621 :デフォルトの名無しさん:2017/05/30(火) 19:07:03.04 ID:YLdyGF6/
>>620
javaとjavascriptが違うものということを知っているというレベルの証明にはなるかな

622 :デフォルトの名無しさん:2017/05/30(火) 19:07:10.57 ID:nOhBpO6Y
>>620
javaとjavascriptが違うものということを知っているというレベルの証明にはなるかな

623 :デフォルトの名無しさん:2017/05/30(火) 19:53:54.13 ID:x+NZDIHN
JREにはJavaで動くJavaScriptのインタプリタが付属している、ややこしいことに

624 :デフォルトの名無しさん:2017/05/30(火) 21:34:17.85 ID:1UzYBAXD
>>618
先生に本を見せてあげなさい

625 :デフォルトの名無しさん:2017/05/30(火) 23:31:59.88 ID:kr6O87Nm
JAVAの検定を受けるにあたり、試験で使うTeraPadというテキストエディタを
入れてみたのですが、これって、実務でも使うものなのでしょうか?

きっとIDEを使うんじゃないのかなと思うんですけど。。。

626 :デフォルトの名無しさん:2017/05/30(火) 23:36:47.84 ID:kWERrntF
クソみたいな環境以外なら普通IDEだがな、というかテキストエディタでコード書く言語じゃない

627 :デフォルトの名無しさん:2017/05/31(水) 00:03:40.79 ID:IDPR98+O
Terapadはテキストエディタでもマイナーだよ。

628 :デフォルトの名無しさん:2017/05/31(水) 00:06:30.92 ID:IDPR98+O
>>626
そういう決めつけはよくない。

初めからJavaは統合開発環境を使う前提で作られていない。

629 :デフォルトの名無しさん:2017/05/31(水) 01:02:18.42 ID:AHgBKhbQ
メモ帳で作成してUTF-8で保存
これで今まで普通にコマンドプロンプト上でコンパイルできて実行もできていたんだけど
最近方法変えてないのにコンパイル時「MS932にマップできません」とコンパイルエラーになるようになったんだけど何が原因でしょうか
class宣言のpublicの前に/ufeffとか言うのが勝手に挿入されてる?ようなのですが。心当たりがありません。

630 :デフォルトの名無しさん:2017/05/31(水) 01:06:36.69 ID:pEaTZtAB
ナムナム

631 :デフォルトの名無しさん:2017/05/31(水) 01:10:47.45 ID:AHgBKhbQ
ちょっと心当たりと言えば
最近フォントをricky dimeshedとか言うのに替えたくらいです
でもこれは関係ないよね・・・

632 :デフォルトの名無しさん:2017/05/31(水) 02:54:05.98 ID:eFZA2Mg7
>>629
普通にシフトJISで保存すりゃいいじゃん。

633 :デフォルトの名無しさん:2017/05/31(水) 06:34:38.27 ID:L84KcF4c
>>629
UTF-16選んでない?
https://ja.m.wikipedia.org/wiki/バイトオーダーマーク

634 :デフォルトの名無しさん:2017/05/31(水) 08:26:49.11 ID:AV1cHHAT
TeraPad とかなら、文字コードを指定できるけど、
メモ帳で文字コードを指定できるの?

ただし、TeraPad は、4バイト文字(サロゲートペア)を表示できないかな?

コマンドプロンプトよりも、PowerShell, PowerShell_ise を使えば?
入力文字コードも指定できるかも?

スッキリJavaは、どの道、会社の新人研修でも、
副本として使われる事が多いから、買って読まなきゃならない

講師がすべて教えるのは面倒だから、家でスッキリも読んでおくように言われる。
だから、スッキリが売れる

635 :デフォルトの名無しさん:2017/05/31(水) 08:46:49.64 ID:G90fYmhY
そんなに本の話がしたけりゃスレあるんだからそっちでやって
Javaのお進め図書・情報・url
ttp://echo.2ch.net/test/read.cgi/tech/1457392971/

>>629
メモ帳で保存するときのオプションで、文字コードシフトJIS選べば解決する
メモ帳でUTF保存すると全部BOM(バイトオーダーマーク)つけられるから面倒

636 :デフォルトの名無しさん:2017/05/31(水) 11:20:38.49 ID:nbJYiZYj
>>629
コンパイルできてたときは日本語コメントなくて、コメント書いたらエラーが出るようになったとか?

637 :デフォルトの名無しさん:2017/05/31(水) 13:35:48.00 ID:ylYxKhrp
>>629
「/ufeff」が投入されるって、メモ帳が勝手にソースを改変すると言ってるの?
「最近フォントを替えた」って、何のフォントを替えたの?自分が何したのか解ってないぞ。
システムのデフォルトかメモ帳のデフォルトか…もしかしてeclipse?
ソースをバイナリダンプしてみた?コードはutf-8だったか?
メモ帳でソース書いてeclipseで読み込んでコンパイルみたいな変な事してないか?

638 :デフォルトの名無しさん:2017/06/01(木) 00:48:52.75 ID:t6ZFrgyA
ocjp bronzeの試験で javacコマンド云々とか
○○が追加されたバージョン云々
と言う問題は出題されるのでしょうか?

639 :デフォルトの名無しさん:2017/06/01(木) 02:01:23.64 ID:aYvEaLjY
https://ideone.com/G50BZD
while(sc.hasNext())を使って、空白区切りの数値をまとめて読み込んだあと
エンター(改行)が入った段階で処理を止めて、
そのまま計算に入るという感じなのですが

ideoneやpaizaなどのプログラミングコンテスト用のサイトでは上手く動くのですが
実際の実行環境(IntelliJ)上だと入力が終わらず困ってます
何かしらbreakする条件を付け足さないとダメなのでしょうか?

640 :デフォルトの名無しさん:2017/06/01(木) 02:50:39.60 ID:ZW4TAEqu
ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから

ideoneとかはインポートしてるクラスの中身とか見れないから
Scannerの処理がどうなってるかわかんらし元々連続で入力受け付けるような仕様じゃないから
Scanner書き換えてる可能性が高い

そんな糞みたいなメソッドで判定するのは危険だからそういう癖は直した方がいい
入力内容を別の変数にでも突っ込んで書き直せ

641 :デフォルトの名無しさん:2017/06/01(木) 03:09:51.62 ID:aYvEaLjY
>>640
>ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから
うおお・・・・・・マジか
根本的に変えないと不味いな
プロコンの所から引っ張ってきたけど、ヤバイ書き方だとは知らなかった
書き直すわ

642 :デフォルトの名無しさん:2017/06/01(木) 03:21:14.59 ID:ZW4TAEqu
書き直せとは言ったがあんな糞コードなんて誰も歯牙にもかけないレベルだから好きせぇやボケ
あと教えてやったんだから「ありがとうございました」って言え糞ボケ

643 :デフォルトの名無しさん:2017/06/01(木) 03:39:42.54 ID:aYvEaLjY
>>642
申し訳ありません
あまりの衝撃に素のネラーになってました

深夜に本当にありがとうございます
糞コードと言われないように、もっと良いコードを書けるように精進します
本当にありがとうございました

644 :デフォルトの名無しさん:2017/06/01(木) 05:33:10.61 ID:/JD/IgrT
礼無くてそんな頭にくるくらいならレスしなければいいのに
日常生活でも傲慢な態度してそうw

645 :デフォルトの名無しさん:2017/06/01(木) 06:39:19.59 ID:znDzbsA/
内弁慶の予感

646 :デフォルトの名無しさん:2017/06/01(木) 09:36:53.62 ID:FovYQcy0
2ちゃん弁慶

647 :デフォルトの名無しさん:2017/06/01(木) 09:46:56.15 ID:FovYQcy0
>>639
java.util.Scannerはデフォルトでは空白文字を区切りとするので改行では終わらない。改行も空白文字の内のひとつだから。
ではそのサイトではなぜ終わるのかというとおそらく入力をファイルからリダイレクトして読み込ませているためにファイルの終わりまで読み込んで終わっているんだろう。
これを標準入力がコンソールのキーボードになっている状態で実現するにはそのコンソールの設定にもよるが、多分WindowsだとCtrl+Zで、UNIX系OSだとCtrl+Zなのではないかと思う。
しかしやはりコンソール次第ではあるので何やってもダメかも知れない。

648 :デフォルトの名無しさん:2017/06/01(木) 09:54:54.45 ID:FovYQcy0
間違えた。UNIX系OSはCtrl+Dだ。

649 :デフォルトの名無しさん:2017/06/01(木) 20:24:47.86 ID:hzk2NgYF
hasNextはEOFまでだね
647の手順でローカルでもできるしファイルからの入力でもいけるはず

礼無しで顔真っ赤のやつはずかしいな

650 :デフォルトの名無しさん:2017/06/01(木) 23:03:41.54 ID:vNOzF29i
Immutableなオブジェクト作るとき、Builderパターンを使うそうですが、↓のようなコードではダメなのでしょうか?
Builderだと、Mutableクラスのインスタンス作って、それを新たにImmutableクラスのインスタンス作って返してますよね?
↓のコードであれば、Mutableクラスのインスタンス生成1回で済むので、
Builderより省エネに思えるのですが、このようなコードではダメだから、流行ってないんですよね?

自分で見つけられた問題点は、mutableMemberDtoを書き換えると
immutableMemberも書き換わってしまうことです。ただ、これはそこまで大きいデメリットなのでしょうか?
他にも問題がないか、どなたかご指摘お願いいたします。
---------------------------------------------------------------
public class Main {
  public static void main(final String[] args) {
    final MutableMemberDto mutableMember = new MutableMemberDto();
    mutableMember.setName("javao");
    mutableMember.setAge(20);
    final ImmutableMemberDto immutableMember = mutableMember;
    System.out.println("His name is " + immutableMember.getName());
    System.out.println("His age is " + immutableMember.getAge());
  }
}
class ImmutableMemberDto {
  protected String name;
  protected Integer age;
  public String getName() {return name;}
  public Integer getAge() {return age;}
}
class MutableMemberDto extends ImmutableMemberDto {
  public void setName( final String name) {this.name = name;}
  public void setAge(final Integer age) {this.age = age;}
}
---------------------------------------------------------------
Builderパターンを参考にした記事
http://qiita.com/disc99/items/840cf9936687f97a482b

651 :デフォルトの名無しさん:2017/06/01(木) 23:06:15.32 ID:NqeRoS6b
>>650
そもそもImmutableの意味が分かってる?
分かってるなら大きいデメリットどころか無意味だということが分かるはず

652 :デフォルトの名無しさん:2017/06/01(木) 23:32:03.74 ID:vNOzF29i
>>651
わかんないです><;
教えて下さい>人<

653 :デフォルトの名無しさん:2017/06/01(木) 23:42:20.35 ID:NqeRoS6b
>>652
外側から絶対に変更できないというのがImmutable
この例だとMutableクラスの参照を保持しておくかMutableクラスかどうかを判別してキャストしてしまえばいくらでも書き換えられるのでImmutableではない
目指してるのはRubyのfreezeみたいなものだと思うからそんな感じのフラグ建てるメソッドを用意してセッター側でフラグ建ってたら例外返すようにしとけばいいかな

654 :デフォルトの名無しさん:2017/06/02(金) 06:57:04.51 ID:p54lEqX7
>>653
ありがとうございます!
てことは、ガチのImmutableにしかたったら、Immutableクラスをnewするしかないんですね
う〜ん、やっぱImmutableて地味にハイコストなんですかね?

655 :デフォルトの名無しさん:2017/06/02(金) 06:59:28.02 ID:p54lEqX7
確かにsetterで例外吐いて実質Immutableにするのもよさげですけど
できればsetterの定義自体削ぎ落としたいですよね
setterが存在しないことがコンパイルで保証できるので

656 :デフォルトの名無しさん:2017/06/02(金) 07:00:58.41 ID:ZHMaGoYo
>>654
大半のプログラムはオブジェクト生成以外の部分がボトルネックになるから気にしなくていい
Immutableによりデバッグコストを削減するほうがよっぽどいいと思うぞ

657 :デフォルトの名無しさん:2017/06/02(金) 07:14:47.05 ID:3hRLDe2o
確率で分岐させようと思うのだけど、確率は一定ではなく、その時配列aに入っている数値の確率で分岐させたいと思っています
配列aに入っている数値が{ 6,0,4 }の場合、
6/10の確率で一つ目の分岐、0/10の確率で2つ目の分岐、4/10の確率で3つ目の分岐といった具合です
今までは配列bを作って{1,1,1,1,1,1,3,3,3,3 }と全部個数分入れてその中からランダムでひとつ選ぶと言う形にしてたのですが
もっとわかりやすい方法があれば教えてください

658 :デフォルトの名無しさん:2017/06/02(金) 07:32:50.35 ID:Xj1xll0Q
>>657
int getBunki(int[] a) {
 int i = new Random().nextInt(10);
 if (i < a[0]) {
  return 1;
 } else if (i < a[0] + a[1]) {
  return 2;
 } else {
  return 3;
 }
}

659 :デフォルトの名無しさん:2017/06/02(金) 12:24:24.49 ID:rAIQacev
>>658
もちっと汎用性持たせてみたら?

660 :デフォルトの名無しさん:2017/06/02(金) 12:40:35.41 ID:ogRcISVS
配列難しいなら使わなくてもいいんでないかな
乱数とif文でもできるのでは。
後々の管理性はどちらが良いかわからぬが

661 :デフォルトの名無しさん:2017/06/02(金) 12:54:11.98 ID:SapFDfFK
配列aを元に「処理1,処理1,処理1,処理1,処理1,処理1,処理3,処理3,処理3,処理3」で
構成されたリスト作って、シャッフルして最初の奴を取り出す

662 :デフォルトの名無しさん:2017/06/02(金) 13:25:44.47 ID:5w1B1rxg
int[] array = { /* ... */ };

int sumTotal = Arrays.stream(array).sum();
int selected = new Random().nextInt(sumTotal);

int accumlated = 0;
for(int idx = 0; idx <= array.length; idx++) {
accumlated += array[idx];
if (selected < accumlated) return idx;
}

こんな感じ?
最後のforループをなんとかしたいけど添字をうまく処理できない…

663 :デフォルトの名無しさん:2017/06/02(金) 15:37:47.71 ID:yyLeCvfJ
if (selected < accumlated) return idx;

return は関数を脱出する。
ループを脱出するのは、break じゃないの?

664 :デフォルトの名無しさん:2017/06/02(金) 15:41:15.73 ID:5w1B1rxg
idxか欲しいならそれで良いと思うんだけどなんか変かな…

665 :デフォルトの名無しさん:2017/06/02(金) 22:48:36.11 ID:p54lEqX7
>>656
そうはいっても、未だにIntegerは重いから
数字のリストはint[]を使えとかいうオッサンがおるわけで

666 :デフォルトの名無しさん:2017/06/03(土) 14:08:01.48 ID:ep62Y9tf
Boxing, Unboxing のコストかい?

オブジェクト ←変換→ Primitive

667 :デフォルトの名無しさん:2017/06/03(土) 14:51:35.39 ID:7jetN193
Javaはそもそも遅いものだからなぁ
少しでも軽くするか、そこは割り切ってJavaの強みを活かすかは性格が出る

668 :デフォルトの名無しさん:2017/06/03(土) 19:12:09.25 ID:pA7NlTbo
サーブレットでのファイルダウンロードで質問です
ダウンロードをキャンセルしたりダウンロード中に別のページ行ったりするとサーブレット側で例外が起きてるんだけど、これってどういう対応すれば良いんでしょう
発生してるのはClientAbortExceptionとかいうやつと、SocketExceptionってやつの2種類です

環境はTomcat8.5とJava8とServlet3.1で、StrutsとかSpringとかフレームワークは使ってないです

669 :デフォルトの名無しさん:2017/06/03(土) 19:55:40.64 ID:rGTJ2+S3
try catchで囲むだけちゃうのん?

670 :デフォルトの名無しさん:2017/06/03(土) 21:50:09.75 ID:ksYUIpeu
>>668
クライアントにどう返すか決めて実装するだけだろw

671 :デフォルトの名無しさん:2017/06/03(土) 22:21:34.56 ID:cALIqpIy
その「どう返すか」がよくわからないのでご質問しました

別のページに移動した場合は出た例外から何か返そうとしても元のレスポンスには返せないような気がします
キャンセルの場合は同じページにいるのですが、例外に対して何かレスポンス返そうとするとまた別の例外(IllegalStateException)になります

try-catchで囲んだとして、catchしたあとどうするのが普通なのでしょうか?

672 :デフォルトの名無しさん:2017/06/03(土) 22:49:10.26 ID:xUQGENML
大人しくFW入れとけ
自前でフルスクラッチWebサービスなんて死しか見えてないぞ

673 :デフォルトの名無しさん:2017/06/03(土) 22:54:54.15 ID:rGTJ2+S3
握りつぶしておしまいにすればいいじゃん

674 :デフォルトの名無しさん:2017/06/03(土) 23:24:48.06 ID:ksYUIpeu
>>671
ご質問したってなんだよ、自分の行動に御をつけんなよw

で、もう別のページに行ってんならなにもしなくていいだろ
もうこっち側の関知することじゃない
キャンセルされたときも、こっちから特に通知することはない
だからもう無視でいいじゃん
それじゃダメな思いがなにかある?

675 :デフォルトの名無しさん:2017/06/03(土) 23:30:04.99 ID:rGTJ2+S3
>>674
「ご〜する」は謙譲語だよ
自分の行動で問題ないっすよ

676 :デフォルトの名無しさん:2017/06/04(日) 00:25:26.49 ID:V+A2VcF1
本当に教えを乞うてるのなら
誠に恐縮ながらご質問させて頂きました。
くらい言えビチグソが

677 :デフォルトの名無しさん:2017/06/04(日) 00:38:07.06 ID:2FeiGNPe
>>675
自分のために行う自分の行動に御はつけませんw

678 :デフォルトの名無しさん:2017/06/04(日) 00:59:05.42 ID:tVfHoFED
>>674
ともに無視で大丈夫なんですね、ありがとうございます

正常なパターンは書籍もWebサイトも情報多いんですが異常な場合は情報が少なくて難しいです
具体的な方針のレスをいただけてとても助かりました
みなさまありがとうございました

679 :デフォルトの名無しさん:2017/06/04(日) 04:22:07.90 ID:ovRWSkxq
異常時の処理は、君が決めること。
ビジネスロジック・仕様

ページを閉じても、保持していたデータを解放するとは限らない。
メールアプリでは、一旦ページを閉じても、
再度開いたら、ログインしたままになってる

10分間、何もしなかったら、ログアウトになっていたり、
何がエラーなのかなど、仕様は各自が考えるもの

680 :デフォルトの名無しさん:2017/06/04(日) 04:25:38.04 ID:ng0ziLO2
>>675
質問の場合は自分が誰かに依頼してその誰かを動かす事になるので「ご質問」はおかしい。人が自分に何か聞いてきた時は「ご質問」で良い。

196 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)