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

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

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

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

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

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

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

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

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

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

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

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

0008デフォルトの名無しさん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 を通して使う。

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

0010デフォルトの名無しさん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));

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

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

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

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

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

0015デフォルトの名無しさん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に合った構造がある。
短いサンプル書いて意見を聞いた方が良いと思うな。

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

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

https://ideone.com/0RB6Do

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

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

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


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

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

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

0021デフォルトの名無しさん2017/04/07(金) 04:20:28.04 ID:E9+XPTIr

0022デフォルトの名無しさん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()の事ね。

0023デフォルトの名無しさん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の”検知”段階で入手する手段を教えて頂きたいです。
ご助言宜しくお願いします。

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

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

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

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

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

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

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

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

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

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

0031デフォルトの名無しさん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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0046222017/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でやりたいと思うようになりましたよ。

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

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

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

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

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

String a = "hello world" ;

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

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

0053デフォルトの名無しさん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になる

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

0055デフォルトの名無しさん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);
 }
}

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

0057デフォルトの名無しさん2017/04/13(木) 00:01:26.42 ID:oGpC5FIZ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0070デフォルトの名無しさん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");
}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0085デフォルトの名無しさん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)で抜き出す書き方はあるでしょうか?

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

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

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

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

0090デフォルトの名無しさん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 を勉強すればいい

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0121デフォルトの名無しさん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を呼び出しているわけだが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0137デフォルトの名無しさん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で囲ってもだめでした

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

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

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

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

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

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

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

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

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

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

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

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

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

やり方教えてください

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

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

みたいになってます。

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

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

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

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

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

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

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

0156デフォルトの名無しさん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}"); }

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

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

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

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

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

新着レスの表示
レスを投稿する