X



Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2017/04/05(水) 09:51:39.56ID:nC3E9c0D
前スレ >>997
onCreateってのはAndroidでそのActivityが作られたときに走る処理だからそこでgetTextしてもEditTextの中が空だから怒られてる。
確定ボタンをButtonで作ったりキーイベントReturnを捉えるイベントリスナーの中でやるべき。
0003デフォルトの名無しさん
垢版 |
2017/04/05(水) 18:26:37.85ID:XSIU9b3V
JHoshu
0004デフォルトの名無しさん
垢版 |
2017/04/05(水) 19:49:27.33ID:xPaGCN9C
>>1
0005デフォルトの名無しさん
垢版 |
2017/04/05(水) 20:16:36.85ID:p+fIavz2
>>2
わざわざありがとうございます。
ようやく思い通り動くようになりました。
まだ細かい改善点はあるのでもう少し勉強してみます。
0006デフォルトの名無しさん
垢版 |
2017/04/05(水) 23:22:35.35ID:Ansd+i4M
>>999
なるほど。ポインタみたいなものでしたか。ご教授ありがとうございます。

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

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

抽象クラスを継承することで、メソッドの書き換えは出来るものの、継承したクラスの宣言時の一度しか
メソッドを書き換えられないと思うんだけど、他に方法はある?
0008デフォルトの名無しさん
垢版 |
2017/04/06(木) 01:36:02.66ID: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 を通して使う。
0010デフォルトの名無しさん
垢版 |
2017/04/06(木) 10:42:30.59ID: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.01ID:8OEcGMYc
>>7
Javaは静的に定義してコンパイルする言語だから実行中の動的書き換えは無理
9が言ってるように目的は何なのかを書け
0012デフォルトの名無しさん
垢版 |
2017/04/06(木) 20:32:34.33ID:vtBceFIS
>>11
関数ポインタのように差し替えたいって言ってるからinterfaceの差し替えでいいんしゃないの
リフレクションでもいいけど
0015デフォルトの名無しさん
垢版 |
2017/04/06(木) 23:04:04.80ID: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に合った構造がある。
短いサンプル書いて意見を聞いた方が良いと思うな。
0018デフォルトの名無しさん
垢版 |
2017/04/07(金) 01:02:48.90ID:KCHCaqUQ
>>16
何故IDEとか使わずにコード張るサイト使うのか分からん
とりあえず普通に実行したら実行時にエラー吐かなかったから
idone使う時の入力方法を自分で調べるしかないだろ
001916
垢版 |
2017/04/07(金) 03:02:40.52ID:g05Ok9Aj
>>17 >>18
ありがとうございます。
実は前スレでも似たようなことを質問させて頂きました…。

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


String name1 = new java.util.Scanner(System.in).nextLine();
という表記法にはどんな問題があるのでしょうか?
スッキリわかるJavaに載っていたのですが。
どなたか教えてくれませんか?
ググってもこの表記法は見つかりません…。
0020デフォルトの名無しさん
垢版 |
2017/04/07(金) 04:15:47.44ID:E9+XPTIr
アイディーイーワン

1つのストリームに対して2つのScannerを使ってるのがいけない
俺の環境(1.8系)だとエラーになるよ
0022デフォルトの名無しさん
垢版 |
2017/04/07(金) 13:21:40.10ID: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.06ID: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.04ID:10W/Ra3M
もうイデオンでいいわw
0025デフォルトの名無しさん
垢版 |
2017/04/07(金) 17:25:04.53ID:am4C8gz9
>>23
ここはJavaスレなんで泥特有の質問は泥スレにどうぞ

Androidプログラミング質問スレ revision53
ttp://echo.2ch.net/test/read.cgi/tech/1488052551/
002616
垢版 |
2017/04/07(金) 20:57:30.40ID:g05Ok9Aj
>>20 >>21 >>22
ありがとうございます。

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

ちょっと調べてみて、またレスしたいと思います。
0027デフォルトの名無しさん
垢版 |
2017/04/07(金) 21:24:00.28ID:a6ogP8yx
井出椀
002822
垢版 |
2017/04/08(土) 12:16:45.55ID:OP2gpsJ+
16氏のレスは何か学生が先生に質問してるような雰囲気で若さを感じるんだが、
残念な事にIDEをイデオンと読むもんだから40歳以上とバレてしまっている。
0030デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:35:44.62ID:4NiiBXjv
意外と有名
またはアニヲタ
0032デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:44:33.10ID:ryFntO7G
一行辺りは半角26文字で600万行あるテキストファイルの中身を
要素の数600万として一行づつ配列にいれていこうと思うのですが大丈夫でしょうか?
0033デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:45:57.94ID:DTMJtpt4
>>32
余裕です
0034デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:46:36.51ID:DTMJtpt4
312MB、余裕です
0035デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:52:36.33ID:ryFntO7G
このテキストファイルもjavaで入力しましたが、全部書き込み終わるのに8時間から半日くらいかかってたと思います。
0036デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:55:54.81ID:ryFntO7G
>>33
ありがとうございます
メモ帳でこのテキストファイル開いてもパッとは開かないので不安ですがやるだけやってみます
0037デフォルトの名無しさん
垢版 |
2017/04/08(土) 12:57:12.51ID:DTMJtpt4
>>35
ソースコード見せて
0038デフォルトの名無しさん
垢版 |
2017/04/08(土) 13:00:01.26ID:DTMJtpt4
>>36
メモ帳はね、uniscribeっていうリガチャやカーニングに対応した
高度なテキストレンダラを使ってるからもっさりしても仕方がない
0039デフォルトの名無しさん
垢版 |
2017/04/08(土) 14:24:59.52ID:QfXapNKS
余裕かどうかは動かすマシンによるのでは?
0040デフォルトの名無しさん
垢版 |
2017/04/08(土) 14:33:44.07ID:DTMJtpt4
その発想はなかったわ
0041デフォルトの名無しさん
垢版 |
2017/04/08(土) 14:38:51.91ID:YTkzg0Hn
ランダムな26文字の文字列600万行のファイルを作ってみたが3秒くらいだった
8時間〜半日かけてどういうデータを作ったのかが気になる
0043デフォルトの名無しさん
垢版 |
2017/04/08(土) 17:01:59.34ID:MZUufgxp
そういやJavaVMが使うメモリのデフォルトって今は多くなってんのかな?
これが小さい場合は自分で大きくなるようにオプション付けてVM動かさないとメモリオーバーフローになるよな。
0045デフォルトの名無しさん
垢版 |
2017/04/08(土) 20:17:39.84ID:MZUufgxp
>>44
価値か。価値ねえ。それはあなたが何を求めているかで変わるんじゃないかな。

例えばAndroid用アプリを作って売るとか、無料ゲーム作ってサイト内課金で稼ぐとか、そういう商売してるなら少し遠回しではあるけどJavaに価値があるということになると思う。
実際に金稼げるわけだしね。Androidの端末は沢山出回っててユーザも多い。
004622
垢版 |
2017/04/09(日) 04:05:43.60ID:o//fitNy
>>44
私もつい最近まで貴方と同じ考えで、javaを使い始めたのは今年からです。
ホームページでの説明にApplet版CADを使い、商品はC言語みたいな事をするつもりで
まずオールJavaでAppletのCADを作ってみたんですが、想像以上に動作が軽かったです。
巨大なデータを扱うつもりで無ければAppletで充分だと思いました。
それより何より、Javaはプログラミングが物凄く楽です。
C言語ですとイベントの順序とか挙動で思い通り行かずグチャグチャになりますけど、
javaだと問題そのものが存在しないというか対策済みという感じですね。
それと、私は未だ弄ってないですが、データベースを触るのが簡単そうです。
あと、Windowsで例えば動画再生なんかはCOMコンポーネントだのDirectShowだの
数々の山を乗り越える必要が出てくる事が非常に多いのですが、
Javaだと専用ライブラリを使ってチョチョイのチョイで済む事が多いようです。
そんな感じで、私はなるべくjavaでやりたいと思うようになりましたよ。
004716
垢版 |
2017/04/09(日) 23:24:51.53ID:ySXi9r1b
>>28
若くはないですが、40まではいってませんよ。
あれは最初イデワンって読むと思ってましたが、Google検索の予測変換でイデオンってのが多かったから、ついそう読むのかなって勘違いしてしまったんです。
0049デフォルトの名無しさん
垢版 |
2017/04/10(月) 20:57:16.98ID:AyjhZMz0
Air wife
0051デフォルトの名無しさん
垢版 |
2017/04/11(火) 21:28:46.27ID:A5AwerKU
String a = new String("hello world") ;

String a = "hello world" ;

これは略し方の違いなだけで同じ意味なんでしょうか?
0052デフォルトの名無しさん
垢版 |
2017/04/11(火) 21:37:35.09ID:UT2aAcJz
うん。
手続き型言語では文字列を簡単に宣言できて、オブジェクト指向になったらいちいちnewするとか劣化のイメージだから、特別な記法としてC++とかからの伝統的な記法。
0053デフォルトの名無しさん
垢版 |
2017/04/11(火) 22:44:52.71ID: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.85ID:ZPaqNK/Y
String の場合は intern() が返す参照を使うと同じ文字列が既にあったら同じ参照になるけどな。
同じ内容の内容の文字列が何度も new される可能性がある場合は使うとメモリの節約になる。
0055デフォルトの名無しさん
垢版 |
2017/04/12(水) 03:26:16.05ID: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);
 }
}
0059デフォルトの名無しさん
垢版 |
2017/04/14(金) 09:52:16.30ID:umFkfZJf
FileReaderオブジェクト作ってread、readLineでファイル読み込んだあとにcloseメソッドで閉じることになっていますが、最後まで行ってない場合、closeしなくても良いのでしょうか
そしてそもそもcloseしないでプログラム終了するとどうなるのでしょうか
0060デフォルトの名無しさん
垢版 |
2017/04/14(金) 12:10:52.91ID:/1nusgkY
>>59
ファイルクローズは普通はそのファイルへの読み書きが不要になったらするものだ。どこまで読んだかなんてことは関係ない。
0061デフォルトの名無しさん
垢版 |
2017/04/14(金) 12:23:50.00ID:/1nusgkY
クローズしなかった場合はインスタンス消滅前にファイナライザでグロースされるだろうが、そんなもんあてにしてはいけない。
特別な事情がない限りプログラムは必ず自分でファイルクローズするように書くべき。
0063デフォルトの名無しさん
垢版 |
2017/04/14(金) 12:37:26.12ID:/1nusgkY
>>62
一応それも自分でクローズするように書いてる事にはなる。何が起きるかわかって書いてるわけだし。
0064デフォルトの名無しさん
垢版 |
2017/04/15(土) 07:07:28.68ID:Q1oPXQ4H
エラーの原因の9割はメモリ問題っていうけど
これって解放すればいいだけじゃね?
つまり全ての作業の最後に解放するコードを常に入れてたら
エラーなんて出ようがないのでは?
0065デフォルトの名無しさん
垢版 |
2017/04/15(土) 08:37:16.98ID:mBBzgc7U
かってに削除しては、こまる。まだだれかが参照してるかとか…
0067デフォルトの名無しさん
垢版 |
2017/04/15(土) 18:50:27.07ID:ONyyaIO2
解放し過ぎて二重にfree()して落ちたりしてなw
0068デフォルトの名無しさん
垢版 |
2017/04/15(土) 23:48:14.07ID:+FDoqV6E
質問させてください。
今日パソコンにeqlipseを入れて文字の表示をしていたのですが
出先から帰って再度起動させてから他のクラスを作って実行しても
「現在、表示するコンソールがありません」というメッセージが出て反映させられません。

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

どなたかお知恵を貸していただきたいです!
0069デフォルトの名無しさん
垢版 |
2017/04/16(日) 00:14:26.19ID:m1EJuj8m
>>68
ソースコード見せて
0070デフォルトの名無しさん
垢版 |
2017/04/16(日) 00:35:15.16ID: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.11ID:Ey1n1KGC
よくお互いをロックして制御不能みたいな実行時エラーって
あれどういう原理なんですか?
そういうプログラム逆に組んでみたいんですが…
0073デフォルトの名無しさん
垢版 |
2017/04/16(日) 19:57:09.57ID:1+YnjkjO
>>71
いやほら A と B の二つロックする変数があって、それを2つのスレッドで、一方のスレッドは A, B の順でロックするようになっていて、もう一方は逆順に B, A の順でロック掛けるようになっているとタイミングによってデッドロックになる事がある。
0075デフォルトの名無しさん
垢版 |
2017/04/16(日) 20:47:52.41ID:rpbl7PtZ
それはnullっていう文字列だからnullではない
nullの入力で終わらせたいなら "null".equals(sc.next())とかにしないと
0076デフォルトの名無しさん
垢版 |
2017/04/16(日) 21:14:34.70ID:A/UzF3XD
>>74
入力が終わってるかどうかをhasNextLine()で調べてから読めばいいと思うが。
あとは>>76の言う通り。
0077デフォルトの名無しさん
垢版 |
2017/04/16(日) 21:15:04.00ID:A/UzF3XD
じゃない>>75だ。
0079デフォルトの名無しさん
垢版 |
2017/04/17(月) 01:03:35.01ID:70+t1EMT
Cをちょこちょこ勉強してたんですが並行でJavaの勉強も始めました
Cそっくりなのに無駄に文字数多くてめんどくせぇなとか思いながらテキスト眺めてたんですがこれメソッドってCで言うところの関数でいいんですか?
呼び方が違うだけ?
008074
垢版 |
2017/04/17(月) 01:14:04.66ID:WPG7SQ/C
>>75 >>76-77
ありがとうございました。
008174
垢版 |
2017/04/17(月) 02:05:39.73ID:WPG7SQ/C
たびたびすいません。
正しく動作するようになったのでリンク貼らせて頂きます。
https://ideone.com/fJbFul
0082デフォルトの名無しさん
垢版 |
2017/04/17(月) 03:13:19.95ID:H+Zq8CGz
>>79
そう。
0083デフォルトの名無しさん
垢版 |
2017/04/17(月) 06:19:26.55ID:ReyyQyZQ
>>79
関数にはレシーバー(主体)が無いけど、メソッドにはある

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

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

この本を3回読んで、みっちりとオブジェクト指向を学ぶのが、
プログラミングとすべての言語の基本
0084デフォルトの名無しさん
垢版 |
2017/04/17(月) 08:52:54.56ID:jxYq0SCN
>>79
ほぼ同じ いちいち使い分けるやつは見たことない

ただし C Java を混ぜこぜにやるのはNG
「見た目は似てるけど根本的に違う」という部分を見逃すとどっちも使い物にならんよ
0085デフォルトの名無しさん
垢版 |
2017/04/17(月) 10:19:19.48ID:0jhtVsWG
String型変数 の5〜6字目(半角の数字)を2桁のint 型変数として取得したいと思っています。

substring(5,7)で一回別のString型変数に入れてから、Integer.parseIntでint型に変換するんじゃなくて、
直接int型としてsubstring(5,7)で抜き出す書き方はあるでしょうか?
0086デフォルトの名無しさん
垢版 |
2017/04/17(月) 10:31:11.72ID:SOQF/fhS
>>85
そういうメソッド書けばええやん
1行節約するためにそんなことする意味があるのかわからんけどね
0088デフォルトの名無しさん
垢版 |
2017/04/17(月) 20:31:37.19ID:oBr7cjxV
>>79
関数はクラスと無関係なのがメソッドと違うとこ
0089デフォルトの名無しさん
垢版 |
2017/04/17(月) 21:09:17.98ID:70+t1EMT
>>82-84 >>88
ご丁寧にありがとうございました。
あと>>84さんのアドバイスですが、類似するもの関連するものを2つ以上学ぶ際は同時並行の方が学習効率が高いという研究がありましてそれに従っております
0090デフォルトの名無しさん
垢版 |
2017/04/18(火) 07:59:43.48ID: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.77ID:dYgbMCUy
Perlも仲間に入れてあげてください
0092デフォルトの名無しさん
垢版 |
2017/04/18(火) 10:42:45.58ID:O7sr+UR8
>>89
そうじゃねえ、関連度が低いから無茶だって言ってるんだよ
俺音楽やってんだよねーって弦楽とDTM同時並行とか無理だろ?
せめてバイオリンとビオラくらいに関連してないと厳しい
0096デフォルトの名無しさん
垢版 |
2017/04/19(水) 13:12:44.81ID:bjTcFC7K
>>95
何に対する参考書なんだ?
入門なのか試験対策なのか何かしらの技術についてなのか設計技法なのかはっきりしやがれ
0098デフォルトの名無しさん
垢版 |
2017/04/19(水) 14:05:53.58ID:OqLveeZp
ここは入門・初心者質問スレですよ
このスレで質問する人はどんな人なのかそしてどんな本を勧めればいいのか
ある程度予測できないようじゃ立派なプログラマーにはなれませんよ!
0099デフォルトの名無しさん
垢版 |
2017/04/19(水) 15:00:06.31ID:lhJ18puQ
>>98
すぐに読めとは言わないけど読んだほうがいいのは間違いないと思ってるよ
もちろん趣味プログラマじゃなく職業プログラマになるならの前提だけど
0100デフォルトの名無しさん
垢版 |
2017/04/19(水) 19:14:26.52ID:yJEVgkwQ
黒い表紙のjava SE8 Gold問題集買って完璧になればJava限定ならどこでもやっていける
0101デフォルトの名無しさん
垢版 |
2017/04/19(水) 23:07:06.82ID:CBlBPUu/
95氏は勉強と技術の習得が全く別物だという認識が無いんじゃないかな?
テストで良い点取りたいなら勉強するしか無いけども、
ソフトを作れるようになりたいなら、覚えるより先に何を作るか決めないとダメだよ。
中学校の英語の勉強と同じだね。仮に英語の単語と文法を全て覚えたとしても
テストで良い点数取れるだけで、英語の映画も英文の小説も楽しめないだろ?
プログラミングも同じ事で、勉強したって本に書いてある通りの事しか出来ないよ。
海外旅行する為に日常会話程度の英会話を覚えるって良くある話だけども、
そんな感じで作りたいソフトに必要な事だけを覚えていく感じでやるといい。

私はCADのプログラマなのでCADの事でないと上手く言えないんだけども、
CADなら画面が出て線が引けてマウスとキーボードとファイルの読み書き出来れば充分。
javaは初めて3ヵ月くらいで勉強と呼べるレベルの事はしていないが、
基本的な作業なら出来る程度のCADがもう出来ている。
未だjavaのシステムの構造を理解してない故の不具合は多いし、
クラスだの継承だのpublicとprivateの違いだの、余り深く理解してないけど、
売り物になる程度にまで完成させるのには大して時間はかからないと思う。
たぶんJavaの試験やったら落第レベルだけど商品レベルの物は作れるに?
0102デフォルトの名無しさん
垢版 |
2017/04/19(水) 23:30:19.49ID:hZKuXyWE
よく「何を作りたいかが大事」って言われるけどそうじゃないこともあるよね
俺なんか最初は「スーパーハカーかっけえ」くらいしか考えてなかったけどなぜかいまやWeb開発だ
みんながみんな最初から明確な目的持ってるわけじゃない
0103デフォルトの名無しさん
垢版 |
2017/04/19(水) 23:46:23.05ID:ekj+eUll
ExcelVBAで作ってるアプリケーションをウィンドウアプリケーションとして作りたくてあれこれ勉強してるけど、Java
のGUIがこれまた判らんというか^^;

目標はまだまだ遥か彼方ってな感じ
0106デフォルトの名無しさん
垢版 |
2017/04/20(木) 01:07:36.44ID:FIxvesm0
勉強するにしても何か作るにしても情報は漁るんだし
今は情報過多な時代だし、質の良い情報を得るのはそれなりのスキルがいる状況になってる
その時に一番簡単に信ぴょう性の高い情報を得られるのが公式ドキュメントとリファレンス実装
ただこの辺の情報は文章が硬い事が多いから原典を多く参照している二次情報を探せばいいんじゃないかな
0107101
垢版 |
2017/04/20(木) 05:46:25.48ID:Lb1IHRyj
>>102
あぁ、ごめん。大きな目標を作れって話じゃない。
画面にボタンを配置する方法を学ぼうとするなら例えば電卓を作るとか、
ボタンを使ったソフトを何か考えろって事。覚えるだけじゃ何も作れるようにはならんのよ。
よく入門書とかで「ボタンを押すと表示が変わります」とかあるでしょ?
それを覚えたとして、それをどう使って何を作れる?
1つづつ順番に覚える学校の勉強みたいな事じゃ何も作れるようにはならんのよ。
君もそうだったはずだよ。上司から「コレ作れ」と言われて本読んだりしたろ?
その「コレ作れ」ってのが私の言う目的が先って事なのな。
何か無いかって聞いてる95氏は指導者が居ないか学生なんだろう。
何を覚えたらどんな事が出来るようになるのか、何から始めてどう進むべきか
そういう事が解らないはずだよ。指導者が居ないから自分で考える必要がある。
それに対して君は仕事の依頼という形で上司に上手く誘導してもらって
あんまり余計な事を覚えずともプログラミングが習得出来たんじゃないか?
0108デフォルトの名無しさん
垢版 |
2017/04/20(木) 08:32:15.40ID:ULVYgiZE
>>107
それこそ仕事で課題を振られた俺みたいに、>>95が何をしていいかわからないなら
適切な課題を振ってあげるのが指導者の努めだと思うけどね
(そもそも当時の上司の仕事の振り方は今考えても言語仕様も覚束ない初心者に
ノーヒントでやらせるものではなかったが…あのクソ野郎)
初心者に「自分で考えろ」はちと突き放しすきな気はするが、まぁここは初心者スレとはいえ所詮2ちゃんだからな
教師や上司レベルで親切にする必要もないか
0110デフォルトの名無しさん
垢版 |
2017/04/20(木) 19:35:53.47ID:zzqpI3yw
わかりません教えてくださいじゃ仕事まわらないからな
独学する能力は必須と言ってもいい
最初から独学できないやつをスパッと切り捨てるのはありだよ
企業だってボランティアで素人を飼ってるわけじゃないんだからさ
0112デフォルトの名無しさん
垢版 |
2017/04/20(木) 21:09:01.70ID:you9TgiF
ここは質問スレなのに脱線し過ぎ
ちゃんと仕事できる人はわきまえてるはずだよね
0115デフォルトの名無しさん
垢版 |
2017/04/22(土) 20:11:13.16ID:OyJbeS9D
開いているページ内で一度実行してからでないとCtrl+F11で実行のショットカットがうまく動作しません。
ショットカットキーは何か設定する必要があるんですか?
0116デフォルトの名無しさん
垢版 |
2017/04/23(日) 12:59:19.13ID:8bLn4k+p
プログラミングの勉強初めて数日
何か簡単なツールとか作ってみたいけど
題材として良いものありますか?
0117デフォルトの名無しさん
垢版 |
2017/04/23(日) 16:25:01.37ID:q6MqXCrn
>>116
まず、GUIにするかCUIにするか?
CUIは普通は画面についてあまり考えなくても良いので楽だ。
0118デフォルトの名無しさん
垢版 |
2017/04/23(日) 18:34:09.06ID:qqjyZhzJ
>>116
テキストに行番号つけて表示するコマンド作る。
自分のコード表示させてはニヨニヨ出来るのでオススメ。
0120デフォルトの名無しさん
垢版 |
2017/04/23(日) 20:36:09.42ID:7bZTt8wr
自分の場合はwikipediaのアルゴリズムで素数判定や素因数分解とか作ったなあ
bashのfactorよりかなり早いから普段から使えるし
0121デフォルトの名無しさん
垢版 |
2017/04/24(月) 21:38:18.35ID: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を呼び出しているわけだが

こういう関係を表現するような日本語ってなんかないのかな
親とか兄弟とかそういう
0123デフォルトの名無しさん
垢版 |
2017/04/26(水) 01:00:33.67ID:DJoflXur
Java初心者なのですが
オラクルのJavaシルバー?の資格取得を目指そうと思ったら、どのぐらい勉強したらいけるのでしょうか
プログラミングの経験はPHPとRubyを齧ったぐらいです
0124デフォルトの名無しさん
垢版 |
2017/04/26(水) 05:11:15.63ID:fNfh3ik4
>>0121 たぶん貴方には気に入らない解答だと思うけど、
そのメソッドをC言語の関数に書き変えるなら可変長引数の関数になるよね。
int printf(const char *format,,,); こんな感じの。
何の為に言葉を必要としてるのか解らないけども、
要はオーバーロードの仕組みの説明を省こうとしてるのでは?
C言語にはオーバーロードが無くてぇ…という具合に説明するとか、
なにしろ話を聞く方からしたら解り辛い話をしようとしていそう。
0125ich1
垢版 |
2017/04/26(水) 07:18:55.25ID:KcpaNie5
https://goo.gl/Y4tSAe
これは嘘でしょ?
本当なら落ち込むわ。。
0127デフォルトの名無しさん
垢版 |
2017/04/26(水) 16:36:59.72ID:vjkzFaZx
>>121
義兄弟
0128デフォルトの名無しさん
垢版 |
2017/04/26(水) 16:51:30.93ID:/ZfpN6QH
イデワンに複数のクラスを書くことは可能でしょうか?
publicを外すことによって。
0129デフォルトの名無しさん
垢版 |
2017/04/26(水) 17:46:51.25ID:HrCTO57d
>>128
知らねえ。
てか、やってみればいいじゃねえか。
0130デフォルトの名無しさん
垢版 |
2017/04/26(水) 18:04:36.33ID:C1JG3n6h
>>128
ID:/ZfpN6QHはム板/マ板に住み着いている荒らしなのでスルーで
自分で調べりゃいいことを他人に丸投げして調べさせる、悪意ある質問を繰り返しています
0131128
垢版 |
2017/04/26(水) 18:22:25.64ID:/ZfpN6QH
>>130
荒らしではない。
悪意ある質問などしてない。
0132デフォルトの名無しさん
垢版 |
2017/04/26(水) 19:08:26.13ID:aOOyj4L0
>>131
まあとにかくやってみればわかるからやってみな。
0133デフォルトの名無しさん
垢版 |
2017/04/26(水) 19:46:51.92ID:VGUvgo7C
Ideoneの話だからここだとスレチじゃないかね
2chだと専門で扱ってる所無いかもしれんが、他で聞いた方が良いだろうな
0134128
垢版 |
2017/04/26(水) 19:54:48.55ID:/ZfpN6QH
>>129 >>132
ありがとうございました。

>>133
ソフトウェア板ですかね。
0135128
垢版 |
2017/04/26(水) 20:17:14.84ID:/ZfpN6QH
たびたび失礼します。

やってみたら出来ました!
https://ideone.com/V0Jd9h
繰り返しになりますが、アドバイスをくれた方ありがとうございます。
0137デフォルトの名無しさん
垢版 |
2017/04/27(木) 12:34:34.72ID: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.09ID:11f5ZnzK
誤爆しましたすみません
0139デフォルトの名無しさん
垢版 |
2017/04/27(木) 16:27:12.96ID:KUrn7ZtR
Javaで、char型の変数に文字を(キーボードから)入力したいのですが、
Scannerクラスを使うとnextChar()が無いためうまくいきません。
next()やnextLine()だとコンパイルエラーになってしまいます。
どのようにすればよいでしょうか?
0140デフォルトの名無しさん
垢版 |
2017/04/27(木) 17:06:15.78ID:Zbny+f2I
>>139
今のJavaで積極的にcharを使う理由は全然ないんだけど、何か理由があるのかな
まあそれはともかくScannerから一度Stringで受けてからcharAt()すればいいんじゃね?
0141139
垢版 |
2017/04/27(木) 18:34:31.17ID:KUrn7ZtR
>>140
レスありがとうございます。
本の課題でchar型の入力を使うものがあったので。
charAt()メソッドを使ったら出来ました。
https://ideone.com/O96vZQ
ありがとうございました。
0143139
垢版 |
2017/04/28(金) 16:13:12.31ID:OeyLlymU
>>142
ありがとうございます。
Scannerクラスより利用頻度は低くなると思いますが、
参考にしたいと思います。
0145139
垢版 |
2017/04/28(金) 16:52:55.66ID:OeyLlymU
>>144
まだ詳しく理解してないですが、
char型を使う場合に、という意味ですかね。
今はScannerしか使ったことないので…。
0146デフォルトの名無しさん
垢版 |
2017/04/28(金) 17:26:10.18ID:pIHGdJ8Z
>>145
汎用性の高さって意味
ScannerよりもIOStreamの方がやってる内容が低レベル(機械に近い)ので見る機会も使う機会も多いよ
0147139
垢版 |
2017/04/28(金) 17:53:15.48ID:OeyLlymU
>>146
分かりました。覚えておきます。
ありがとうございます。
0148デフォルトの名無しさん
垢版 |
2017/04/29(土) 15:38:04.47ID:JW7PzOlh
cvsファイルで
1 田中 りんご
3 鈴木 みかん
6 齋藤 ヨーグルト
2 根元 パン
5 根岸 サラダ
4 佐藤 ご飯

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

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

やり方教えてください
0149デフォルトの名無しさん
垢版 |
2017/04/29(土) 15:38:07.81ID:hP9HIxoy
JavaFXでゲーム作りたいけど全然解説してる所ない…・・・
そんなに見放されてるもんなのか
0150デフォルトの名無しさん
垢版 |
2017/04/29(土) 15:39:33.67ID:JW7PzOlh
なんどもすみません
今は
1 田中 りんご
2 鈴木 みかん
3 齋藤 ヨーグルト
4 根元 パン
5 根岸 サラダ
6 佐藤 ご飯

みたいになってます。
0151デフォルトの名無しさん
垢版 |
2017/04/29(土) 15:48:07.67ID:nyANDfpK
別々の配列じゃ連動とか複雑過ぎ。
クラス作って、クラスの配列で読込やソートすれ。
0153デフォルトの名無しさん
垢版 |
2017/04/29(土) 17:16:52.09ID:6B/XobRt
>>148
インデックスをソートしちゃえばいいよ
https://paiza.io/projects/Brbmeg7M6bZOYPELm1TOMQ

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

テーブルのようなデータ扱うときは
データは行の集合、行は列の集合
にしたがいんじゃないかな
0155デフォルトの名無しさん
垢版 |
2017/04/29(土) 23:13:29.81ID:nyANDfpK
C#には構造体在るけど、Javaは無い。
メソッド無いクラス作れば、事実上の構造体。
0156デフォルトの名無しさん
垢版 |
2017/04/30(日) 02:15:39.83ID: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.12ID:Pd/tmEqA
>>150
それぞれの列を別々の配列に詰めたら行ごとの関連付けが面倒くさいから行単位で関連付けてから配列に突っ込むイメージの方が楽
具体的にはもう出てるけど各行を表すEntityクラス作って各行のデータ突っ込んだインスタンスを配列化する
0158デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:33:25.51ID:0NS9QiRt
一括りのデータを扱う時はレコードというもので扱うんだよ
レコードには固定長レコードと可変長レコードがある
固定長レコードは各フィールドの長さが決まってるからランダムアクセスすることができる
対して可変長レコードはシーケンシャルアクセスしかできないという欠点がある
0159デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:34:31.46ID:/xQtxfzV
TreeMap 使えばいいのでは?
TreeMap<Integer, String[]> のインスタンスに put な。
0160デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:36:54.83ID:/xQtxfzV
あ、行ごと扱うならキーだけIntegerにして値はそのまんまStringで入れといてもできるな。
0162デフォルトの名無しさん
垢版 |
2017/05/01(月) 14:58:41.66ID: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なしでよく分からない所に返しているのに動いているのが分からず……
0163デフォルトの名無しさん
垢版 |
2017/05/01(月) 15:07:15.65ID:UF+7Ud8a
>>162
return x + y;はx + yの値をメソッドの呼び出し元に返してる
return ans;はansの値をメソッドの呼び出し元に返してる
0164デフォルトの名無しさん
垢版 |
2017/05/01(月) 15:36:26.65ID:F35eYYLf
>>163
あ、どっちもメソッドの呼び出し元に返してるんですね
根本的に認識を間違えてたみたいです、ありがとうございます
0165デフォルトの名無しさん
垢版 |
2017/05/04(木) 03:35:25.45ID:gAUNCpWB
paizaでfor文で解ける問題をforEachで解いてみたら軽く2倍以上の時間がかかったのですが効率悪くないですか?
使い道あるんですかね
0166デフォルトの名無しさん
垢版 |
2017/05/04(木) 03:57:25.21ID:0GlJDnqX
Java随分離れたけど、forEachって何。
メソッド?
Javaのforeachって拡張for文だったはずだが。
0167デフォルトの名無しさん
垢版 |
2017/05/04(木) 04:52:18.46ID:4JL58KAn
foreachは生えてるぞ。
list.forEach(System.out::println);
とか。拡張forにしろイテレータ使うと要素数によっては処理時間に差がつくな。
0168デフォルトの名無しさん
垢版 |
2017/05/04(木) 05:13:05.21ID:0GlJDnqX
ふむふむ。
Linqっぽいの付いたのね。
その用途だとmapとかの方がらしいメソッド名なんだが。
0172デフォルトの名無しさん
垢版 |
2017/05/04(木) 13:22:46.77ID:qYtoqfij
>>168
mapは変換のインタフェースとして別であるよ
forEachはstreamの終端処理だよ
0173デフォルトの名無しさん
垢版 |
2017/05/04(木) 14:52:50.80ID:hrGLq/bC
今扱ってるシステムがJava7だからstreamとかラムダ式とか使わないけど
本読んでもよくわからん……
0174デフォルトの名無しさん
垢版 |
2017/05/04(木) 15:36:20.32ID:EbCQq7yq
あれ?Java7にはないんだっけ?
0177デフォルトの名無しさん
垢版 |
2017/05/04(木) 19:19:52.86ID:YNozeJnq
皆最初どうやってjavaを勉強したの?
自分今基本情報処理試験をあとはプログラミングのところだけっていうところまでやったのだけど、カプセル化とかモジュール分けとかオブジェクト指向とかそういう考え方があるんだってういのはわかったんだけど
いざ自分でnetbeansのjavaファイルで書こうとしたらまずはoutprintしてみようと思ったら早速エラーが出てエラー原因が何だか全く分からない
英語の基本文法みたいにそういうの知らないと厳しい気がするのだが
皆の初学の経験を教えてほしい、できれば独学でやった人から聞きたい
あと、何か作ろうって思ったときはフローチャート作った方がいい?
0178デフォルトの名無しさん
垢版 |
2017/05/04(木) 19:43:35.61ID:mK1iuMfc
>>177
俺は全て独学だがまずはC言語、C++、C#の順に勉強する
するとJavaを半日程度で理解できる下地が出来上がる
何事も基本が大事だ
基本ができてればJavaなどたやすく扱えるし基本ができてなければどんな勉強をしても身につかない
物事には順番がありそれはお手軽に身につくものではない
0179デフォルトの名無しさん
垢版 |
2017/05/04(木) 20:04:55.79ID:u6JIByox
>>177
ひたすらエラーメッセージを読む
エラーメッセージをググる
「java ○○」でググる
「java ○○とは」でググる
「java ○○ できない」でググる
「java ○○ するには」でググる
エラーメッセージで知らない英単語があれば意味をググってからもう一度読む
答えが書いてあるっぽい掲示板が英語で書かれてても臆せず読む

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

後はエラーが出たらググるか
ソースコードどっかに置くかかここに書いて聞くか
0182デフォルトの名無しさん
垢版 |
2017/05/04(木) 20:30:41.25ID:rPmF/fmP
>>180
体系的な知識を身につけるのは大前提として、エラー対処の知識が要らないわけないでしょう
少なくともJavaを勉強するために先にC#を学ぶなんてトンチンカンなことしてる暇があったらその時間でJavaの
知識を仕入れるべき
0183デフォルトの名無しさん
垢版 |
2017/05/04(木) 20:49:08.82ID:Z6thB1wv
スッキリわかるJava(という書籍)では、コンストラクタやインスタンスメソッドに
publicが付いてないのですが、基本的に付けない方針で問題無いでしょうか?
0185デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:14:39.50ID:mK1iuMfc
>>182
トンチンカンだとおもっているならその程度だよ君は
C、C++を知らないプログラマなど潜りの素人だし
優れた言語設計のC#をJavaより先に学ぶメリットは大きい
そしてこれらをこなせばJavaも自然とできるようになっている
したがってJavaなんぞは後回しで良い
0186デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:23:59.84ID:qYtoqfij
>>185
C、C++、C#を勉強するのにかかる時間はどれくらい?
それはJavaだけを勉強したときよりも短くなるの?
0187デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:32:52.04ID:mK1iuMfc
>>186
Javaだけやって同じレベルになるより遥かに早いよ
初心者から初めて金を貰っても許されるレベルになるまで1年といったところだな
Javaだけだと10年経ってもその領域に届かないクズが少なくないということはこの業界の先人たちが証明している
急がば回れというやつだ
0190デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:40:59.09ID:qYtoqfij
>>187
C、C++、C#を勉強してJavaを勉強して到達するレベルを
基準にしたらそれはそうなると思うんだよ

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

いろんな言語を1年で齧って回るよりはJavaを勉強したがいんじゃないかな
0191デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:47:21.88ID:qYtoqfij
>>177
慣れることが大事なのでサンプルコードを書きまくるのがいいと思う

おすすめは↓の2冊

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

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

10日でおぼえる〜は1日目はこれみたいに区切りがいいので
やりやすいかと
0192デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:47:36.98ID:GHkN69u9
>>177
元々C言語は知っていて仕事でもずっと使ってた。で、C++が流行り出したので少しは学習したが仕事で本格的に使うまでには至らなかった。
その後かなり時間が経ってからJavaが流行り出して、そこで入門書読んでだいたいわかった感じ。これが20年ぐらい前の話だ。
しかし今まで仕事はずっとC言語ばかりでJavaを仕事で使うことはなかった。Linuxのサーバ側のCで作られたプログラムにずっと関わってたからだ。
0194デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:01:25.36ID:mK1iuMfc
>>190
Javaにはろくな参考書がないからね
良書の揃ってるCファミリとC#の方が早く深く学べる
そうして土台が出来上がればじゃあJavaの場合はどうなのという事を覚えるのは実に容易い
結果的にJavaだけを学ぶ場合よりも早く深くJavaを知ることができる
0195デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:06:59.52ID:qYtoqfij
>>194
JavaとC#は似てるから
JavaがわかるようになればC#もわかるかと

深くJavaを知るっていうのはつまりC、C++、C#を勉強して到達するレベルの話だよね
そうでなくてJavaを勉強して到達するレベルを基準にした場合
Javaを勉強するのが近道だと思わない?
0196デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:13:01.02ID:qYtoqfij
Javaがわかるようになればプログラムの考え方も身についてるから
CやC#もすっと入ってくるんじゃないかな
C++は人類にはまだ早いと思う
0197デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:26:18.44ID:hGwzsYkf
むしろJava分かったから、C/C++のスタック/ヒープの意味(newするクラスとしないクラスの違い)や、C++特有のフレンドクラスが分かった。
順番はどうでも良いけど、Javaとは別にCは学んでおいた方がいい。
0198デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:30:38.02ID:4KUdSbXO
プログラマーたるもの手続き型、オブジェクト指向型、関数型に属する言語を最低でも一つずつは習得しておかんとね
そして関数型に惚れ込んでJavaでもラムダ計算やカリー化をバシバシ使い周りに疎まれる存在となるのだ
0199デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:38:29.99ID:TB6ujr0/
ruby→javaの順だけど
オブジェクト指向の理解はし易くなった感
javaだと思いっきりソースコード変わるから実感じやすい
0200デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:41:33.02ID:g1QlM0ze
Javaでラムダ計算はつらいとか考えてたら気がついたらマシンにClojureが導入されてる
0202デフォルトの名無しさん
垢版 |
2017/05/04(木) 23:38:27.31ID:qYtoqfij
>>201
標準ライブラリにはないけれども、大丈夫っしょ、余裕っしょ、できるっしょ
0203183
垢版 |
2017/05/04(木) 23:40:33.61ID:Z6thB1wv
>>184
ありがとうございます。
よく見てみたいと思います。
0204デフォルトの名無しさん
垢版 |
2017/05/05(金) 00:12:55.97ID:YKLEnk0e
>>90
ここに書いてある

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

この本が、すべての言語の基本。
その後、好きな言語を勉強すればいい
0205183
垢版 |
2017/05/05(金) 01:17:39.61ID:GcsXwLgt
>>204
その本悪くないと思うし、あんまりケチつけたくないけど、
Scannerクラスの使い方が詳しく載ってなかった。
(インスタンス化についての記述が無い)
Randomクラスも同様。
過信は禁物か。
0206デフォルトの名無しさん
垢版 |
2017/05/05(金) 01:23:45.78ID:ecYRcjUo
>>205
その辺詳しく書いてある本を知りたいわ
Javaは本多いけど、どのレベルまで書いてあるか全然分からん
0209デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:03:32.40ID:Pxg1OvaW
>>207
こういうサイトがある時何から学べばいいの?
俺みたいなちんぷんかんぷんだと上から全て順に読んで、わからない言葉があると調べて、それでも概念的なものがよくわからなくてとりあえずわかったふりしたまま先に進んで結果あまり頭に入ってなかったっていうのがよくある失敗パターンなのだが
0210スッキリ厨
垢版 |
2017/05/05(金) 02:04:46.46ID:YKLEnk0e
「たのしいRuby」など普通の本では、オブジェクト指向の説明は、数十ページ

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

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

未だに外国では、この本が無いから、
オブジェクト指向を勉強するのに、四苦八苦している
0211デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:06:41.17ID:Pxg1OvaW
あと、javaを実行する時とJSPを実行する時、それぞれpublic class{とか<%とか必要だと思うんだけどこれがないとコンピュータが処理であると認識しないっていうこと?

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

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

今は繰り返し処理とかつかって素数を求めるプログラムを作るっていう事を書いてるレベルだから、もっとゲーム的な方に行くとその意味がはっきりするのかね?
0213デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:36:54.89ID:Y8XbhYBn
もうはっきり言ってしまうとプログラミング初心者がオブジェクト指向型言語なんてものから始めるべきじゃないんですよ
たかだかHelloWorldやFizzBuzzするためになんでクラスやアクセス修飾子を気にせねばならんのだと
それでもどうしてもJavaから覚えたいなら身の丈に合わない疑問は飲み込んでひたすら前に進むしかないのですよ
0214デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:40:44.53ID:iQB12R96
つっても、もう世に出てる言語の殆どはLL含めオブジェクト指向言語だろ。

。。。関数型言語の世界へようこそ?
0215デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:44:11.57ID:jRdxjTk1
>>212
例えばその走るって動作には、燃料と空気を供給してエンジンを作動させて動力を生み出すという過程があって、これは二輪でも四輪でも共通である(現実にはエンジンごとに違うがここでは無視)
二輪と四輪のクラスを作るとしてそのベースになる車というインターフェースを定義するとして、両方に同じことを書くことになって、それは無駄だからその部分を抽象クラスとしてまとめてしまおうという考え
間違ってたらスマソ
0216デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:50:09.25ID:TDjvniVu
>>210
>未だに外国では、この本が無いから、
>オブジェクト指向を勉強するのに、四苦八苦している

それはないww
そこまで書くとステマかと思うわ
0217デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:54:03.98ID:Pxg1OvaW
>>212
そういう前提があるっていう事でしょ?でも実際処理で車のエンジンの仕組みは重要じゃなくてどのようにそれらの車が動くかが重要になるのじゃない?
マニュアル車ならクラッチ操作、オートマならレンジチェンジ(でいいんだっけ)などの具体的な操作を個々に記述して行くと思うんだけど共通の仕組みそのものを定義する事は便利さには繋がっていないんじゃないかなって
確かに車はエンジンがないと動かないけど、プログラム上では(ってかユーザーにとっては)エンジンがあるかないかなんて関係が無いんじゃないの?
定義しないといけないっていう具体的な例があったら教えて欲しい
0218デフォルトの名無しさん
垢版 |
2017/05/05(金) 02:59:46.55ID:Pxg1OvaW
窓はガラスでできている。そのガラスを使って窓を開け作った上でこっちに押したら閉まる、こっちに押したら開くなどのことが出来るようになる
だからまずはガラスでできているという共通前提定義が必要となる。それはわかる
でも実際プログラム上でそれがどう有効なのかがわからない
人間クラスに名前はまず名前、年齢が必要、その上で個々の動作をして行くわけだけど定義してそのクラスを呼び出しても結局年齢とかは手書きで書いて行くわけじゃん

例えばどういう時にオブジェクト指向を使ってるのかとかあったら教えて欲しい、ゲームとかでもいいので
0219デフォルトの名無しさん
垢版 |
2017/05/05(金) 03:13:17.49ID:jRdxjTk1
確かに個々の動作を書くのには抽象クラスは全く役に立たないよ、ただプログラムを動かすにはその外から見て重要ではない部分が必要なわけで、その部分が共通だとコピペするのは簡単だが後々の修正が大変、だからまとめておくと
0220デフォルトの名無しさん
垢版 |
2017/05/05(金) 03:20:10.72ID:Pxg1OvaW
>>219
具体的にプログラムの世界だと何をまとめるの?実行するための記述以外にプログラムそのものを動かすために必要なものの具体例がわからないのだが
0221デフォルトの名無しさん
垢版 |
2017/05/05(金) 03:37:46.29ID:jRdxjTk1
JavaにはListって可変長の配列を作るためのインターフェースがあるけど
http://docs.oracle.com/javase/jp/7/api/java/util/List.html
これだけのメソッドを実装しろと要求してくる
そしてこれを使って中身の違う実装を作るときに全部を何度も実装するのは骨が折れる作業だよね
そこでAll系のメソッド等他のメソッド呼び出しで書けるものを抽象クラスに書いておけば実際に実装するときに書かなくてよくなる(効率化したいとかだと書いてもよい)
折角クラスライブラリのソースあるんだしAbstractList辺りのソース見てみるといいよ
0222デフォルトの名無しさん
垢版 |
2017/05/05(金) 03:43:35.59ID:jRdxjTk1
分かりにくい説明しかできなくてすまんの、多分現実の物体で考えずにプログラムとして直接考えるのが一番の近道じゃないかな
0223デフォルトの名無しさん
垢版 |
2017/05/05(金) 03:50:24.78ID:TDjvniVu
>>220
たとえば共通の手順とか

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

今はJavaでも抽象クラスとは違う方法でも実装できるけど
こういう基礎の理解は必要
0224デフォルトの名無しさん
垢版 |
2017/05/05(金) 04:16:15.80ID:JPrvtXpw
ゲームのマップを作ろうと考えています。
マップ画像を表示させ、マップ上の任意の部屋をクリックすると、その場所の名前(ロビー、キッチン、ベッドルーム、など)を表示するようにしたいです。
この処理を実装するには、どのような方法がスマートでしょうか?
各部屋の形は四角形ではなく、円や三角形など複雑な形をしているので、単純に四隅の座標を部屋名とともに配列に格納しておき、クリックした座標を内部に含むものをfor文で回して探索する・・・という方法は難しいです。
どうかお力添えください。
0225スッキリ厨
垢版 |
2017/05/05(金) 05:14:23.88ID:YKLEnk0e
ゲームは、オブジェクト指向の最高峰

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

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

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

オブジェクト指向がどれぐらい難しいか、分かるでしょ?
だから、スッキリが日本中に、革命を起こした
0226デフォルトの名無しさん
垢版 |
2017/05/05(金) 05:22:28.10ID:YKLEnk0e
>>224
java.awt.Shape interfaceで定義される、containsメソッドは、
指定された点が、図形の境界の内側にあるか否かを判定する

「java 図形 内側」などで検索!
0227デフォルトの名無しさん
垢版 |
2017/05/05(金) 12:17:52.64ID:Oxs8iPV6
超単純にやるなら
・種別(矩形、三角形、円)
・パラメータ(最大4つ)
 頂点の絶対座標もしくは円の中心座標&半径

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

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

スクロールとか必要ならもっと面倒だけど
プロパティかパラメータを増やせばなんとかなるべ
0228デフォルトの名無しさん
垢版 |
2017/05/05(金) 12:24:15.13ID:jsHCnOkz
Javaプログラマはオブジェクト指向をよくわかってない人が多い
C#プログラマはみんなよくわかってる
C#マイクロソフト公式の参考書など良書が揃っているからね
Javaはろくな本がない
初心者をごまかしてわかった気にさせるような本ばかりだ
0231デフォルトの名無しさん
垢版 |
2017/05/05(金) 12:55:46.33ID:Dvx8ftQc
いちいち部屋分割して図形の頂点座標測ったりとか種別とかやってられないでしょ
元のマップとは別に、それぞれ部屋ごとに色で塗りつぶしたマップを用意して裏で読み込ませといて、クリックした地点のカラーコード読んで色に対応した部屋名を取り出す
ってのを考えたんだけどどうよ
0234デフォルトの名無しさん
垢版 |
2017/05/05(金) 13:28:33.31ID:8b9qfJY2
>>233
説得力が皆無だからそれ以上非論理的な話をするのはやめとけと言っているだけですよ
データを他人に見せられない主張に意味などない
まぁ所詮2ちゃんだし、それでもわめきたければ好きにすれば?
0236デフォルトの名無しさん
垢版 |
2017/05/05(金) 13:41:46.76ID:XP+Q0OKG
>>234
そもそも君を説得する必要もないしね
事実は事実として変わらないことだから君がどう思おうと何の影響もない
0237デフォルトの名無しさん
垢版 |
2017/05/05(金) 13:49:41.18ID:n4hNDFR+
会社にありますはガイジすぎる
そんなん通るならC#プログラマーは全員屑!証拠は俺の会社にある!
0238デフォルトの名無しさん
垢版 |
2017/05/05(金) 14:21:00.68ID:XP+Q0OKG
というか俺の会社じゃなくてもどの会社にでもある
過去の案件を分析すれば答えは出るよ
Javaがいかに失敗を生み出してきたか数字ではっきりと出てくる
GW明けにでも調べてみるといい
0239デフォルトの名無しさん
垢版 |
2017/05/05(金) 14:28:17.47ID:xfO5LNpr
今から勉強しようとしてる人向けの話じゃなかったのか?
今から勉強しようとしてるのなんて学生に決まってるんだから会社の資料は見れないでしょ……
まさか社会人にもなってやっとJava勉強しようとしてる意識低い系の話なのか?
0240デフォルトの名無しさん
垢版 |
2017/05/05(金) 14:30:45.16ID:EB13pOeh
去年調べた結果だと、Javaの方がC#より三倍生産性が良かったよ。
今年は知らんが、多分同じじゃない?
0242デフォルトの名無しさん
垢版 |
2017/05/05(金) 16:17:42.92ID:Pxg1OvaW
public class void String NewClass() {

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

}

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


}

main このmainっていうのはクラス名?あとどこかでclassは一つのファイルに一つまでしか書けないって書いてあったけどこれにはclassが入ってないけど例えばオブジェクト指向で新しいクラスを作りたいってなった時に
classはファイル名と一緒でなければいけないって書いてあったのだけど、どうやって考えたらいいの?
0245デフォルトの名無しさん
垢版 |
2017/05/05(金) 16:48:22.02ID:Pxg1OvaW
多重に質問申し訳ない
言葉を覚えての色々な事を質問して回る子供だと思って聞いてほしい
javaの構文を覚えるときは皆一つの熟語として覚えてる?
例えばこういうときは
public static void main(String args[]){  を使うんだ、みたいなものを一つひとつの意味を考えないで丸ごと覚えているイメージ?
あとついでにもう一つ頼む、args[]の[]は配列を表すものだったと思うんだけどよく見るこのコードはなんで配列を指定しているの?
0246デフォルトの名無しさん
垢版 |
2017/05/05(金) 17:03:12.00ID:Pxg1OvaW
お願いします
今まで出力はコンソール上またはjspをつかってweb上だけに計算結果を出力させてたんだけどより実践的にwebにつながなくてもコンピュータ上だけで処理させるには何が必要になってくるの?
あとテキストボックスとかラジオボタンとか使いたいのだけどその際にはimportとか必要になってくる?
0247デフォルトの名無しさん
垢版 |
2017/05/05(金) 17:06:37.66ID:UN44kkRF
全てに意味があるんだから全て覚えなさい

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

このあたりで調べなさい
全部まともに答えるには金取らんと割に合わんレベルだよそれ
0248デフォルトの名無しさん
垢版 |
2017/05/05(金) 17:06:41.65ID:SKOR9dHG
public
static
void
main()
String args[]
{
それぞれの意味を覚えてる

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

コントロールはjava コントロール名とかで調べる
0250デフォルトの名無しさん
垢版 |
2017/05/05(金) 17:26:34.34ID: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型を指定する」とか見ても
理解できるどころか「値を返す、返さないってなんやねん!」ってなって意味が無い
0251デフォルトの名無しさん
垢版 |
2017/05/05(金) 17:43:33.01ID:RNJ7gaAH
どこから突っ込んでいいのか。。。
ここで質問するより入門書読むなり、入門サイト読むなりした方が良いよ。
分からないことが整理出来てから質問しなさい。
そこまで何も知らない状態で質問されても、入門書くらい読んでからにしろよと呆れられるだけ。
0252デフォルトの名無しさん
垢版 |
2017/05/05(金) 20:46:02.93ID:Pxg1OvaW
わかりました。
じゃあすっきりJAVA入門ていうの買ってみることにします。
ちなみにこれをやれば基本的な文法は理解できるようになりますか?
自分は今コーディングするたびに〜〜classにはメソッドがありませんとか型の開始が不正ですとかidentifierがありませんとか
そういうエラーメッセージに苦しめられてる状態ですけどそういった部分も解決できるでしょうか?
それといろいろなコーディングの例ものっていたりするでしょうか?
とりあえず今やりたい事としてはアプリ上にテキストボックスなどを置いてユーザーからの入力に対して対応できるプログラムが出来ればいいなと思ってます
つまり、今は素数一覧判定するプログラムを作ってあるんですけど内部で数値を書いてファイルを実行して初めて表示されるのだけど、コードの内部を知らない人に使ってもらえるようなアプリを作れるようになるかというところです

自分全くの初心者なのでわかりやすさと、どのレベルまで行けるかっていうのを教えてもらえると嬉しいです、それと、第二版と二種類あるみたいだけど安い方を中古で買えば問題ないですか?
0257デフォルトの名無しさん
垢版 |
2017/05/05(金) 21:22:34.99ID:RNJ7gaAH
>>252
mainメソッドねーよとか、正しいmainメソッドの書き方じゃねーよって怒られてるだけ。

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

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

入門したら、簡単なので良いからさっさと何か作る。
0260デフォルトの名無しさん
垢版 |
2017/05/05(金) 21:55:05.15ID:RNJ7gaAH
うむ。
最低限はね。
複雑なのはWebで本家のドキュメント眺めながらとか。
あなたのアイデア次第の部分のが多い。
作り方を思いつけるか。
調べられるか。
知ってるか。
0261デフォルトの名無しさん
垢版 |
2017/05/05(金) 22:15:47.72ID:Pxg1OvaW
>>260
発想の部分は好きだから多分いけると思う
むしろ色々な事をどんどん広げて行きたいと思う
事務職でマクロやってた時も結構複雑な処理をネットで調べたりして実装してた
知ってるか
っていうところがちょっと不安だけど大丈夫かな
でもとりあえず「オブジェクト指向 例 」「メソッドとは」「クラス 定義 必要性」とかわからないままを永遠にループ検索することはとりあえずなくなりそうでよかった
早くAmazonからこないかな
0262デフォルトの名無しさん
垢版 |
2017/05/05(金) 22:48:55.45ID:G0OfeBgr
しかしJavaで書籍というか入門書無しで勉強する人おるんだな
大体はスッキリの入門、やさしいJava、明解のどれかから手を付けて始める印象が多い

というかせっかく入門書一杯あるんだから利用しない手はないべ
0263デフォルトの名無しさん
垢版 |
2017/05/05(金) 22:49:01.87ID:RNJ7gaAH
知ってるかは思いつけるかと調べられるかの繰り返しによる積み重ねだから、心配は要らない。
0264デフォルトの名無しさん
垢版 |
2017/05/05(金) 22:49:39.29ID:+CHRnsuY
エネルギーを2chに使うのをやめないと本読んでも意味ないんじゃないかな
0265デフォルトの名無しさん
垢版 |
2017/05/05(金) 23:14:46.17ID:GcsXwLgt
配列について質問です。
…{1,2,3};
という表記法と、
…new int[]{1,2,3};
という表記は何か違いがあるのでしょうか?
0268デフォルトの名無しさん
垢版 |
2017/05/05(金) 23:42:36.40ID:RNJ7gaAH
newの方が本来の書き方で、newしない方はCからの移行組のために単純に書けるように後から作られたもの。
0269265
垢版 |
2017/05/06(土) 00:35:25.29ID:gDC1nU6T
>>268
そうなんですね。ありがとうございます。

どちらかではOKでどちらかでは駄目という場面とかありますかね?
0271265
垢版 |
2017/05/06(土) 01:34:48.70ID:gDC1nU6T
>>270
分かりました。ありがとうございました。
0272デフォルトの名無しさん
垢版 |
2017/05/06(土) 02:51:48.75ID:GtACJVEu
インスタンスの同一判定で違いが有るという話を見たこと有るが、
配列のインスタンスを判定する事自体がダメな事だと思ってる。

それより、int result[]=new int[10];
なんて書き方は覚えたての頃に少しした程度で、
今は、int result[]={ 0,1,2,3,4,5,6,7,8,9 };こう書くよなぁ…
C言語は知らなくても慣れてくるとみんなこうならない?
0273デフォルトの名無しさん
垢版 |
2017/05/06(土) 03:07:22.28ID:9tv813Aq
なる。
実はC++だとnewする、しないはスタックかヒープかの違いがあって、new int[n]とか宣言時に[]内に変数使える、使えないとか、配列作れる限界もnewした方が大きいとか違いがある。
でも、Javaは基本型以外は全部ヒープに置くので配列はヒープにしか置かない。
C形式がまだ無かった初期の入門書には何故配列をnewするのかの解説まであった。

Javaにおいてnewするしないに違いが無いなら、してられっかよ。って誰も書かなくなった。
0274265
垢版 |
2017/05/06(土) 04:21:51.57ID: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};
と書いてあり、そう入力するとエラーは無くなります。
なのでこの二つの表記法に文法的な違いがあるのでは?
と思ったわけです。

改めて皆さんの見識を伺いたいです。
本には違いはほとんど書かれていませんでした。
0275デフォルトの名無しさん
垢版 |
2017/05/06(土) 04:31:13.41ID:5R6Ql+c4
>>274
new を省略できるのは初期化の時だけ。あくまでも初期化の時だけ特別に書くことを省略することが許されている。
(書かれていないだけでやることは同じになる)。
0276デフォルトの名無しさん
垢版 |
2017/05/06(土) 04:34:42.43ID:feNHzNcv
>player1.hand = {2,13,26,13,48};
>とするとコンパイルエラーになるんですよね。解答には、

そのエラーメッセージで検索すべき!
それでも分からなければ、そのエラーメッセージをここに書いて、質問する
0277デフォルトの名無しさん
垢版 |
2017/05/06(土) 04:44:15.46ID:feNHzNcv
推測で書くけど、

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

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

型 a = new int[]{2,13,26,13,48};
一方、これは実行文。この行で、newが実行される
0278デフォルトの名無しさん
垢版 |
2017/05/06(土) 08:30:46.24ID:9tv813Aq
>>274
Cだとそもそも宣言時以外はそう言う書き方出来ないんだが、そうか、クラスのフィールドだと宣言と初期化が別れるな。
宣言と同時に初期化する時のみの特別な記述としてnewしない記述は使える。
それ以外はnewしないとダメ。
説明が雑ですまん。
理由は基本型じゃ無いから。
ヒープに置くのは全てnewが必要で、記述上特別扱いは配列の宣言と同時に初期化する時と、文字列のみ。
Cなんて、宣言と初期化が別れたらforで一個一個配列に値を入れるしか無いって言う。。。
0279265
垢版 |
2017/05/06(土) 11:15:43.19ID:gDC1nU6T
多くのレスありがとうございます。

エクリプスでは「配列定数はイニシャライザにおいてのみ使用可能です」と表示されました。
皆さんの言うように{1,2,3}という表記法は初期化時のみしか使えないということみたいです。
でも>>274の場合は初期化に相当しないのかな、と思うのですが…。
0281デフォルトの名無しさん
垢版 |
2017/05/06(土) 13:07:31.76ID:3Bn/MS7d
>>279
それは初期化であってる。
んで、newしなくて良いのは「宣言と同時に」初期化する場合のみ。
クラスのフィールドでint[] a;ってなってるのが宣言。
0284デフォルトの名無しさん
垢版 |
2017/05/06(土) 16:41:50.05ID:5R6Ql+c4
>>277
書き方違うだけでコードは同じように new する形式になっていると思うが。
というのは何れの書き方でも a[1] = 2; みたいに内容を後から変更可能だから。
ただし static の場合は書き換え可能なデータ領域に最初からインスタンスがあって
(つまりコンパイラがそれを含めた形でバイナリを作ってあって)そこへの参照を a に
代入するだけになるかも知れない。
static でない場合は普通に実行人ヒープに領域確保してからリードオンリーの
データ領域(コンスタントプール)から初期値をコピーしていると思う。
0286265
垢版 |
2017/05/06(土) 17:14:44.21ID:gDC1nU6T
>>281
そうなんですね、分かりました。

繰り返しになりますが、多くのレスありがとうございました。
0287デフォルトの名無しさん
垢版 |
2017/05/08(月) 17:19:02.28ID:C0kEGIYB
今日からjavaの本で学習し始めたんだけど

慣れたらpublicなんたらかんたらとか長い分も自分で一からかけるようになるの
0289デフォルトの名無しさん
垢版 |
2017/05/08(月) 18:34:23.43ID:YdKqfeaH
確かに自動生成されるけど、慣れるといつのまにか暗唱できるようになってる。
という感じ。
0290デフォルトの名無しさん
垢版 |
2017/05/08(月) 18:54:52.71ID:6xooNmVM
IDEでもテキストエディタでも入力補完機能があるから
わざわざ覚える事でもない
0291デフォルトの名無しさん
垢版 |
2017/05/08(月) 20:55:56.19ID:epGpOLAg
>>287
なる。
1〜2秒ぐらいで打てるようになる。
0292デフォルトの名無しさん
垢版 |
2017/05/09(火) 08:36:16.33ID:wOo51I5g
まぁでも本で勉強してればmainメソッドの成り立ちなんてじっくりねっとり解説されるから嫌でも覚えちゃうよね
0293デフォルトの名無しさん
垢版 |
2017/05/09(火) 12:44:24.36ID: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

関係ないソフトでてきてごめんなさい
0295デフォルトの名無しさん
垢版 |
2017/05/09(火) 16:18:51.10ID:iKf74YDS
>>293
なにがしたいのかわからん
そのソフト使いたいだけならexe形式のインストーラあるからそれ使えばええやん?
0296デフォルトの名無しさん
垢版 |
2017/05/09(火) 16:45:19.33ID:dAYvtASF
スッキリわかるjava入門でどこJavaじゃダメだからコマンドプロンプトっていうのを使ってくれって書いてあったんだけど、正直よくわからないからそのままnetbeansぇ続けても大丈夫?
0298デフォルトの名無しさん
垢版 |
2017/05/09(火) 18:28:25.96ID:zagaBJts
>>295
説明不足でごめんなさい
この2つのソフト(コマーシャルのMATLABとオープンのQuPath)はどちらも独立して使えてはいるんですが,片方のソフトからもう片方のソフトを呼び出せる機能があってそのことが書いてあるのが最初に添付したリンクです.
QuPath内にあるQuPath.cfgをJVMOptionに移動させるのが最初のステップなのですがそのJVMOptionが作りかたがわからないのです.
0299デフォルトの名無しさん
垢版 |
2017/05/09(火) 18:42:38.34ID:wOo51I5g
大丈夫大丈夫
これからも正直よく分からないところはどんどん飛ばしていけ
そうすれば正直よく分からないところで悩む必要無くなるから
0300デフォルトの名無しさん
垢版 |
2017/05/09(火) 19:45:49.93ID:41He4fJz
>>298
そもそもそのページがMATLAB → QuPath(op #1)とQuPath → MATLAB(op #2)の両方書かれてるのは理解してるよな?
op #1はMATLAB側の環境を整えてる
同#2はQuPath側だな

んで問題の箇所は簡単に済ませるならjava.library.pathをQuPath.cfgの中に記述しろって書いてるだろ?
実際のファイル見てないからわからんが、テキストエディタで見れば最低でも[JVMOptions]の行はあるだろうから、その下に追記してやればいい
例で書かれてるのはMAC版みたいだから自分の環境に合わせて書き換えろよ
0301デフォルトの名無しさん
垢版 |
2017/05/09(火) 20:00:45.39ID: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が出ればそのあとは判定しなくていいわけだし
改良点があれば教えてほしい
0309デフォルトの名無しさん
垢版 |
2017/05/09(火) 22:29:03.24ID:ivwxgVxg
>>301
「・」は出すように書いてあるからその通りに出てくるだけ
0310デフォルトの名無しさん
垢版 |
2017/05/10(水) 01:27:24.94ID:BYWHw2Iq
プログラミングっていうかゲーム作りって言ったらGUIとかアニメーションを使うのが一番に出て来ると思うんだけど、javaのコーディングでできるものなの?
0315デフォルトの名無しさん
垢版 |
2017/05/10(水) 09:46:36.96ID:BYWHw2Iq
>>311
そうなんだよね
自分もそれを投稿した直後に気付いた
If(m!=a)をif(m!=i)にしたら直った
累乗の数はそうなっちゃってたみたい



今はネットビーンズでプログラミングしてコンソール上で処理を表示させてるんだけど普通のアプリと同じようにダブルクリックして起動させるようにするにはどうしたらよいの?
0316デフォルトの名無しさん
垢版 |
2017/05/10(水) 12:42:35.37ID:3FTnTomt
>>315
jarファイルのMANIFEST調べろ
0319デフォルトの名無しさん
垢版 |
2017/05/11(木) 16:34:47.91ID:a7kjTynb
0320デフォルトの名無しさん
垢版 |
2017/05/11(木) 16:36:18.38ID:a7kjTynb
クラスのフィールドとかメソッドを書き換えられないようにfinalをつけるっていうけどソースコードそのものを渡さないとクラスが使えないだろうしfinalを外したりするのは自由にできてしまうのではないの?
0321デフォルトの名無しさん
垢版 |
2017/05/11(木) 16:50:23.23ID:eS2L0WVj
>>320
いいやコンパイルされたクラスにシンボル情報が付いてるからソース無くても使える

余談だかこれのせいで逆コンパイルしやすいそうな
0322デフォルトの名無しさん
垢版 |
2017/05/11(木) 20:02:59.23ID: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();としても同じ結果でした
コンパイルの際、型情報はどういう順番でチェックされているのですか?
0323デフォルトの名無しさん
垢版 |
2017/05/11(木) 20:24:14.54ID:qSTwHBOZ
>>322
こんパイル時は単純に変数が何クラスなのかしか見てなくて、それの場合はParentクラスだからその定義を見てpiyo()メソッドはprivateだからエラーにしてるだけ。
0324デフォルトの名無しさん
垢版 |
2017/05/11(木) 20:33:32.16ID:90G5iBS0
>>323
なるほど、コンパイル時は型情報のみでチェックをして、中身は実行時に初めて見てるのですね
参考書の「実行時のインスタンスを想像しながらプログラムを書いてはいけない」という意味がようやくわかりました
ありがとうございます
0325デフォルトの名無しさん
垢版 |
2017/05/12(金) 00:38:23.02ID:55apZTWp
エクリプスやコマンドプロンプトから別ウインドウを開いてシンプルな折れ線グラフを表示したいのだけど、何をどうすればいいかわかりません。
swingとかいうのを使えばいいのでしょうか?
0327デフォルトの名無しさん
垢版 |
2017/05/12(金) 06:49:04.24ID:84Td0x+H
>>326
その数字は終了ステータスと言って0以外だと異常終了したって扱いになるからちゃんとしたコマンドを作るなら使い分ける必要がある
0328デフォルトの名無しさん
垢版 |
2017/05/12(金) 14:49:58.50ID:LGrn4Vkx
メソッドの中カッコ(インデント)は改行しないで書くのが習わし?

あと、次の処理を行うまで2秒とか時間間隔を置くコードがあれば教えて欲しい
0329デフォルトの名無しさん
垢版 |
2017/05/12(金) 15:28:45.71ID:LGrn4Vkx
もう一個質問
クラスから作ったインスタンスって他でも利用できる?
メインでheroクラスのhを作ったとしてhのhpがあるメソッドによってデフォルトの100から50減ったとする
他のメインで呼び出した時hpが50減ったまま反映されてるのかな
0330デフォルトの名無しさん
垢版 |
2017/05/12(金) 15:37:25.98ID: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しようとしたら変数が見つかりませんってなっちゃう
0332デフォルトの名無しさん
垢版 |
2017/05/12(金) 16:37:05.11ID:QfK6Pl49
外部プログラムに情報を渡したいってこと?
いろんなとこで使うならDB保存でもすればいいんじゃないかな
0335デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:22:29.06ID:80n6+mfo
>>334
マジですか・・・・・・
プロの人はこれで動きが分かるのでしょうか

とりあえずはクラス名とメソッド名でググるようにします、ありがとうございます
0336デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:24:57.87ID:84Td0x+H
Pythonのリファレンスとかが詳しすぎるだけで本来こんなもんだよ、(多分俺の読解能力が腐ってるせいで)意味不明だからソース読みにいったりすることがよくある
0337デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:28:04.48ID:80n6+mfo
>>336
Rubyのリファレンスみたいなのを想像していたので戸惑いました・・・・・・
もし詳細な言語仕様が書かれた書籍などがあればそれも知りたいです
0338デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:28:26.99ID:LGrn4Vkx
外部に渡すっていうより、 
public static void main(String[]args){}の中に一緒に記述してたらインスタンス(勇者)を作るのと敵と戦うが同時に起きてしまって、敵にHPを減らされてもまた同じメインを実行したら勇者のHPも最初からにりせっとされちゃうじゃない
ゲームで言うセーブみたいな機能ってjavaでどうやって実現するのかなってずっと気になってた
0339デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:42:20.75ID:tAeUMPRn
>>330
matango m を new してるから生成される
matango型の変数をグローバル(?)なところに保存しておいて、どこかで new してそれを再利用しよう
0341326
垢版 |
2017/05/12(金) 19:54:24.39ID:Otw8y3gH
>>327
ありがとうございます。

この命令を使う是非についてもどなたか教えて頂けないでしょうか?
0343デフォルトの名無しさん
垢版 |
2017/05/12(金) 21:02:08.92ID:84Td0x+H
>>341
シェルスクリプト等のバッチ処理でコマンドが正常終了したとかの判定に使われるステータスだからそういう用途に使うならちゃんとしとけ、それ以外なら適当でいい
0346326
垢版 |
2017/05/13(土) 01:04:29.17ID:0v4JDuG/
>>345 >>他レスくれた方
ありがとうございました。気軽に使おうと思います。
0347デフォルトの名無しさん
垢版 |
2017/05/13(土) 13:16:21.43ID:nXg2xudY
あー。学校の課題かな?
これから switch 習うところみたいな。
0348デフォルトの名無しさん
垢版 |
2017/05/13(土) 15:09:30.58ID: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/
0349デフォルトの名無しさん
垢版 |
2017/05/13(土) 15:20:15.97ID:AEmw9vXq
Javaリファレンスを読み始めたのですが
フィールドのサマリーやメソッドのサマリーというのは一体なんなのでしょうか?
java.lang.Systemを見るとフィールドのサマリーの方は
System.[out]←これの事を説明しているのは分かったのですが
メソッドのサマリーの方は検討もつかず・・・・・・
0350デフォルトの名無しさん
垢版 |
2017/05/13(土) 16:33:51.59ID:nXg2xudY
>>349
サマリーって要約だろ?
それが何か?
0351326
垢版 |
2017/05/13(土) 16:58:01.94ID:0v4JDuG/
>>348
あー余計な事書かないでー。

なんかすいません、学生じゃないんです。
ここは速やかに返答が得られるので、使わせて頂いてます。
0352デフォルトの名無しさん
垢版 |
2017/05/13(土) 17:03:10.28ID:AEmw9vXq
>>350
あ、本当にただの要約なんですね
わざわざ「サマリー」で表記してあったので、てっきり特別な意味があると思ってしまいました・・・・・・
0354デフォルトの名無しさん
垢版 |
2017/05/13(土) 22:39:40.42ID:a+Yyd3LZ
今はmetbeansを開いてメインメソッドを書いて、ファイルの実行ボタンを押して起動させてるけど
ファイルをダブルクリックで開いたらこのアプリケーション起動、みたいなコマンドって作れる?
Fileクラスでオープン、そしてテキストファイルに書き込みとかは一応出来るようになった
0356デフォルトの名無しさん
垢版 |
2017/05/13(土) 23:34:07.61ID:GC0/nJum
あと、ダブルクリックで起動するGUIアプリはJavaだとJarファイル作る。
作り方はググってくれ。
0357デフォルトの名無しさん
垢版 |
2017/05/14(日) 09:13:39.78ID:GiIrdLHV
NETBEANSなら自動でJarファイル作るけど、
自作のJarを継承したりするとJarの中にフォルダを作って入れてはくれないので、
やっぱり自分で作るかな
0358デフォルトの名無しさん
垢版 |
2017/05/14(日) 17:33:23.51ID:QSKs3vuK
>>354
>>316
0359デフォルトの名無しさん
垢版 |
2017/05/14(日) 22:40:11.72ID:neLc5GA+
トランプを作りたいのだが多次元配列で組み合わせようと思ったけど結局1をAにしたり11、12、13をJQKにしたり、
あとは例えば二枚のカードを合計するってなった時は2+3とかじゃなくてハートの2たすクラブの3っていう感じになって計算ができないんじゃ無いかってところで行き詰まってる
ネットで調べたらenumって出てきたけど最後に;を記述してないし使い方がよくわからないのだ

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

欲を言えばトランプの絵の中にそれら配列(もし配列を使うとしたら)の要素一個一個に当てはめる的な事もしたいけどそれはまた後で調べる、これは出来るかできないかだけでいいから教えてくれ
0362デフォルトの名無しさん
垢版 |
2017/05/15(月) 00:22:18.88ID:F3iBT9nS
>>360
例えばハートの6とクラブの9を足して15にできる?多次元配列でint 部分の配列を取り出す事とかできるの?
0365デフォルトの名無しさん
垢版 |
2017/05/15(月) 01:14:15.51ID:Hm7XRpaa
javaやってるのに多次元配列使う奴なんて見たことない
c言語じゃないんだから
0366デフォルトの名無しさん
垢版 |
2017/05/15(月) 08:01:13.47ID:iwHegv+w
HashMapは文字通り中にハッシュテーブルを持っててそれを利用して探索するから配列を探索するよりとても速い
0367デフォルトの名無しさん
垢版 |
2017/05/15(月) 10:32:21.13ID:WBt6bwRo
>>359
面倒なら数値だけでやればいいじゃん。内部では0〜51で値持っといて13で割った値が種別、13で割った余り+1がカードの番号みたいにして。
0368デフォルトの名無しさん
垢版 |
2017/05/15(月) 14:11:56.96ID:YV/XJMDJ
javaでif文を使って文字列か数字か判断する時の条件式って何?教えてくれ頼む!!
0369デフォルトの名無しさん
垢版 |
2017/05/15(月) 15:05:38.35ID:YV/XJMDJ
if(入力値 == String){
//処理
}else if {
//処理


上記のやり方じゃ駄目だよな?
0371デフォルトの名無しさん
垢版 |
2017/05/15(月) 16:31:44.87ID:+sV7Di0p
parseIntじゃだめですかい?
String input = "12345"

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

}
0377デフォルトの名無しさん
垢版 |
2017/05/15(月) 21:23:38.19ID:94d7jC/v
>>366
Hash mapって確かに原理はわかるんだけど、hash関数にキーを通して得られた数値をアドレスにすると、アドレス飛び飛びになってメモリ効率悪くなったりしないのかね
0378デフォルトの名無しさん
垢版 |
2017/05/15(月) 21:32:58.19ID:iwHegv+w
>>377
直接アドレスにしてるわけじゃない
中に連結リストが数個あって得られた数値ごとに範囲分けしてそのリストに振り分けてる
連結リストの長さだったか要素数だったかが敷居値を超えると連結リストの数を増やして再構築する
大体こんな感じで実装されてるからハッシュ値が飛び飛びなのは問題ではない、むしろそうなるように推奨されてたはず
0381デフォルトの名無しさん
垢版 |
2017/05/16(火) 17:39:21.61ID:hRmrFLEJ
jar ファイル作ってみたのだが
netbeans上でファイルを実行したらちゃんと動くのにフォルダからそのファイルの場所まで行ってダブルクリックしても何の反応もないのだが

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

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

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

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

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

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

誰か助け船を出してくれ
0382デフォルトの名無しさん
垢版 |
2017/05/16(火) 19:20:34.36ID:vjuQQ4tJ
>>381
ながい

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

→main()云々は作ってみたほうが理解が早い
CUIでいいからtodoアプリ作ってみ?
1でタスク一覧、2でタスク登録、3でタスク削除の3機能
DBとか無しで、アプリ落としたらタスク全部消えてなくなる感じ
これ作ったらmain()で全部書けるかどうかわかるだろう
0383デフォルトの名無しさん
垢版 |
2017/05/16(火) 19:57:51.53ID:p+PjrRhB
>>381
スッキリのオブジェクト指向の所から読み直しつつ
自分でソースコード漁りしてみると良い
オープンソースで一杯転がってるぞ
0384 ◆QZaw55cn4c
垢版 |
2017/05/16(火) 20:51:07.12ID:szD5YOp7
「テトリス入門」とかいう書籍を書いたら売れるかもしれないね
0385デフォルトの名無しさん
垢版 |
2017/05/16(火) 21:51:28.05ID:46vWVqfK
>>384
しかしゲームのやり方しか書いてなかったりしてw
0387デフォルトの名無しさん
垢版 |
2017/05/16(火) 22:47:07.51ID:enwqrWLT
大学のjavaの授業で指定されたエディタがメモ帳に毛が生えたようなやつで、スクリプト言語しか触ったことない身には辛い
javaはIDEで書くものだと聞いてたんだけど、強い補完機能使わないほうが身につくものなの?
0389デフォルトの名無しさん
垢版 |
2017/05/16(火) 23:08:27.75ID: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の要素がないと思うのだが
0391デフォルトの名無しさん
垢版 |
2017/05/16(火) 23:53:20.25ID:hRmrFLEJ
>>382
Jdkのbinファイルを設定するって書いてあったんだけどjdkファイルの中にbinが見つからない・・・
0392デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:11:58.28ID:a2t4m9UZ
配列はややこしいね
Arrays.equals(a1, a2)とa1.equals(a2)は別物だよ
後者は参照先の比較って言ったらそこら辺はスッキリで詳しく書いてるから分かると思うけど
あと戻り値は必ず変数に入れなきゃいけない訳じゃない
今回のに関してはAllayListの親クラスのCollectionがaddでbooleanの戻り値を返すってなってるからそうなってるけどAllayListでは多分必ずtrue返すようになってる?分かんないけど
Setとかでbooleanの戻り値使いたいからそうなってるんだろうね
0393デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:19:21.93ID:Cj0bDaOf
>>392
その辺りが物凄く理解できない
やっぱり経験積んで必要な場面に当たるしかないのかな

できれば最初から文法をマスターしたいと思うんだけど難しいのかな
0394デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:21:17.17ID:EKDDBUyo
Javaのリファレンスはすげえ読み辛いのが辛い所だな
実際の挙動書いてないし
0395デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:45:10.55ID:aIm9uZNt
JavaScriptやPHPのリファレンス見てると何でメジャーどころのJavaのリファレンスがこのレベルなんだ…って思っちゃう
0396デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:47:35.12ID:EKDDBUyo
各クラスの挙動を知りたいなら
個人ブログかQiita辺りを探した方が早いっていう何とも言えない現状
0398デフォルトの名無しさん
垢版 |
2017/05/17(水) 02:16:15.58ID:PX1bjgD6
Locale locale = new Builder()
.setLanguage("ja")
.setRegion("JP")
.setScript("Latn")
.setExtension(Locale.UNICODE_LOCALE_EXTENSION, "ca-japanese")
.build();

普通は
インスタンス名.メソッド名()などのようにドットでつなげると思うのですが
上のようなソースは、なんていう機能なのでしょうか。
ググりたいので、キーワードを知りたいです。
0400デフォルトの名無しさん
垢版 |
2017/05/17(水) 03:04:38.91ID:KDFx7HS2
JavaScript, jQuery などで、よく使う、メソッドチェーン

a().b().c()

メソッドを、this を返すように作っておいて、つなげていく
0401デフォルトの名無しさん
垢版 |
2017/05/17(水) 03:55:23.34ID:rtSwMeCb
HashMapの中身をfor文で取り出す処理のメカニズムがよく分かりません。
どなたか説明してもらえませんか?
@キーの一覧を取得
A各キーについて、対応する値を取得
と書いてはあるのですが…。
0402デフォルトの名無しさん
垢版 |
2017/05/17(水) 04:07:19.23ID:gPdRTvOW
>>400
なるほどです。
戻り値が、自分自身だからチェーンに出来るんですね。
勉強になりました。ありがとうございます。
0405デフォルトの名無しさん
垢版 |
2017/05/17(水) 07:04:43.87ID:oji8uaFL
javaリファレンスはカタコトの日本語だからまだしも、
androidなんて英語だから意味不明
0406デフォルトの名無しさん
垢版 |
2017/05/17(水) 08:22:36.48ID:+tyn5AAd
>>401
古典かよw 今時そんな取り方しない
どうしてもやりたいならMap#keySet()調べてみ

ついでにMap#forEach()もな
0407デフォルトの名無しさん
垢版 |
2017/05/17(水) 11:35:36.57ID:Hln6Xg1O
ファイル開くときにcloseかtry-with-resourcesを忘れないってのはわかったんですが、
BufferedReaderとかScannerで標準入力からテキストを読み込むときもこれは必要ですか?
0408デフォルトの名無しさん
垢版 |
2017/05/17(水) 12:12:09.07ID:+tyn5AAd
>>407
原則として標準入出力は閉じてはいけない
そのプログラム中で二度と標準入力を使わないようなタイミングなら閉じてもいいが…やらないな
0410デフォルトの名無しさん
垢版 |
2017/05/17(水) 12:32:10.78ID:lfsZhYIw
>>407
不要だけどあってもいいんじゃね?
0411デフォルトの名無しさん
垢版 |
2017/05/17(水) 12:51:21.54ID:vBWq/bhA
無しだろ
最初から開いてるものだし
自分で開いたものなら閉じるべきだが
他人が開いたものを閉じるのは責務的に違うだろ
0414401
垢版 |
2017/05/17(水) 16:48:24.10ID:rtSwMeCb
>>406
調べてみます。
ありがとうございます。
0415デフォルトの名無しさん
垢版 |
2017/05/17(水) 23:44:07.57ID:aIm9uZNt
int[] s = 条件式 ? {0, 1} : {1, 0};
って書いたら弾かれたんですがJavaは三項演算子を使っての配列の初期化は出来ないということですかね?
0416デフォルトの名無しさん
垢版 |
2017/05/18(木) 00:37:28.69ID:QINyhTse
オラクルで働きたいんだが雇ってくれんかな
java初心者だが素晴らしい言語だと思うんで
0417デフォルトの名無しさん
垢版 |
2017/05/18(木) 00:43:40.92ID:mIgvPrGJ
OpenJDKに貢献するのが一番の近道だと思うが
オラクルはそんなにいい会社じゃないぞ多分
0419デフォルトの名無しさん
垢版 |
2017/05/18(木) 07:23:18.00ID:mhJy8/8/
ArrayListを作るときよく入門書だと
List<String> list = new ArrayList<String>();
と書いてありますが、将来的にListとして扱う予定が全くない場合でもこう書くものですか?
とにかく広く受けとけばいいなら極論ジェネリクスも要らないですよね?
ArrayListで必要十分なところをListと書くのはどうも型安全から外れてる気がして抵抗があるのですが
0421デフォルトの名無しさん
垢版 |
2017/05/18(木) 07:58:02.36ID:DonT+oLB
>>419
ArrayListで必要十分ってことはArrayListクラスで定義されたものを使ってるんだからListで書いたらダメだろw
あとArrayListをListとして使うことがないってのはありえない
なぜならArrayListはListを実装してるから
0422デフォルトの名無しさん
垢版 |
2017/05/18(木) 08:25:23.87ID:hXrMTvib
>>421
それはそうですね、すみません、言い方を間違えました
ArrayList固有の機能を使わない前提でないとこの問いは成り立たないですね
ただ拡張性を意図してないときにインターフェースで宣言するメリットがあるのだろうかと思った次第です
0423デフォルトの名無しさん
垢版 |
2017/05/18(木) 08:55:42.22ID:DonT+oLB
>>422
なぜ具象クラスではなくインタフェースなのかってことなら、英単語の意味のとおりインタフェースだから
この話が特に問題になりやすいのはメソッドシグネチャに使われるときと、クラスの特性を利用するときなんで、
メソッド内部のローカル変数として宣言/定義するだけで外部に影響なく使うならぶっちゃけ何でもいいよ

逆に言うと、影響が出るなら(特に)最上位のインタフェースを使ってはいけない
Map<String, String> m1() { return new WeakHashMap(省略); }
・このm1はヤバい。戻り値を普通のMapのように使ってると、GCでいきなりエントリーが消えたりする
・戻り値の型をWeakHashMapにするべき
Set<String> s1() { return new TreeSet<String>(); }
・これもヤバい。戻り値にset()すると勝手にソートされる
・戻り値の型をSortedSet(インタフェース)にすべき
0424デフォルトの名無しさん
垢版 |
2017/05/18(木) 08:57:08.36ID:X6c7i21D
汎用性も拡張性も皆無の個人レベルのゴミソースなら
いくらでもArrayListで型宣言すればいい
0425デフォルトの名無しさん
垢版 |
2017/05/18(木) 08:59:24.71ID:DonT+oLB
途中送信になっちゃった

上のような例外的なケースを除き、基本的な使い方しかしていないなら最上位のインタフェースで宣言すべき
それはコードを読む人に変なメソッドやクラス特性を使っていないから安心して使えるというメッセージになる
#バグとかはまた別の視点だよ?
0426デフォルトの名無しさん
垢版 |
2017/05/18(木) 12:35:06.27ID:hXrMTvib
>>425
詳しくありがとうございます
出来る限り最上位のインターフェースで宣言した方が安心感があるのですね
例えば(あまりないと思いますが)addとforEachしか使わないなら
ListよりCollectionで宣言した方がいいということですかね

インターフェースだけでなくクラスも同様に、出来る限りObjectクラスに近い方がいいのでしょうか
例えばListに数字を入れるならList<Integer>よりList<Number>の方がいいですか?
0427デフォルトの名無しさん
垢版 |
2017/05/18(木) 13:06:42.91ID:DonT+oLB
>>426
そういうのをやりすぎって言うんだよ
自分で書いてて不親切というか不便だと思わない?
CollectionやNumberのJavadoc読んでみ
0432デフォルトの名無しさん
垢版 |
2017/05/18(木) 14:12:31.44ID:QINyhTse
ArrayList<String> list = new ArrayList<>();

普通に上記のような書き方でも大丈夫ですか?
どう違うのかな…糞初心者が便乗で失礼しました。
0433デフォルトの名無しさん
垢版 |
2017/05/18(木) 14:42:56.14ID:DonT+oLB
>>429
setの例は確かにまずかったね
実際やってみるとわかるけどさ、SortedSetに突っ込むものはComparable実装してないと実行時例外起きるのよ
Stringは実装してるからいいけど例えば自作のComparable実装してないクラスを突っ込むSetだと死ぬ
0434デフォルトの名無しさん
垢版 |
2017/05/18(木) 16:08:06.15ID:YsT8kXyi
>>427
最大限の抽象化を目指しつつ、必要に応じて落としどころに着地させる技術が必要なのですね
何となくわかりました。ありがとうございます
0435デフォルトの名無しさん
垢版 |
2017/05/18(木) 17:27:32.89ID:X6c7i21D
中途半端に理解力の悪い馬鹿だね君は
特定のインターフェースを受け皿にするのは意味があるからやってるんだから
君のような馬鹿は凡例に倣っておまじないのように真似して使ってればいいんだよ
0440デフォルトの名無しさん
垢版 |
2017/05/18(木) 19:53:57.62ID:YsT8kXyi
>>435
わかりました
初心者はあまり疑問に思わずにとにかく慣れた方が良さそうですね
もうちょっと詳しくなってから改めて考察します
0444441
垢版 |
2017/05/18(木) 23:50:40.17ID:41k9t0yi
34歳板の住人以外の方からのレス、お待ちしています。

>>443
競技プログラミングなんですか?誰が速いとか競うんですか?
0446441
垢版 |
2017/05/19(金) 00:51:55.16ID:os6zJ8mg
>>445
スレ違いでしたか、すいませんでした。
リンクありがとうございます。
0447デフォルトの名無しさん
垢版 |
2017/05/19(金) 04:01:57.36ID:7cLMvP3Z
画像を読み込み、それにスタンプを張り付けて保存するGUIツールを作っています。
JFrameの左側にはコントローラーとして動作するJPanel、右側には読み込んだ画像とスタンプを表示するJPanelを配置しています。
コントローラーの操作によって画像を新しく読み込むたびに右側のJPanelを破棄し、新しいJPanelを生成するようにしたいのですが
これを実現するのに今考えているのは、コントローラーのインスタンスのフィールドにJFrameへの参照を格納しておき
コントローラーのイベントリスナーで新規読み込みを受け取ったら、JFrameからJPanelをremove()、ついでnewする、というものです。
0448デフォルトの名無しさん
垢版 |
2017/05/19(金) 04:05:15.30ID:7cLMvP3Z
続きです。

JPanelを再生成するためだけに3つのクラスをまたぐ、というのがどうもスマートに思えません。
可読性やメンテナンス性も悪い方法だと思うのですが、これ以外に良い方法が思いつきません。
もっと良い方法があるのか、それともそもそもの構造が悪いのか、どうかアドバイスをお願いします。
0449デフォルトの名無しさん
垢版 |
2017/05/19(金) 04:40:07.52ID:Yy4p2hUQ
>画像を新しく読み込むたびに、
>右側のJPanelを破棄し、新しいJPanelを生成する

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

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

フレームの作成(JFrameクラス)
https://www.javadrive.jp/tutorial/jframe/
0450デフォルトの名無しさん
垢版 |
2017/05/19(金) 04:58:05.99ID:7cLMvP3Z
ありがとうございます。

右側のパネルは、JPanelを継承したクラスのインスタンスで、読み込んだ画像の表示やスタンプの情報の保持を行っています。
画像を新しく読み込む場合、それらの情報のクリアもする必要があるので、パネル自体を破棄し再生成したほうが楽ではないかと思ったのです。
それよりも、すべての情報をクリアするメソッドを用意しておき、画像読み込みと同時にそれを呼ぶようにすべきでしょうか?
0451デフォルトの名無しさん
垢版 |
2017/05/19(金) 06:24:16.60ID:Yy4p2hUQ
厳密に言えば、パネルの破棄・生成を繰り返すのは、
GCの仕事が増えるだけで、無駄だけど、

回数が少ないのなら、やりやすいようにすればいい
0452デフォルトの名無しさん
垢版 |
2017/05/19(金) 07:19:36.73ID:TEDPcFuO
>>450
すべての情報をクリアするって書いてるけど、クリアするのは画像の情報のリスト1つだけだろ?
もしかして継承したパネルの中にバラバラに情報もたせてる?
0453デフォルトの名無しさん
垢版 |
2017/05/19(金) 07:56:58.28ID:QxcdFIRu
3つのクラスをまたぐっていうのは、左JPanel内で
this.jFrame.rightJPanel = new RightJPanel()
みたいなことをしてるのかな?

JFrameにreadNewImage()を作って右JPanelのnewとかの処理はそこでして
左JPanelはreadNewImage()を呼び出すだけでってのはどう?
0454デフォルトの名無しさん
垢版 |
2017/05/19(金) 08:37:45.48ID:Yy4p2hUQ
左右のパネルが、相互に依存したら、ダメ

親 → 左の子
親 → 右の子

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

そうしないといずれ、スパゲッティ・泥団子のように密結合し、手に負えなくなる。
設計の基本は、疎結合
0456デフォルトの名無しさん
垢版 |
2017/05/19(金) 09:59:04.74ID:UcTeaZgR
上司を通さず別部署に仕事頼んじゃうのはまずいみたいな話か
0457デフォルトの名無しさん
垢版 |
2017/05/19(金) 15:02:46.01ID:7cLMvP3Z
>>451
そうなんですか・・・
やろうと思えば何度でも再読込はできるので、この方法はやめておきます。

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

>>453
それです。
コントローラーからの操作はすべてJFrameの持つメソッドから行うようにする、ということでしょうか?
0460デフォルトの名無しさん
垢版 |
2017/05/19(金) 15:53:27.22ID:TEDPcFuO
>>457
そういうのはパネルのフィールドにばらまいてはダメなやつだよ
パネルは入れ物であって中身は中身でまとめて別に管理しないと

ついでに言うと、読み込んだ画像とスタンプは同じもの
読み込んだ画像って、ユーザが選択して重なり具合が常に最背面になってるスタンプだろ?
パネルにはList<ImageInfo>みたいなものを持たせて、Listの中身を並び順で画像表示するような設計でいい気がする
リセットはListを空にして再表示だし、複数スタンプもListに追加して再表示で終わるだろ
0462デフォルトの名無しさん
垢版 |
2017/05/19(金) 16:28:12.16ID:7cLMvP3Z
>>454
おっしゃるとおりだと思います。
現に、現在進行形で泥団子化しているような気がします。
自分でもなんとかしたいと思っているのですが、今まで手続き型のやり方でお茶を濁してきたツケで、オブジェクト指向的な考え方に馴染めず困っています。
例えば、左のパネルを操作して右のパネルに表示されている画像上にスタンプを追加する、というような操作を考えたとき、どのように実装すればいいかこんがらがってしまって・・・
教えてくれとは申しませんので、オブジェクト指向で書かれたGUIアプリケーションのサンプルソース集などはないでしょうか。
0463デフォルトの名無しさん
垢版 |
2017/05/19(金) 16:40:46.85ID:7cLMvP3Z
>>460
なるほど、画像やスタンプの情報もオブジェクトに閉じ込めてしまうのですね。
確かにそのようにすれば初期化や並び順管理も容易にできそうです。
今は画像上のマウスポインタのx,y座標を保存する変数などもバラバラになっているのですが、これもオブジェクトとして扱えば良いですね。
どうもありがとうございます。
0466デフォルトの名無しさん
垢版 |
2017/05/19(金) 19:01:25.59ID:UcTeaZgR
>>464
V2Cは今では2chへの書き込みできないよな。
したらばとかの2chに似ている掲示板では書き込みできるが。
0467デフォルトの名無しさん
垢版 |
2017/05/20(土) 12:30:03.29ID:MUxe8l0w
パッケージ名とクラス名を同じにしないといけないってなんで?
調べても出て来なかったし、実際違う名前にしてみても問題なく動いた
0470デフォルトの名無しさん
垢版 |
2017/05/21(日) 17:41:03.62ID:yzZ9l0t7
どうでもいいことかもしんないけど、is○○って、boolean型を返すメソッド名のみに使うべき?
boolean型の変数名に使うのはNG?
0473 ◆QZaw55cn4c
垢版 |
2017/05/21(日) 19:30:34.94ID:pUWFtSb1
悪くはないと思うよ,嘘ついているわけじゃないし
0474デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:38:17.39ID:LHr6gtTw
人によるといわれたらそれまでなのですが、三十代プログラミング経験無しが業務で使えるようになるにはどれくらいかかると思いますか?
0475デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:47:45.48ID:zNfd0kUp
出来るからって区別しないのはキモい。
日本語で変数書いても悪く無いけど、キモいでしょ。
俺俺ルールならメソッドはisXXX。
変数やフィールドはXXXflgとかXXXflagとかにしてたな。

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

ずっとずっと昔の話だが。。。
0476デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:48:50.69ID:RUGjRrqs
>>474
スレチ
てゆうか君>>441とか>>348の人でしょ
なんでJavaスレでそんな質問するんだよ
スレタイ読める?
ここはJavaの初心者スレであってネット初心者スレではないんだけど
0477デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:49:58.64ID:Ku4JySDo
人によるし業務によるとしか
なんの根拠も無いけど半年を目安にして貰ったら良いんじゃないかな
0478デフォルトの名無しさん
垢版 |
2017/05/21(日) 20:00:57.93ID:zNfd0kUp
>>474
まあ長くて一年で才能ある人は何かしらゲーム作れてるよ。
ジャンケンとかの簡単なのじゃなくて格ゲーみたいなの。
具体的には同級生がそう言う人種。
2-3ヶ月で作れてた気もするが。

一年で出来ない奴は、おいらみたいに10年経ってもショボいツールしか作れない。
0479デフォルトの名無しさん
垢版 |
2017/05/21(日) 20:36:10.10ID:KT6Xsd7k
>>476-478
申し訳ありません。
業務と平行しながら勉強してるのでここでいいかなと思いまして。

なかなか身に付かず焦って質問してしまいました。半年から一年を目処に頑張ります。
0481デフォルトの名無しさん
垢版 |
2017/05/22(月) 08:09:37.82ID:rV93qz9q
Windows+Java環境下でFFTを計算したいのですが感染性が無く再配布可能なライセンスのライブラリってありますか?
0482デフォルトの名無しさん
垢版 |
2017/05/22(月) 09:22:38.69ID:4kDceHI4
>>481
ググったらファイナルファンタジータクティクスが出てくるぞ?
それの何を計算するんだ?(笑
とか言われないように略称じゃなくてきちんと書けやアホ

あとなぜライセンスにこだわるんだ?
作ったもので金とるからって理由なら調査費用くらい惜しむなよ
0483デフォルトの名無しさん
垢版 |
2017/05/22(月) 09:29:07.58ID:mjjAkcu0
高速フーリエ変換通じないのは流石に通じない方が悪いし、通じない奴は質問の対象者じゃないんだから黙っとけよ
0484デフォルトの名無しさん
垢版 |
2017/05/22(月) 10:30:45.35ID:1JJhboIc
プロゲートで無料のぶんだけひととおりやったんですがこんな単純なものだけで組み合わせたら色々できるの?
0486デフォルトの名無しさん
垢版 |
2017/05/22(月) 11:14:41.72ID:tvdR/xt5
「アホ言うやつがアホ」という言葉がまた証明されたようだな
0488デフォルトの名無しさん
垢版 |
2017/05/22(月) 14:14:19.86ID:1JJhboIc
難しいものを作るには難しいプログラムが必要じゃなくて簡単なものの組み合わせ方って言うことなの?
0490デフォルトの名無しさん
垢版 |
2017/05/22(月) 14:53:57.12ID:d6K1UVaP
ま、そうだな。難しい漢字みたいなものだ。
分解すると一つ一つは簡単なカタカナみたいなやつでしかない。
0491デフォルトの名無しさん
垢版 |
2017/05/22(月) 16:08:03.03ID:3W7nNBo7
難しいものってのが何なのかによるんじゃないかね
計算量が膨大なものならそれなりに難しいアルゴリズムも必要になるだろうし
Javaでそこまで踏み込むかはわからんが
0497デフォルトの名無しさん
垢版 |
2017/05/23(火) 04:57:47.00ID:ZEoEO5ey
FFT っていう単語を知らないなら、さすがにヤバイ、レベル

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

tmpnb
Jupyter Notebook (IPython)
0498デフォルトの名無しさん
垢版 |
2017/05/23(火) 19:41:11.76ID:i368ua84
Rubyのpメソッドみたいに
変数の中身や配列の中身を手軽に確認できるメソッドって無いのでしょうか
特に配列の中身を確認する方法が分からず、デバッグをする際に苦労するのですが・・・・・・
0499デフォルトの名無しさん
垢版 |
2017/05/23(火) 20:01:14.31ID:nu8Noumz
>>498
Arrays#toStringもしくはArrays#deepToString使えばおk
RubyみたいにpはないけどIDE使えばsysoutとかsoutから補完できるぞい
0503デフォルトの名無しさん
垢版 |
2017/05/23(火) 21:00:51.52ID:i368ua84
>>499
ありがとうございます
その二つを使ってチェックしていきたいと思います

>>502
デフォルトだと日本時間ではなく、グリニッジ標準時間 (GMT)になるので
時差の分ずれてると思われます
0507502
垢版 |
2017/05/24(水) 00:25:16.54ID:PoyHH2+7
レスをくれた方、ありがとうございました。
>>506の方のリンクやスッキリJava実践編を参考に改良してみたいと思います。
0510デフォルトの名無しさん
垢版 |
2017/05/24(水) 18:51:24.14ID:NmDuToTQ
>>508
その文脈でのiはループ変数ではなく配列のそれぞれの要素そのものだから、>>509の書き方をすればいい
まぁそもそもループ変数じゃないんだからiなんて名付けちゃいかんね
nくらいにしとくといいよ
0511デフォルトの名無しさん
垢版 |
2017/05/24(水) 19:16:31.99ID:rgjqqiZm
>>509>>510
ああ、ループ変数ではなく、そのまま要素になるんですね
混同してしまいました
勘違いしないようにもっと分かりやすい名前をつけるようにします

ありがとうございました!
0512デフォルトの名無しさん
垢版 |
2017/05/24(水) 19:57:10.67ID:2FV//qQH
拡張for文をちゃんと理解して
numsから要素取り出してるだけだから
iは1,2,3でnum[i]は2,3,範囲外例外になってるだけだよ。
0513デフォルトの名無しさん
垢版 |
2017/05/24(水) 23:15:42.47ID:CMr8dFBK
propertiesファイルを読み込んで、そこからenumを生成するようなことは可能ですか?
つまり

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

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

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

となるようにしたいのですが
0514デフォルトの名無しさん
垢版 |
2017/05/24(水) 23:21:34.43ID:0Qc+9z9K
   ∩___∩
   | ノ      ヽ
  /  >   ● |    ムリ☆
  |    ( _●_)  ミ
 彡、    |∪|   )
/      ヽノ //
ヽ|       /
 |       /
 ヽ /  /
  / /ヽ
(´_ /ヾ_)
0516デフォルトの名無しさん
垢版 |
2017/05/26(金) 09:43:02.44ID:AcHukEBi
型のメソッドdatetime(Timestamp)は引数(Timestamp)に適用できませんって出るんだけどどうしたらいいのか教えてください
0525デフォルトの名無しさん
垢版 |
2017/05/27(土) 05:57:17.98ID:IXLLFPSU
テキスト読み始めて1ヶ月が経過した初心者なのですが
プログラムを書く練習の為にお題や解答等が
記載してある良いサイトがあれば教えて頂けないでしょうか。
0527デフォルトの名無しさん
垢版 |
2017/05/27(土) 17:51:11.88ID:3U461hCt
新わかりやすいjava入門編というものを進めてきてオブジェクト志向に入り案の定つまづきました
そもそもクラスとメソッドというのがよくわかりません。色々なサイトを見ているとクラスというのはオブジェクトの設計書なる説明が目立ちます
HelloWorldなりif文なりをクラスの中に書いてきましたけど別にオブジェクトの設計書なんて作った覚えがなくてこれはどういうことかと
メソッド(=関数)がまとまったのがクラス(=プログラム)で、クラスがまとまってパッケージ(=大きなプログラム)になるくらいの認識だったのですが……
0528デフォルトの名無しさん
垢版 |
2017/05/27(土) 18:03:31.28ID:WiwmRK76
ただメソッドをまとめたものじゃなくてクラスのインスタンス内にはフィールドによる状態があるからね
0529デフォルトの名無しさん
垢版 |
2017/05/27(土) 18:28:20.46ID:5U21Fkdq
クラス=実在しない脳内の中の紙切れ。設計書でも何でもない
インスタンス=実在する紙切れ。いくらでも複製可能
0530デフォルトの名無しさん
垢版 |
2017/05/27(土) 18:43:41.59ID:5U21Fkdq
static修飾子=脳内の紙に思い描いただけでそれにアクセスすることができる魔法の言葉

つまりウンコ変数やチンコ変数またはマンコメソッドなどを
脳内で想像しただけで既に実在することになるが複製はできない
0531デフォルトの名無しさん
垢版 |
2017/05/27(土) 20:45:17.11ID:899ucGB1
>>526その他の方
525の人ではないですが、
日本語のサイトでは無いですかね?英語が読めないもので…。
0535デフォルトの名無しさん
垢版 |
2017/05/27(土) 21:37:32.99ID:583uXQeo
プログラマで英語読めると読めないじゃ得られる知識に天と地ほどの差があるから、真面目に英語覚えた方がいいぞ。
0538531
垢版 |
2017/05/27(土) 22:33:43.16ID:899ucGB1
レスをくれた方、ありがとうございました。

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

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

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

>>537
確かにu-aizu.ac.jpって書いてありますね。
URLに気付かないとは…自分自身に笑っちゃいました。
0540デフォルトの名無しさん
垢版 |
2017/05/27(土) 22:50:09.90ID:aR8Z7uvM
英語読めると海外サイトのQ&Aが原文で読めるっていうのが凄いありがたいからな
大概ググると海外で既に答えが出てる問題だったりするし
0541531
垢版 |
2017/05/28(日) 00:55:35.48ID:cBtiXtru
>>539
コードに出てくる単語には詳しくなっても、専門用語に関してはあんまり…。
記憶力に自信が無い方なので…。

>>540
そうですか、それはメリットですね。
でも今から英語をマスターするなんて俺には無理でしょうね…。
0543531
垢版 |
2017/05/28(日) 01:12:07.04ID:cBtiXtru
失礼します。

>>536 >>542
リンク貼るの止めてもらえませんか?ニーズも無さそうですし。
0544デフォルトの名無しさん
垢版 |
2017/05/28(日) 01:18:18.20ID:1i8XYM/R
問題とかアルゴリズムにやたら拘ってるけど
関数分割もできないレベルの奴がそんなもの追い求めても時間の無駄だって
ずっと教えてやってるのに一向に聞く耳持たないよなお前
0545デフォルトの名無しさん
垢版 |
2017/05/28(日) 05:51:20.33ID:oCI88hgR
>>541
マスターするというほどでなくても大丈夫。とにかくわからない単語が出てたらコピーしてすぐググれ。意味出て来るから。
0548デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:02:24.77ID:JNmEYY0a
(´・ω・`)みんながおすすめしてたからスッキリわかるJAVA入門注文しました
これ分厚いけどがんばって読んだらプログラマーになれるの?
みんなはひと月ぐらいで読み終わるの?
http://i.imgur.com/eiBgULb.jpg
0549デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:15:31.02ID:x9tOFMEC
少しプログラミングの経験があるなら1週間あれば読み終わる
ただ読むだけじゃ役に立たない 自分で実際に書いて動かしてみないと
0550デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:35:16.55ID:3VcyGTAo
>>548
読むと言うよりは実際にソースコードを動かしながら勉強していく
ついでにIDEも導入して、実際に開発してる気分でやっていくとテンションが上がる上
IDEの使い方も理解できて一石二鳥
0551デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:50:43.69ID:vFbXjviW
クラスがBTOパソコンのカタログスペックみたいなもんでメモリだのハードディスクの容量だの指定して注文して届いたPCがインスタンスみたいな理解したんですけど大丈夫ですかね
ただそうなると本でオブジェクト指向の手前までに載ってるプログラムもクラスってなんでクラスなんです?例えばただのHelloWorldとか
インスタンス生成しないならクラスである必要でないというかそもそもクラスじゃないんじゃないかと思うんですけれど
0552デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:52:43.55ID:1i8XYM/R
スッキリはホントわかりやすいと思うわ
そこら辺のゴミみたいな入門書とは雲泥の差だから宣伝しなくても
口コミで勝手に売れて作者も印税ウハウハだろうな
元々ある程度Java触ったことある奴なら1日で読み終わる
0553デフォルトの名無しさん
垢版 |
2017/05/28(日) 17:53:47.81ID:JNmEYY0a
>>550
>>549
(´・ω・`)そうなんやー
じっさいにやりながらですね
がんばります
0555デフォルトの名無しさん
垢版 |
2017/05/28(日) 18:43:34.75ID:QwjzxVOm
作家の座談会によると、
スッキリは、無名の著者が、2, 3年掛かって作ったとか聞いた

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

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

理由は知らないけど、スッキリの編集者は、転職したらしい
0557デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:37:02.55ID:1i8XYM/R
メインメソッドが既にインスタンスなんだが
バカなんだから思い込みだけでレスつけるなよ阿呆
インスタンスの定義が何かわかってんのかお前
0559デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:44:08.81ID:rKdLC74L
>>557
知ったかで人を阿呆呼ばわりするのはどうかと
メインメソッドにstaticって付いてるのの意味分かってる?
0560デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:45:36.04ID:x9tOFMEC
>>557
なんでいきなりキレられてるのか全然わかんないんだけど
メインメソッドがインスタンスになることはできないよ?
0561デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:47:27.86ID:1i8XYM/R
クラスローダーがmainメソッドのあるクラスを読みこんだ時点で
mainメソッドがインスタンス化するんだよ阿呆
小学校からやり直して来いアホども
0562デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:50:14.15ID:1i8XYM/R
メモリの概念すらわかってなさそうな馬鹿しかいないとかビックリだわ
HelloWorldは魔法の言葉か?w
0564デフォルトの名無しさん
垢版 |
2017/05/28(日) 19:55:52.87ID:tr4rluHU
>>560
Appクラスにmainがあるとしたら、mainはApp.classというひとつしか存在しないインスタンスのメンバーだよ
0566デフォルトの名無しさん
垢版 |
2017/05/28(日) 20:03:51.11ID:1i8XYM/R
インスタンスじゃなかったら何なんだよ?wwwww
メモリ上に実態がないのにアクセスできんのか?www
専門学校生レベルの奴はチンポでも弄ってろよ阿呆
0567デフォルトの名無しさん
垢版 |
2017/05/28(日) 20:15:26.83ID:qHRbOIzL
>>566
聞く前に自分で考える癖を付けようよ
0568デフォルトの名無しさん
垢版 |
2017/05/28(日) 20:57:22.72ID:VccFyu7h
>>554
自分の書いた部分以外では、な。
0569デフォルトの名無しさん
垢版 |
2017/05/28(日) 21:04:50.30ID:VccFyu7h
>>566
涙拭けよ
0570デフォルトの名無しさん
垢版 |
2017/05/28(日) 21:35:45.78ID:QPUrPhGM
Javaから入るのはよくないけどな。
0573デフォルトの名無しさん
垢版 |
2017/05/28(日) 23:02:53.89ID:Y/jTFKWE
>>571
ライブラリ内部でインスタンス作ってるケースも普通にあるからね
newを自分で書くときは、あくまで自クラスでインスタンス作るときの場合に使うってだけ
0574デフォルトの名無しさん
垢版 |
2017/05/28(日) 23:08:25.60ID:QPUrPhGM
>>572
コンピュータとオブジェクト指向プログラムが乖離しすぎているから。
0576デフォルトの名無しさん
垢版 |
2017/05/28(日) 23:36:35.46ID:wvAEkP6f
文脈的には単に初心者が手続き型プログラミングとオブジェクト指向型プログラミングを
一気に覚えようとするのは好ましくないくらいのニュアンスじゃないの
0578デフォルトの名無しさん
垢版 |
2017/05/29(月) 00:45:21.43ID:KqfCApyh
>571
インスタンスって言葉に惑わされてるだけ
mainメソッドという処理を行うためのstaticな領域は既に存在する
その中で書かれた処理は順次あらたに領域が確保されていくだけ
処理を行うための領域が存在したないただのクラスはnewして初めて領域が確保される
0579デフォルトの名無しさん
垢版 |
2017/05/29(月) 01:13:01.57ID:JZ+YO2S6
staticの概念が難しい・・・・・・
言われてる事は分からんでも無いんだけど、理解出来てる気がしない
0580デフォルトの名無しさん
垢版 |
2017/05/29(月) 08:27:06.94ID:C0b3SugI
int[]よりArrayList<Integer>の方が型安全ですが、固定長なら配列の方が高速に動作しますよね?
普通はどちらを取るものですか?
0582デフォルトの名無しさん
垢版 |
2017/05/29(月) 10:09:34.31ID:krahuleL
>>578
入門者にstaticとか領域とか申されましても……
待ってくれたまえ ことばの洪水を ワッと いっきに あびせかけるのは
0583デフォルトの名無しさん
垢版 |
2017/05/29(月) 10:17:19.00ID:QVs41rDP
>>581
<>でクラス指定しとくと他のクラスのインスタンスへの参照入れられなくなるってことじゃね?
0585デフォルトの名無しさん
垢版 |
2017/05/29(月) 11:00:42.17ID:xnEvchj+
>>584
Effective Javaでは配列はあまり推奨されてないようなので、実際のところどうなのかなと思いまして
0587デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:17:24.11ID:xpUPwHwO
>>585
しかし ArrayList は文字通り中で配列使ってるよ。
なんだったらソース見てみな。
0588デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:17:59.69ID:xpUPwHwO
か、かぶった。リロードし忘れた。とほほ。
0589デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:18:05.22ID:6ZDN/iGx
>>586
コレクションだよな。
0590デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:20:40.27ID:6ZDN/iGx
>>586
配列のようにしか使わないなら配列の方が早いだろう。
0591デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:54:37.23ID:WVHDxzCz
「スッキリわかるJava入門」インプレス
昨日購入しまして、早速取り組み開始。
130P程読み進み、例題で「数あてゲーム」を書けってのがありまして、
それを何も見ないで考えて書いて出来上がり走った時の達成感
[ヵンド→]*☆*ヽ(*´Å`*)ノ*☆*[ウレ千→]
この気持ち忘れず最後まで読破します。

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

普通の配列は書く時は直感的だけど、ArrayListでは使えるメソッドが使えなかったりするから不便でしょうがない
0594デフォルトの名無しさん
垢版 |
2017/05/29(月) 18:40:35.39ID:s4hVHfzU
お疲れ様です。
今度、springでwebアプリケーションの業務
をすることになり2週間程学習をしているの
ですが全く理解出来そうにありません。

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

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

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

if ( r <= 10 ) { /* ... */ }
else if ( r <= 20 ) { /* ... */ }
0597デフォルトの名無しさん
垢版 |
2017/05/29(月) 20:58:21.92ID:KqfCApyh
正直フレームワーク系の本って買うだけ金と時間の無駄
最低限アノテーションの使い方とインジェクションの作法覚えて
ググりながらspringプロジェクトをローカルで作成して適当に
簡単な認証システムでも作ってりゃ覚えるだろ
springつってもいくつか種類あったと思うけど
0598デフォルトの名無しさん
垢版 |
2017/05/29(月) 22:54:19.91ID: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++){

//同上
}
というように書きたいのです...
0599デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:15:03.72ID: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("外れ");
}
}
}
0600デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:34:58.26ID:9PSXRaA2
>>594
最初にこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

Spring Framework 4 プログラミング入門、掌田津耶乃、2014

アスペクト指向も出てくる
0601デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:40:17.48ID:KqfCApyh
評価2.5のゴミみてぇな本を勧めるなよwwww
目次見ただけでゴミってわかる
こういう読むだけたいして意味も価値もない無駄な知識を入れようとするから
フレームワーク関連の本は糞で初心者はさらにわからなくなるんだよ
0602デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:48:53.76ID:hK31qQAt
>>599 様の通りにやってみたところ正常に動作しました、
こんなバカの質問に答えていただきありがとうございました
0604デフォルトの名無しさん
垢版 |
2017/05/30(火) 00:16:24.33ID:xiJHA6at
>>603
ただのあの本は前提知識がある人向けただからな。
0606デフォルトの名無しさん
垢版 |
2017/05/30(火) 00:35:53.61ID:yvdd5Rk1
フレームワークの本に3000円とか金ドブもいいとこ
しかも3年前の生ごみとかありえんわ
0607デフォルトの名無しさん
垢版 |
2017/05/30(火) 01:20:31.09ID:2FSzpxmb
ほとんどの言語・フレームワークは、掌田だろ

JavaScript, Rails 5, Spring とか、
Unity, Unreal Engine も掌田
0608デフォルトの名無しさん
垢版 |
2017/05/30(火) 01:22:58.17ID:6dJw7tnc
個人的にはむしろフレームワークの方こそ本か何か体系的に入門から学べるものがあった方が良いと思うけどな
ネットの情報だけだと大事なところ端折ってあったりある程度分かってる人にしか通じなかったりで大変な部分もある
独自フレームワークとかになるとベースを理解してなきゃ話にならないし
0609デフォルトの名無しさん
垢版 |
2017/05/30(火) 01:59:53.28ID:H7vYKQcq
たまに入門書に親殺された人居るけど色んな意味で謎
Java勉強し始めたら、スッキリ・明解・やさしいの3択じゃね?
0611デフォルトの名無しさん
垢版 |
2017/05/30(火) 02:37:54.92ID:2FSzpxmb
漏れは、柴田望洋・林晴比古・高橋麻奈・猫でもわかるの粂井康孝などの言語学者よりも、

掌田津耶乃・山田祥寛・宮本信二など、
フレームワーク・開発系の本を書ける著者を、上に見てる

この人らの講習会も、1日4万円とか高い
0612デフォルトの名無しさん
垢版 |
2017/05/30(火) 06:44:19.91ID:XoWmMRXk
漏れとかリアルタイムで使うやつ初めて見たわ
使われてたの10年くらい前なんでしょ?ww
0613デフォルトの名無しさん
垢版 |
2017/05/30(火) 06:57:02.83ID:ChA7tHQK
>>610
自分でこしらえるか?
豪の者だな
0614デフォルトの名無しさん
垢版 |
2017/05/30(火) 10:27:24.55ID:pjqd0kNY
漏れ漏れ詐欺
0615デフォルトの名無しさん
垢版 |
2017/05/30(火) 12:30:57.86ID:nOhBpO6Y
仕事でC#ばかりやっているのでJAVAもかじっておきたいとサーティファイという団体が主催する能力認定試験1級を申し込んだのですが、試験は何の変哲もないテキストエディタでコードをガチで書くのでしょうか?受けたことのある方がいらっしゃったらお聞きしたいです。
0616デフォルトの名無しさん
垢版 |
2017/05/30(火) 13:04:49.18ID:xiJHA6at
>>610
Javaにはオレオレフレームワークが多くて結局、ソースコードを見るはめになる。
0617デフォルトの名無しさん
垢版 |
2017/05/30(火) 13:05:39.80ID:xiJHA6at
>>608
それはそのフレームワークを作っている人間どもが不親切なんだよ。
0618デフォルトの名無しさん
垢版 |
2017/05/30(火) 16:53:33.56ID:fjPf+h/e
学校通ってますが
講師の先生の話を聞いてるより
スッキリわかるjavaを読んでる方が
良くわかると言う悲しい状況になっている(´・ω・`)
0619デフォルトの名無しさん
垢版 |
2017/05/30(火) 17:54:50.62ID:bCOz8Dem
新入社員で研修だけど講師がCOBOLとCしか実務経験ない人がJava教えてるからスッキリしか読んでない
0620 ◆QZaw55cn4c
垢版 |
2017/05/30(火) 18:29:35.07ID:tKJtC0l3
Javaの資格は修飾に役に立ちますか?
0624デフォルトの名無しさん
垢版 |
2017/05/30(火) 21:34:17.85ID:1UzYBAXD
>>618
先生に本を見せてあげなさい
0625デフォルトの名無しさん
垢版 |
2017/05/30(火) 23:31:59.88ID:kr6O87Nm
JAVAの検定を受けるにあたり、試験で使うTeraPadというテキストエディタを
入れてみたのですが、これって、実務でも使うものなのでしょうか?

きっとIDEを使うんじゃないのかなと思うんですけど。。。
0626デフォルトの名無しさん
垢版 |
2017/05/30(火) 23:36:47.84ID:kWERrntF
クソみたいな環境以外なら普通IDEだがな、というかテキストエディタでコード書く言語じゃない
0627デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:03:40.79ID:IDPR98+O
Terapadはテキストエディタでもマイナーだよ。
0628デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:06:30.92ID:IDPR98+O
>>626
そういう決めつけはよくない。

初めからJavaは統合開発環境を使う前提で作られていない。
0629デフォルトの名無しさん
垢版 |
2017/05/31(水) 01:02:18.42ID:AHgBKhbQ
メモ帳で作成してUTF-8で保存
これで今まで普通にコマンドプロンプト上でコンパイルできて実行もできていたんだけど
最近方法変えてないのにコンパイル時「MS932にマップできません」とコンパイルエラーになるようになったんだけど何が原因でしょうか
class宣言のpublicの前に/ufeffとか言うのが勝手に挿入されてる?ようなのですが。心当たりがありません。
0631デフォルトの名無しさん
垢版 |
2017/05/31(水) 01:10:47.45ID:AHgBKhbQ
ちょっと心当たりと言えば
最近フォントをricky dimeshedとか言うのに替えたくらいです
でもこれは関係ないよね・・・
0634デフォルトの名無しさん
垢版 |
2017/05/31(水) 08:26:49.11ID:AV1cHHAT
TeraPad とかなら、文字コードを指定できるけど、
メモ帳で文字コードを指定できるの?

ただし、TeraPad は、4バイト文字(サロゲートペア)を表示できないかな?

コマンドプロンプトよりも、PowerShell, PowerShell_ise を使えば?
入力文字コードも指定できるかも?

スッキリJavaは、どの道、会社の新人研修でも、
副本として使われる事が多いから、買って読まなきゃならない

講師がすべて教えるのは面倒だから、家でスッキリも読んでおくように言われる。
だから、スッキリが売れる
0635デフォルトの名無しさん
垢版 |
2017/05/31(水) 08:46:49.64ID:G90fYmhY
そんなに本の話がしたけりゃスレあるんだからそっちでやって
Javaのお進め図書・情報・url
ttp://echo.2ch.net/test/read.cgi/tech/1457392971/

>>629
メモ帳で保存するときのオプションで、文字コードシフトJIS選べば解決する
メモ帳でUTF保存すると全部BOM(バイトオーダーマーク)つけられるから面倒
0636デフォルトの名無しさん
垢版 |
2017/05/31(水) 11:20:38.49ID:nbJYiZYj
>>629
コンパイルできてたときは日本語コメントなくて、コメント書いたらエラーが出るようになったとか?
0637デフォルトの名無しさん
垢版 |
2017/05/31(水) 13:35:48.00ID:ylYxKhrp
>>629
「/ufeff」が投入されるって、メモ帳が勝手にソースを改変すると言ってるの?
「最近フォントを替えた」って、何のフォントを替えたの?自分が何したのか解ってないぞ。
システムのデフォルトかメモ帳のデフォルトか…もしかしてeclipse?
ソースをバイナリダンプしてみた?コードはutf-8だったか?
メモ帳でソース書いてeclipseで読み込んでコンパイルみたいな変な事してないか?
0638デフォルトの名無しさん
垢版 |
2017/06/01(木) 00:48:52.75ID:t6ZFrgyA
ocjp bronzeの試験で javacコマンド云々とか
○○が追加されたバージョン云々
と言う問題は出題されるのでしょうか?
0639デフォルトの名無しさん
垢版 |
2017/06/01(木) 02:01:23.64ID:aYvEaLjY
https://ideone.com/G50BZD
while(sc.hasNext())を使って、空白区切りの数値をまとめて読み込んだあと
エンター(改行)が入った段階で処理を止めて、
そのまま計算に入るという感じなのですが

ideoneやpaizaなどのプログラミングコンテスト用のサイトでは上手く動くのですが
実際の実行環境(IntelliJ)上だと入力が終わらず困ってます
何かしらbreakする条件を付け足さないとダメなのでしょうか?
0640デフォルトの名無しさん
垢版 |
2017/06/01(木) 02:50:39.60ID:ZW4TAEqu
ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから

ideoneとかはインポートしてるクラスの中身とか見れないから
Scannerの処理がどうなってるかわかんらし元々連続で入力受け付けるような仕様じゃないから
Scanner書き換えてる可能性が高い

そんな糞みたいなメソッドで判定するのは危険だからそういう癖は直した方がいい
入力内容を別の変数にでも突っ込んで書き直せ
0641デフォルトの名無しさん
垢版 |
2017/06/01(木) 03:09:51.62ID:aYvEaLjY
>>640
>ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから
うおお・・・・・・マジか
根本的に変えないと不味いな
プロコンの所から引っ張ってきたけど、ヤバイ書き方だとは知らなかった
書き直すわ
0642デフォルトの名無しさん
垢版 |
2017/06/01(木) 03:21:14.59ID:ZW4TAEqu
書き直せとは言ったがあんな糞コードなんて誰も歯牙にもかけないレベルだから好きせぇやボケ
あと教えてやったんだから「ありがとうございました」って言え糞ボケ
0643デフォルトの名無しさん
垢版 |
2017/06/01(木) 03:39:42.54ID:aYvEaLjY
>>642
申し訳ありません
あまりの衝撃に素のネラーになってました

深夜に本当にありがとうございます
糞コードと言われないように、もっと良いコードを書けるように精進します
本当にありがとうございました
0644デフォルトの名無しさん
垢版 |
2017/06/01(木) 05:33:10.61ID:/JD/IgrT
礼無くてそんな頭にくるくらいならレスしなければいいのに
日常生活でも傲慢な態度してそうw
0646デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:36:53.62ID:FovYQcy0
2ちゃん弁慶
0647デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:46:56.15ID:FovYQcy0
>>639
java.util.Scannerはデフォルトでは空白文字を区切りとするので改行では終わらない。改行も空白文字の内のひとつだから。
ではそのサイトではなぜ終わるのかというとおそらく入力をファイルからリダイレクトして読み込ませているためにファイルの終わりまで読み込んで終わっているんだろう。
これを標準入力がコンソールのキーボードになっている状態で実現するにはそのコンソールの設定にもよるが、多分WindowsだとCtrl+Zで、UNIX系OSだとCtrl+Zなのではないかと思う。
しかしやはりコンソール次第ではあるので何やってもダメかも知れない。
0648デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:54:54.45ID:FovYQcy0
間違えた。UNIX系OSはCtrl+Dだ。
0649デフォルトの名無しさん
垢版 |
2017/06/01(木) 20:24:47.86ID:hzk2NgYF
hasNextはEOFまでだね
647の手順でローカルでもできるしファイルからの入力でもいけるはず

礼無しで顔真っ赤のやつはずかしいな
0650デフォルトの名無しさん
垢版 |
2017/06/01(木) 23:03:41.54ID: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
0651デフォルトの名無しさん
垢版 |
2017/06/01(木) 23:06:15.32ID:NqeRoS6b
>>650
そもそもImmutableの意味が分かってる?
分かってるなら大きいデメリットどころか無意味だということが分かるはず
0653デフォルトの名無しさん
垢版 |
2017/06/01(木) 23:42:20.35ID:NqeRoS6b
>>652
外側から絶対に変更できないというのがImmutable
この例だとMutableクラスの参照を保持しておくかMutableクラスかどうかを判別してキャストしてしまえばいくらでも書き換えられるのでImmutableではない
目指してるのはRubyのfreezeみたいなものだと思うからそんな感じのフラグ建てるメソッドを用意してセッター側でフラグ建ってたら例外返すようにしとけばいいかな
0654デフォルトの名無しさん
垢版 |
2017/06/02(金) 06:57:04.51ID:p54lEqX7
>>653
ありがとうございます!
てことは、ガチのImmutableにしかたったら、Immutableクラスをnewするしかないんですね
う〜ん、やっぱImmutableて地味にハイコストなんですかね?
0655デフォルトの名無しさん
垢版 |
2017/06/02(金) 06:59:28.02ID:p54lEqX7
確かにsetterで例外吐いて実質Immutableにするのもよさげですけど
できればsetterの定義自体削ぎ落としたいですよね
setterが存在しないことがコンパイルで保証できるので
0656デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:00:58.41ID:ZHMaGoYo
>>654
大半のプログラムはオブジェクト生成以外の部分がボトルネックになるから気にしなくていい
Immutableによりデバッグコストを削減するほうがよっぽどいいと思うぞ
0657デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:14:47.05ID: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 }と全部個数分入れてその中からランダムでひとつ選ぶと言う形にしてたのですが
もっとわかりやすい方法があれば教えてください
0658デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:32:50.35ID: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;
 }
}
0659デフォルトの名無しさん
垢版 |
2017/06/02(金) 12:24:24.49ID:rAIQacev
>>658
もちっと汎用性持たせてみたら?
0660デフォルトの名無しさん
垢版 |
2017/06/02(金) 12:40:35.41ID:ogRcISVS
配列難しいなら使わなくてもいいんでないかな
乱数とif文でもできるのでは。
後々の管理性はどちらが良いかわからぬが
0661デフォルトの名無しさん
垢版 |
2017/06/02(金) 12:54:11.98ID:SapFDfFK
配列aを元に「処理1,処理1,処理1,処理1,処理1,処理1,処理3,処理3,処理3,処理3」で
構成されたリスト作って、シャッフルして最初の奴を取り出す
0662デフォルトの名無しさん
垢版 |
2017/06/02(金) 13:25:44.47ID: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ループをなんとかしたいけど添字をうまく処理できない…
0663デフォルトの名無しさん
垢版 |
2017/06/02(金) 15:37:47.71ID:yyLeCvfJ
if (selected < accumlated) return idx;

return は関数を脱出する。
ループを脱出するのは、break じゃないの?
0665デフォルトの名無しさん
垢版 |
2017/06/02(金) 22:48:36.11ID:p54lEqX7
>>656
そうはいっても、未だにIntegerは重いから
数字のリストはint[]を使えとかいうオッサンがおるわけで
0666デフォルトの名無しさん
垢版 |
2017/06/03(土) 14:08:01.48ID:ep62Y9tf
Boxing, Unboxing のコストかい?

オブジェクト ←変換→ Primitive
0667デフォルトの名無しさん
垢版 |
2017/06/03(土) 14:51:35.39ID:7jetN193
Javaはそもそも遅いものだからなぁ
少しでも軽くするか、そこは割り切ってJavaの強みを活かすかは性格が出る
0668デフォルトの名無しさん
垢版 |
2017/06/03(土) 19:12:09.25ID:pA7NlTbo
サーブレットでのファイルダウンロードで質問です
ダウンロードをキャンセルしたりダウンロード中に別のページ行ったりするとサーブレット側で例外が起きてるんだけど、これってどういう対応すれば良いんでしょう
発生してるのはClientAbortExceptionとかいうやつと、SocketExceptionってやつの2種類です

環境はTomcat8.5とJava8とServlet3.1で、StrutsとかSpringとかフレームワークは使ってないです
0669デフォルトの名無しさん
垢版 |
2017/06/03(土) 19:55:40.64ID:rGTJ2+S3
try catchで囲むだけちゃうのん?
0671デフォルトの名無しさん
垢版 |
2017/06/03(土) 22:21:34.56ID:cALIqpIy
その「どう返すか」がよくわからないのでご質問しました

別のページに移動した場合は出た例外から何か返そうとしても元のレスポンスには返せないような気がします
キャンセルの場合は同じページにいるのですが、例外に対して何かレスポンス返そうとするとまた別の例外(IllegalStateException)になります

try-catchで囲んだとして、catchしたあとどうするのが普通なのでしょうか?
0672デフォルトの名無しさん
垢版 |
2017/06/03(土) 22:49:10.26ID:xUQGENML
大人しくFW入れとけ
自前でフルスクラッチWebサービスなんて死しか見えてないぞ
0673デフォルトの名無しさん
垢版 |
2017/06/03(土) 22:54:54.15ID:rGTJ2+S3
握りつぶしておしまいにすればいいじゃん
0674デフォルトの名無しさん
垢版 |
2017/06/03(土) 23:24:48.06ID:ksYUIpeu
>>671
ご質問したってなんだよ、自分の行動に御をつけんなよw

で、もう別のページに行ってんならなにもしなくていいだろ
もうこっち側の関知することじゃない
キャンセルされたときも、こっちから特に通知することはない
だからもう無視でいいじゃん
それじゃダメな思いがなにかある?
0675デフォルトの名無しさん
垢版 |
2017/06/03(土) 23:30:04.99ID:rGTJ2+S3
>>674
「ご〜する」は謙譲語だよ
自分の行動で問題ないっすよ
0676デフォルトの名無しさん
垢版 |
2017/06/04(日) 00:25:26.49ID:V+A2VcF1
本当に教えを乞うてるのなら
誠に恐縮ながらご質問させて頂きました。
くらい言えビチグソが
0678デフォルトの名無しさん
垢版 |
2017/06/04(日) 00:59:05.42ID:tVfHoFED
>>674
ともに無視で大丈夫なんですね、ありがとうございます

正常なパターンは書籍もWebサイトも情報多いんですが異常な場合は情報が少なくて難しいです
具体的な方針のレスをいただけてとても助かりました
みなさまありがとうございました
0679デフォルトの名無しさん
垢版 |
2017/06/04(日) 04:22:07.90ID:ovRWSkxq
異常時の処理は、君が決めること。
ビジネスロジック・仕様

ページを閉じても、保持していたデータを解放するとは限らない。
メールアプリでは、一旦ページを閉じても、
再度開いたら、ログインしたままになってる

10分間、何もしなかったら、ログアウトになっていたり、
何がエラーなのかなど、仕様は各自が考えるもの
0680デフォルトの名無しさん
垢版 |
2017/06/04(日) 04:25:38.04ID:ng0ziLO2
>>675
質問の場合は自分が誰かに依頼してその誰かを動かす事になるので「ご質問」はおかしい。人が自分に何か聞いてきた時は「ご質問」で良い。
0681デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:19:19.03ID:XpxkKcu8
>>676
「させていただく」は謙遜的傲慢表現と言われていて
みっともないからやめましょう


>>677
謙譲語だから問題ないんだよ

謙譲語は自分を低めるものだから
自分の行動につけるもの

道をお尋ねしますがとか
ご相談したいことがなど

(お|ご)〜する で謙譲語


>>680
おかしくないよ
「ご〜する」で謙譲語だから
美化語と謙譲語の違いは中学校で習ったでしょ?思い出して!
0682デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:27:29.03ID:XpxkKcu8
「(お|ご)〜する」で謙譲語だから

客が会社に問い合わせて、会社が客に答えるとき

「お問い合わせいただきありがとうございます」は良いけれども
「お問い合わせしていただきありがとうございます」はダメなんだよ

なぜならば「(お|ご)〜する」で謙譲語だから、問い合わせた客を下げることになるから
0684デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:38:04.80ID:B1StEn/h
客が質問してきた時はその質問は「ご質問」だよな。
自分が質問する時も「ご質問」なのか?明らかにおかしいだろうが。
0685デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:42:27.99ID:4LTGGdrM
なんというタイムリーな展開w
俺も先日メールのサブジェクトに「ご質問」ってつけちゃって
1) 自分の質問に「ご質問」はおかしい、どう考えても間違った
2) でも「質問」だとなんか言葉がトゲトゲしてる

おまえら質問あるときどうしてる?
俺は基本的にはいつも「お尋ね」って書いて誤魔化してた
0686デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:51:01.58ID:XpxkKcu8
>>684
「ご〜する」で謙譲語だから
ご質問します、とかならおkだよ

相手を上げる尊敬語、自分を下げる謙譲語、中立の丁寧語・美化語
で覚えれば良い

「先程私がご質問になった」といったらおかしいよ
「ご〜なる」で尊敬語だから自分を上げることになるからね
0687デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:01:33.92ID:XpxkKcu8
>>685
「ご質問」は美化語だから問題ないよ

ご連絡が遅れましてとか
お酒を飲んでいましたとか言うでしょ

おちんぽみたいなもんだよ
上品だよね
0688デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:08:25.74ID:B1StEn/h
めんどくせえなあ。
まあ言語は変化し続けるから微妙な問題ではあるが、少なくとも現代の今の時代では
自分の質問に「ご質問」は止めとけ。敬語と受け取らない人が大半だから。

https://www.google.co.jp/search?q=%E3%81%94%E8%B3%AA%E5%95%8F&;ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=pVwzWcmgFO-Q8QfNhKO4DA
0690デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:19:13.28ID:XpxkKcu8
おコーヒーをお召し上がりにおなっていました
0691デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:21:03.11ID:XpxkKcu8
>>688
「ご〜する」は謙譲語だから立派な敬語だよ
0692デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:22:48.74ID:XpxkKcu8
世界中のJavaプログラマーを代表して言わせてもらうが
目上の人にご苦労様がダメとか現代のマナーと称したリクルートやNHKどもの
言葉狩りにはうんざりだ
0694デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:38:32.36ID:XpxkKcu8
>>693
Javaにも敬語を導入すべきだ
forよりもwhileが丁寧と言っていいでしょう
0695デフォルトの名無しさん
垢版 |
2017/06/04(日) 11:02:37.53ID:B1StEn/h
>>691
じゃあお前はそれを啓蒙し続けて現代の日本語を変えるがよい。
0696デフォルトの名無しさん
垢版 |
2017/06/04(日) 11:25:15.76ID:XpxkKcu8
>>695
「ご〜する」が謙譲語なのは現代の日本語の常識だから無問題
0699デフォルトの名無しさん
垢版 |
2017/06/04(日) 12:36:37.88ID:63HT6T2I
お客様、もしよろしければ回線をお切りになってそのまま首をお吊りになられてお亡くなりになって頂けませんでしょうか。
0700デフォルトの名無しさん
垢版 |
2017/06/04(日) 13:07:40.83ID:mLhi0pMh
いい歳したオヤジや爺どもが子供の喧嘩のような言い合いしてると思うと悲しくなるな
0701デフォルトの名無しさん
垢版 |
2017/06/04(日) 13:43:16.85ID:XpxkKcu8
>>700
おじさんたちが技術的な議論を繰り広げててとても建設的なやり取りで
勉強になったし晴れ晴れとした気持ちになれました
本当にありがとうございます

こういうふうに言い換えれば周りの人もうれしい気持ちになるだろ

幸せっていうのは与えられるものじゃなくて与えるものなんだよね
悲しみは自分から動くことを止めた怠惰の証
0702デフォルトの名無しさん
垢版 |
2017/06/04(日) 13:44:25.32ID:XpxkKcu8
ポエム勝負なら負ける気がしない、かかってこい
0705デフォルトの名無しさん
垢版 |
2017/06/04(日) 14:54:32.38ID:N3Ss45Z5
そういうことだな
0708706
垢版 |
2017/06/04(日) 19:18:39.53ID:B8B9uyxS
>>707
ではなぜみんなJavaについての会話をされてないのですか?
0711706
垢版 |
2017/06/04(日) 19:57:39.00ID:B8B9uyxS
>>709
はい。
ありがとうございました。
0712デフォルトの名無しさん
垢版 |
2017/06/04(日) 20:14:47.99ID:Y5c4w+fz
ナイス自演
0714デフォルトの名無しさん
垢版 |
2017/06/06(火) 18:32:28.47ID:4JBki8CO
オブジェクト指向(の基礎)や例外などを勉強し終えたのですが、
次はどんなことを勉強すればよいでしょうか?
自分ではSwingを考えているのですが。
0716デフォルトの名無しさん
垢版 |
2017/06/06(火) 18:36:35.20ID:OrB6yYNK
GUIアプリケーションもいいですがtomcatなどでサーバを建ててServletやJSPするのも、出来ることが広がり良いと思います
0717デフォルトの名無しさん
垢版 |
2017/06/06(火) 18:43:11.74ID:WDLmSc1C
>>714
いまさらSwingは時間の無駄かもしれない
0718デフォルトの名無しさん
垢版 |
2017/06/06(火) 19:25:42.43ID:e3GXNMQX
swingで作られた基幹システムの新規画面作らされたことあるけど地獄だぞ
1回あんなゴミのようなもんを体験したら二度と作ろうと思わないだろうから
swingはいずれ絶対になくなる
0720デフォルトの名無しさん
垢版 |
2017/06/06(火) 21:28:54.76ID:e3GXNMQX
なんのためにやろうとしてんのか知らんけど仕事のためっていうなら
仕事でjavaのguiアプリなんてまず作らんから時間の無駄
0721デフォルトの名無しさん
垢版 |
2017/06/06(火) 22:39:03.54ID:mZslSucp
>>718
サイズ調整とイベントではまるのはどれ使っても一緒
C#のXAMLになる前のやつが一番よかった

別にswingが他のにくらべて悪いわけじゃないと思うんだが
0722デフォルトの名無しさん
垢版 |
2017/06/06(火) 23:06:52.04ID:/YRUpnWE
「*」を使って二等辺三角形をfor文で書きたいのですが、底辺の*の数を変数とした時はどうすれば出来るのでしょうか?
0723デフォルトの名無しさん
垢版 |
2017/06/06(火) 23:45:48.14ID:Qy4U0ic0
>>719
たぶん実務経験がないような人が書いている本でも読んでいるんだろうが、好きなのやればいいよ。

画面よりデータベースとのやりとりの勉強でもした方がいい。
0725714
垢版 |
2017/06/07(水) 00:14:45.34ID:uMDm/LY7
遅くなりましたが、レスをくれた方ありがとうございました。
0726デフォルトの名無しさん
垢版 |
2017/06/07(水) 00:44:03.11ID:cTN/k6yF
>>722
どういう出力にしたいの?例えば3だったらこんなのでいいの?

*
**
***

だったら簡単だよね。forの二重ループだ。出力行数は底辺の値と同じだからその分だけ外側ループさせて、内側は*の個数に従って一回目は1、二回目は2という感じで一つづつ増えるようにして*を出して終わったら改行。
0727デフォルトの名無しさん
垢版 |
2017/06/07(水) 07:33:28.64ID:cmAbIhKY
二重にしなくてもいい気もするが…
底辺の数をlengthとして、


char[] cArr = new char[length];
Arrays.fill(cArr, '*');
String base = new String(cArr);

for (int i = 0; i < length; i++)
System.out.println(base.substring(0, i + 1));

こんなんででない?
0728デフォルトの名無しさん
垢版 |
2017/06/07(水) 09:18:54.00ID:tzF2fxtK
>>727
俺は StringBuilder に一つづつ * 足しては出すっての思い付いたが、果たしてそれで初心者のためになるのかというと微妙なところだ。
まあ、最終的には貯めといて出す形式と全く貯めずに出す形式両方がすぐ思い浮かぶようになった方が良いだろうけどね。

そういや他にもストリームの仕組み使ってできそうだな。
0730デフォルトの名無しさん
垢版 |
2017/06/07(水) 12:14:03.70ID:CH9XguNK
ストリームとかレギュレーションとか使えばできるんですねありがとうございます!
0731デフォルトの名無しさん
垢版 |
2017/06/07(水) 12:28:50.65ID:yHTVbtVQ
int n = 3;
String c = "*";
Stream.iterate(c, x -> x + c).limit(n).forEach(System.out::println);

試してないけどこれでいけるかな?
0733デフォルトの名無しさん
垢版 |
2017/06/07(水) 14:05:11.97ID:tzF2fxtK
>>732
ま、>>726も直角三角形だし、縦横同じ間隔で*が表示される状態なら二等辺三角形に見えるものにはなる。
0734デフォルトの名無しさん
垢版 |
2017/06/07(水) 17:01:49.58ID:3Fne/ooH
chromeブラウザのF12で表示される「NetWork」タブみたいに
URLにアクセスした際に送受信されるリクエスト全部取得する処理ってどうやれば実現できますか?
たぶんhttpClientかsocketあたり使うと思うけどhttpClientはレスポンスぐらいしか取れないように見える
0737デフォルトの名無しさん
垢版 |
2017/06/07(水) 18:59:01.67ID:3Fne/ooH
>735
あのなぁそういう糞みてーな回答いらねぇーんだよ
できるならちゃんとした回答書け
ホントイラつく奴だな
0740デフォルトの名無しさん
垢版 |
2017/06/07(水) 19:26:39.78ID:nc/k9gk4
>>737
そんなに怒らないで
普通の人なら的確に分かりやすく答えてくれるけど
オタクはみんなコミュニケーションが下手糞なんだよ・・・
0741デフォルトの名無しさん
垢版 |
2017/06/07(水) 19:27:42.43ID:3Fne/ooH
キーワード出たからってそんなもん質問の時点で書いてるのに馬鹿か?
httpClientなんて既に英語のサイト全部見たしレスポンスヘッダーの中身もメソッドも全部見たわアホ
こういう適当に知ったかで回答する馬鹿が最高にイラつく
まぁ最初から2chの低レベルアホどもに期待なんか1_もしてねーから別にいいけど
ほんと糞の役にも立たねぇスレだな
俺が質問側で今までに役に立ったことなんて1度もねぇわここ
ほんとレベル低すぎる
0745デフォルトの名無しさん
垢版 |
2017/06/07(水) 20:43:40.03ID:qUTOfmgR
chromeでF12?やったことないなあ。後で思い出したら押してみよう。
0746デフォルトの名無しさん
垢版 |
2017/06/07(水) 20:47:01.83ID:qUTOfmgR
>>741
そのまま一生イライラしてれば?
こちらは特に困らないし構わないぞ。
思う存分苛立っててくれ。
よかったな。
0747デフォルトの名無しさん
垢版 |
2017/06/07(水) 21:06:15.71ID:izePe9Zb
>>741
気持ちはわかるがそう言うのしかいないからココ 昔から(ココがって、別にこのスレや板だけじゃなく、サイトレベルの話な?)

知ったか理論
質問者=素人
っていう短絡的思考だから


知ったか俺氏「ん?この質問は聞いた事ある単語があるぞ?ググって見よう コレか!キリッ!!どや!!」

玄人質問者
「いやそう言う次元の話じゃないから・・・・」

今日も平常運行です
0748デフォルトの名無しさん
垢版 |
2017/06/07(水) 22:22:38.96ID:rFNnrxIw
ネットで他人を煽って反応を得ようとするのはコミュニケーション欠乏の典型的な症状
0749デフォルトの名無しさん
垢版 |
2017/06/07(水) 22:40:13.87ID:cTN/k6yF
Chrome の F12 のネットワークタブようやっとわかった。こんなのあったんだな。知らなかった。
0751デフォルトの名無しさん
垢版 |
2017/06/07(水) 23:46:31.85ID:3Fne/ooH
すげーめんどくさかったがパケットキャプチャで解決したわ
ほんと糞の役にも立たねぇ糞どもだな
0752デフォルトの名無しさん
垢版 |
2017/06/08(木) 00:21:58.02ID:FAwIWNwN
Javaの初心者の質問に答えるスレならJavaでの実現方法が回答として書かれるのは当然のこと。
0753デフォルトの名無しさん
垢版 |
2017/06/08(木) 00:56:04.37ID:Beow/AQz
javaの質問と言っていいのかわからないのですが、springとthymeleafでwebアプリケーションを作るとき
例えば
コントローラークラス内に@RequestMapping(path="/aaa/bbb")というアノテーションのついたメソッドがある場合、
どこかのビューの<a th:href="@{/aaa/bbb}">というタグのついたリンクを押すと上記のRequestMappingのついたメソッドが動くのでしょうか?
それともhrefはコントローラーを介さない画面遷移しかできないのでしょうか?
よろしくお願いします。
0754デフォルトの名無しさん
垢版 |
2017/06/08(木) 00:59:14.58ID:YzjJZmY1
>>753
ブラウザのアドレスバーに入力されたURLだろうがaタグのhrefだろうが、サーバーから見れば同じ
0756デフォルトの名無しさん
垢版 |
2017/06/08(木) 07:39:49.77ID:Gp0Sgwlm
>>754
ありがとうございますm(。_。)m
javaほんの少しやっただけなので、httpの仕組みやサーバの動作などが全然わかってなくて…
0774デフォルトの名無しさん
垢版 |
2017/06/09(金) 18:31:46.01ID:98wynj8R
java考えた人ってアタマいいな
というよりコンピュータ言語を開発するのが大変そう
オラクルの人すごくね?
0778デフォルトの名無しさん
垢版 |
2017/06/09(金) 20:59:18.53ID:HFELVm93
ORACLEの人はさほど凄くはない。
0779デフォルトの名無しさん
垢版 |
2017/06/09(金) 21:01:00.73ID:HFELVm93
仮想マシンのアイディア自体はJavaが世界初というわけでもない。
0781デフォルトの名無しさん
垢版 |
2017/06/10(土) 12:08:16.23ID:S4+AOz/V
アルゴリズムの質問になるんだが、
1〜9までの数値が0〜16個のまでの範囲でランダムに発生する
それらを組み合わせによって2〜9のどの数で割っても余りなく割り切れるがどうか確認したい
発生した数値は1回しか使えない
こういう感じのは作るのは難しいでしょうか?
0783デフォルトの名無しさん
垢版 |
2017/06/10(土) 12:35:43.81ID:S4+AOz/V
発生の段階で同じ数値が出た場合出た回数だけ使えるます。
数値を発生させた時に5が3回出たならば5は3回使えます。
0784デフォルトの名無しさん
垢版 |
2017/06/10(土) 13:19:56.04ID:DbYsfAwS
> それらを組み合わせによって2〜9のどの数で割っても余りなく割り切れるがどうか確認したい
> 発生した数値は1回しか使えない

意味がわからない
[1, 5, 9]が発生したらどうなんの?組み合わせって?
0785デフォルトの名無しさん
垢版 |
2017/06/10(土) 13:21:29.61ID:Q1XzIQD3
何となく言いたい事は分かった
1:0〜16の範囲でランダム→これで0〜16桁までランダムに決まる
2:桁数分1〜9をランダム生成→5桁なら5つの数字(重複有り)、10桁なら10つの数字、と言った感じ
3:最後に数値の組み合わせを考える
4:2〜9で割るって感じか

やれないことは無いんじゃね?
1は2のループ回数を決めるだけだし、2も生成した数字を配列とかに格納すれば
3の処理は取り出した後に中身を消すっていう操作にすれば、重複無しの数値を作れるはず
(あるいはハッシュキーで一回使ったキーは使えなくするとかでも良い)
4は出来上がった数値で割るだけだし
0787デフォルトの名無しさん
垢版 |
2017/06/10(土) 13:28:51.47ID:iX4dF/b7
[2, 3, 4, 5, 6, 7, 8, 9]

6 で割り切れるならば 2, 3 でも割り切れるので 2, 3を除外
8 で割り切れるならば 4 でも割り切れるので 4 を除外
[5, 6, 7, 8, 9] の最小公倍数は 2520

2〜9 のどの数で割っても余りなく割り切れる数は 2520 の倍数
2520 の倍数の1桁目は 0

1〜9までの数値で0〜16桁の数のうち1桁目が0になるのは0桁のとき、かつ、その場合に限る
なので桁数が 0 ならば
0789デフォルトの名無しさん
垢版 |
2017/06/10(土) 14:15:38.99ID:iX4dF/b7
日本語ならまかせろ!

「ご〜する」で謙譲語です
0790デフォルトの名無しさん
垢版 |
2017/06/10(土) 14:55:12.73ID:Aw9IeMww
問題が未だに理解できない。一体何をやりたいのか?
0791デフォルトの名無しさん
垢版 |
2017/06/10(土) 16:16:09.55ID:9/7KucPr
>>788
当たり前だけど自分の考えをきちんと言語化して説明できるってめちゃくちゃ重要な能力ですよね…
これができない人とは仕事したくない…
0792デフォルトの名無しさん
垢版 |
2017/06/10(土) 16:18:13.69ID:wDp6rpe3
まず使える数字を決める
 1が何個使えるか0〜16のランダムで決める
 2が何個使えるか0〜16のランダムで決める
  9まで同様に決める
使える数字を組み合わせて数値を作る
 例えば1が3、2が2なら組み合わせによって11122や12211等の数値が何種類かできる
できた数値毎に2〜9が割り切れるか計算する
 11122は2で割り切れる
 11122は3で割り切れない
  これを9まで行う
 12211や他の数字についても同様

こういう事をやりたいのかと思ったんだけどどう?
0793デフォルトの名無しさん
垢版 |
2017/06/10(土) 17:15:59.68ID:S4+AOz/V
説明下手ですみません。
組み合わせといのは単純に数字を足すだけです。
ただ発生させた数値は使ってもいいし使わなくても良いので組み合わせと書きました。

お手数おかけしました。
他の方法を考えてみます。
0794デフォルトの名無しさん
垢版 |
2017/06/10(土) 18:39:57.26ID:YXt3H8K1
うーん。まだわからん。
そもそも何をやりたいのか?
そしてそれは宿題なのか?
0795デフォルトの名無しさん
垢版 |
2017/06/10(土) 19:01:24.42ID:LwGST/Rf
>>793
不完全燃焼だからできればもう一度説明してほしいな
長くなってもいいから
これは俺の我侭でもあるから面倒ならスルーしてね
0796デフォルトの名無しさん
垢版 |
2017/06/10(土) 21:06:14.05ID:wUHDZb6h
>>ID:S4+AOz/V
まだ見てるならみんなもやもやしてるみたいだから

◆要件1
 ・1〜9までの数値が0〜16個のまでの範囲でランダムに発生する。
 〇疑問点
  ・以下のケースどちらも当てはまる。
  @1〜9の数値1つずつに関して、0〜16個ランダムに生成する。
    ※最大生成数9*16
  A1〜9までのランダムの数値を0〜16個生成する。
    ※最大生成数16

◆要件2
 ・発生した数値は1回しか使えない
  ・発生の段階で同じ数値が出た場合出た回数だけ使えるます。
  ・数値を発生させた時に5が3回出たならば5は3回使えます。
  ・ただ発生させた数値は使ってもいいし使わなくても良いので組み合わせと書きました。
 〇疑問点
  ・なし

◆要件3
 ・組み合わせといのは単純に数字を足すだけです。
 〇疑問点
  ・足すとは文字列としてか数値としてか。
   ※文字列だと思うけど念のため

◆要件4
 ・それらを組み合わせによって2〜9のどの数で割っても余りなく割り切れるがどうか確認したい
 〇疑問点
  ・要件1で生成した割り切れた数字のみの結果表示でいいのか。
   ※要件1で生成した数値全件表示とかいらない?
0798デフォルトの名無しさん
垢版 |
2017/06/11(日) 02:13:52.32ID:9ARLDmcQ
ArrayListにおけるremoveの挙動に関して質問なのです
removeの引数として、indexの位置かオブジェクトを指定できるのですが
listが数値の場合に、数値をオブジェクトとして引数を指定する場合はどのように記載すれば良いのでしょうか?

例えば
ArrayList<Integer> ary = new ArrayList<>();
ary.add(1);
ary.add(2);
ary.add(33);
//=>[1,2,33]
System.out.println(ary.remove(33));
System.out.println(ary);
直接33を削除したくても、IndexOutOfBoundsExceptionのエラーが発生してしまうので・・・・・・

listをString型に変換して、文字としての33を指定すれば出来ない事はないのですが
何かまどろっこしいので良い方法があればご教授していただきたいです
0799デフォルトの名無しさん
垢版 |
2017/06/11(日) 02:18:44.79ID:9ARLDmcQ
>>797
プロコンの結果(Output)は指定された通りに出力されていないとダメです
そのコードの場合だと、余計なprintが付いてるので問答無用で弾かれます
今回の場合だと、計算結果だけ出力すれば良いです
×:〜求める3乗値は125です。
○:125
0800797
垢版 |
2017/06/11(日) 02:32:22.94ID:5kRuFFSB
>>799
ありがとうございました。

このサイトって融通きかないんですね…。
0802デフォルトの名無しさん
垢版 |
2017/06/11(日) 03:55:11.06ID:8f1mqXi5
>>798
ary.remove(new Integer(33)) ってやるとどうなる?
0803デフォルトの名無しさん
垢版 |
2017/06/11(日) 05:00:56.39ID:vYdG9fRO
値を直接指定するなら重複なしと考えていいはずだからListじゃなくてSetにしちゃえば
0806デフォルトの名無しさん
垢版 |
2017/06/11(日) 12:27:01.73ID:d7b3ye6p
android studioでプログラミングをしたいと考えているのですが、何か良い解説書はありませんかね?
javaの基本的な部分は理解しているつもりです
0808デフォルトの名無しさん
垢版 |
2017/06/11(日) 14:37:04.62ID:EpiV2zzw
>>802
無事にオブジェクトを指定して削除できました、有難うございます!
削除する時に新しいオブジェクトを生成すれば良いというのは目から鱗でした

>>803
確かに重複なしの数列だったので、Setを利用すれば
引数に数値を直接指定して削除できました!

おかげで解決しました、有難うございます!
0810デフォルトの名無しさん
垢版 |
2017/06/11(日) 15:46:10.49ID:8f1mqXi5
removeメソッド自体が紛らわしく作ってあるとも言えるかな。
型がintではないとかオートボクシングがないとかなら紛らわしくはならないんだが。
色々組み合わさってしまった結果意図せず作り出された落とし穴っぽいものだな。
0811デフォルトの名無しさん
垢版 |
2017/06/11(日) 18:06:24.52ID:XwLTdPC8
自然数がN個が入った配列がある。数値は必ず20未満
この配列をひとつの数値にしたり数値から配列に復元する方法を教えてください
0812デフォルトの名無しさん
垢版 |
2017/06/11(日) 18:35:21.26ID:8f1mqXi5
>>811
ビット単位にするとして、1〜19なら5ビットに収まるので例えばintなら32ビットだから6個まで入れられる。
これはビット単位でシフトしながら作って、戻す時は逆のことをする。

int[] x = { 6個の1〜19の値 };
int n = 0;
for (int i = 0; i < 6; i++) n = (n << 5) | (x[i] & 0x1f);
これでnに6つの値が詰め込まれた状態になる。
戻す時はこうする。
for (i = 5; i >= 0; i--, n >>= 5) x[i] = n & 0x1f;
0813デフォルトの名無しさん
垢版 |
2017/06/11(日) 18:38:39.68ID:8f1mqXi5
その他、ビット単位ではなく20進数として扱うという方法もある。
この場合は20で掛けたり割ったりがシフトレフトやシフトライトになる。
0815797
垢版 |
2017/06/11(日) 19:07:48.03ID:5kRuFFSB
>>804
すいませんでした。
0816デフォルトの名無しさん
垢版 |
2017/06/11(日) 22:07:33.63ID:tquZEUWF
1.データベースとつなげてECサイトを作る課題をやってるんだが(買い物かごを使うAmazonみたいなもの)、テーブル設計教えてくれ
2.同時に複数のブラウザからログインできないようにしたいんだけどどうすればいいか教えてくれ

1はスレチだったらすまん
0818デフォルトの名無しさん
垢版 |
2017/06/11(日) 23:38:15.04ID:ytg9x0pA
>>816
1.
商品テーブル
・商品ID
・商品名
・商品価格

買い物カゴテーブル
・ユーザID
・商品ID
・商品個数

売上テーブル
・売上ID
・売上日
・購入者氏名
・購入者住所
・送り先氏名
・送り先住所

売上明細テーブル
・売上ID
・商品ID
・商品数量
・売上金額

2.
ログインテーブルにセッションIDの列を作って
ログインしたときにセッションIDを上書きして
承認のときにセッションIDをチェックするとか
0819デフォルトの名無しさん
垢版 |
2017/06/12(月) 00:55:59.20ID:mg3rFpBS
コンストラクタへのパラメータにnullを許さない場合、
何を投げるのがベストですか? また、その根拠は何ですか?

1) Objects.requireNonNull()などによるNullPointerException
2) 単にIllegalArgumentException

今までは2)でずっとやってきたんですが
nullなんだからヌルポでいいんじゃないのか?
の考えも徐々に大きくなりつつあります
0822デフォルトの名無しさん
垢版 |
2017/06/12(月) 07:31:27.23ID:1lBVkHcp
>>821
お好きにどうぞ
0823デフォルトの名無しさん
垢版 |
2017/06/12(月) 13:57:51.40ID:sGejfR27
親商品テーブル(商品名管理)と子商品テーブル(バリエーション管理)みたいなの作って在庫テーブルも別に作った方がよくないか
カゴに入れてキャンセルとかも実装するとなると在庫テーブルで一元管理は大変だろうし引当管理テーブルもあった方がいいかも
0824デフォルトの名無しさん
垢版 |
2017/06/12(月) 14:04:03.04ID:H3aCgKp9
ああ。しかし、もはやJavaの話ではなくなっているように思う。
続きはDB関係のスレでやった方が良いのではないかな。
0826デフォルトの名無しさん
垢版 |
2017/06/12(月) 17:39:10.86ID:U1BEnqvv
課題手伝ってもらおうとしてるくせに
「教えてくれ」

教えてくださいだろアホ
0827デフォルトの名無しさん
垢版 |
2017/06/12(月) 17:53:32.88ID:a//lNTfp
いっそのこと試験問題のように「〜せよ。」とか書いてほしいものだ。
0828デフォルトの名無しさん
垢版 |
2017/06/12(月) 17:57:13.28ID:X/qk8fTD
お前等馬鹿が質問の仕方もろくにわからんガキに反応するから
teratailみたいなところでも意味不明な日本語で質問する馬鹿が減らないんだよ
0829デフォルトの名無しさん
垢版 |
2017/06/12(月) 18:00:45.61ID:XJZ7MJot
プログラム言語の勉強は本当に頭が痛くなる
しかし動いた時の嬉しさは言葉にできない。
痴呆抑制にも効果があるのではないだろうか?
ただ、眼には良くないけど…
0832デフォルトの名無しさん
垢版 |
2017/06/12(月) 19:16:10.02ID:2dDccTdY
>>831
いただきます…いただきますっつってんだろー!
俺には召し上がれすら言わねーのかよ!
って息子が反抗期に言ってた
0836デフォルトの名無しさん
垢版 |
2017/06/16(金) 00:21:26.44ID:pAg9stYl
演習問題で、抽象クラスを型に持ったメソッド見たのですが
クラスを型にした場合、何を返せば良いのでしょうか?

public Record getRecord(int idx)
{
return ???;
}

abstract public class Record
{
//特にリターンは無い
}

intやstringの型ならintやstringを返すということは解るのですが
特に返り値を持たないクラスはどうしたら良いのか想像がつきません

よろしくお願いします
0837デフォルトの名無しさん
垢版 |
2017/06/16(金) 01:09:23.90ID:poP4xQCz
抽象クラスを返せば?

要するに、具象クラスA・Bも、抽象クラスXととらえる事で、
異なる具象クラスA・Bに、共通の処理を書ける

return で、抽象クラスをもらったら、
それを該当する具象クラスへ、正しくキャストする
0840デフォルトの名無しさん
垢版 |
2017/06/16(金) 03:25:03.02ID:jhdXcInh
>>836
例えば、return new MyRecord(idx)

public class MyRecord extends Record {
実装略
}

実際はそのgetRecordが定義されてるクラス内の別メソッドやらプロパティ使ったアクセス経由で値返す事が多いだろうけど。
0841デフォルトの名無しさん
垢版 |
2017/06/16(金) 21:10:04.87ID:NbKqOO6c
抽象クラスのシングルトンみたいなことが出来ちゃうのか?
だとしたら気持ち悪いわ
0842デフォルトの名無しさん
垢版 |
2017/06/16(金) 22:35:15.61ID:qWm3MoH/
そうか?
0843デフォルトの名無しさん
垢版 |
2017/06/19(月) 17:44:20.17ID:wKau2iwt
腕試しに簡単なゲーム作ってるんだけど
敵キャラクターとか見方キャラクターのデータってどう保存しておくのが良いんだ?
育成要素無いからステータスは一定だから配列でどうにかできそうな気がするけど
各キャラクターの要素敵も味方もは「キャラ名」「HP」「攻撃力」「防御力」「すばやさ」
0844デフォルトの名無しさん
垢版 |
2017/06/19(月) 19:07:31.87ID:pt8icPJA
>>843
オブジェクト指向ではないのか?
0845デフォルトの名無しさん
垢版 |
2017/06/19(月) 19:17:35.34ID:ZfjHm45J
>>843-844
csv,tsv,json,xmlなど好きな形で書いておいて、ファイルからデータ読み込んで、オブジェクトのインスタンスを生成して使うって話じゃないん?
そのデータが固定ならばjar内に同梱、可変なら外に置けるように作る
0846デフォルトの名無しさん
垢版 |
2017/06/19(月) 19:28:38.55ID:W0M1n2m6
>>843
そういうのこそクラス作っておくのがベスト
配列にするのは可読性が下がるから効率を追求するときだけにしとけ
0848デフォルトの名無しさん
垢版 |
2017/06/19(月) 19:47:36.02ID:wKau2iwt
ありがとうございます。
せっかくなのでcsvファイルを読み込むのに挑戦してみようと思います。
0850デフォルトの名無しさん
垢版 |
2017/06/20(火) 00:12:42.70ID:sy5ccpv+
配列は配列で便利ですよね
同じ処理のボタンとか、配列で綺麗にまとめられると嬉しくなります
話はそれますが。
0851デフォルトの名無しさん
垢版 |
2017/06/21(水) 07:17:21.25ID:n4ESO8N1
VBしかやったこと無いからJAVA能力検定1級というのを受けてみたんだけど、テキストエディタだけでコード書くのキツイね

コードフォーマッタ無いから手動でインデントしたけど、対応する鍵カッコを見失って困った

JAVAって標準のIDE無いからテキストエディタとコンパイラでやるんだろうけどキツイ世界だね
0852デフォルトの名無しさん
垢版 |
2017/06/21(水) 08:58:07.89ID:BZXMZb7j
まあな、メモ帳で1万行のメソッド書いてコンパイルできるようになったら一人前だ、それがJava
0853デフォルトの名無しさん
垢版 |
2017/06/21(水) 09:37:01.88ID:sUpvI2FC
Java8の標準ライブラリの範囲内で数値を8桁の2進数表記がやりたいのですが、良いやり方があれば教えてください

int i = 10; // 0 <= i <= 255
String actual = /* 整形 */

assertEquals("00001010", actual);

思いついたのはこれなんですが…あまりにもイマイチな気がしてます
String tmp = "0000000" + Integer.toBinaryString(i);
actual = tmp.substring(tmp.length - 8);
0854デフォルトの名無しさん
垢版 |
2017/06/21(水) 09:57:48.03ID:A+TdX/Mq
>>852
そりゃなんかものすごい設計ミス
0856デフォルトの名無しさん
垢版 |
2017/06/21(水) 10:31:52.72ID:A+TdX/Mq
>>855
おまえあたまいいな
0858デフォルトの名無しさん
垢版 |
2017/06/21(水) 12:49:36.79ID:L1LFWazB
Java7以降の数値リテラルで、2進数は接頭辞 0b・0B だろ。
_ も無視されるから、間に使える

0b0000_1010
0859デフォルトの名無しさん
垢版 |
2017/06/21(水) 12:53:26.47ID:A+TdX/Mq
>>857
設計が変でもそういうのはある。
しかし設計が変なことにはかわりなし。
0860デフォルトの名無しさん
垢版 |
2017/06/21(水) 12:54:20.55ID:A+TdX/Mq
>>858
それが何か?
誰もそんな話してないよな。
0861デフォルトの名無しさん
垢版 |
2017/06/21(水) 13:04:11.72ID:sUpvI2FC
>>855
天才現る!
ありがとうございます、すっきり書けました
意図をコメントで残しておけば混乱もないでしょうし助かりましたm(_ _)m
0863デフォルトの名無しさん
垢版 |
2017/06/21(水) 13:08:10.05ID:bqAd0GFb
>>860
そんなこと言っとったら話題が広がらんだろうが
誰も話してなかったら話をしちゃいけないんだもんなあ
ああ辛いわあ
すごい話があるんだけどいわないから!
0864デフォルトの名無しさん
垢版 |
2017/06/21(水) 15:18:14.32ID:K52r2H7q
>>862
Javaで一万行は普通は何か変だろ。
それそのものが信頼性高くても何か作りがおかしいことには変わりはない。

>>863
なに必死になってんだ?大丈夫か?
誰もおまえのこと悪く言ったりしてないぞ。
0865デフォルトの名無しさん
垢版 |
2017/06/21(水) 16:09:47.19ID:CwIOTiNS
>>864
人を刺してる人が居たら
刺されてるのが自分じゃなくても嫌な気持ちになるだろ
俺はお前の犯罪を止めたい
0867デフォルトの名無しさん
垢版 |
2017/06/21(水) 16:20:00.12ID:K52r2H7q
あーはいはいそうですね
0870デフォルトの名無しさん
垢版 |
2017/06/21(水) 17:53:22.83ID:CwIOTiNS
1万行が普通じゃないと言っちゃう人は
業務経験が圧倒的に不足していると言わざるを得ない
大規模開発では普通にあるし普通に書けないと仕事にならない
0874デフォルトの名無しさん
垢版 |
2017/06/22(木) 14:02:19.04ID:o0ACLL8F
派遣で医療系で使う基幹システム作ってる会社行ったとき
2万行越えのクラスファイルが4つぐらいあったな
変数は基本全てクラス変数で、かつ密結合でクラスファイルが
別のクラスのクラス変数参照しまくってるからバグの特定が困難で
最適な改修方法を精査するのにソースの条件分岐をメモってるだけで
何百行にもなるほどクソなソースで後にも先にもここが最凶最悪だったな
0875デフォルトの名無しさん
垢版 |
2017/06/22(木) 17:07:27.66ID:TWN3+XGD
でかいクラスの中身がほとんどC言語ってやつか・・・
0876デフォルトの名無しさん
垢版 |
2017/06/22(木) 18:35:08.32ID:06KMQ0Mv
>>874
保守のたいへんさが分かってよかったじゃないか。

世の中、そんなのばかりだよ。
0877デフォルトの名無しさん
垢版 |
2017/06/22(木) 18:35:50.75ID:06KMQ0Mv
オープンソースの有名な製品もコードを見るとかなりクソだったりする、
0880デフォルトの名無しさん
垢版 |
2017/06/22(木) 21:12:35.00ID:p66dP4Lb
まともな設計できるやつがほとんどいないってことだな
0881デフォルトの名無しさん
垢版 |
2017/06/22(木) 22:09:46.81ID:7SsgklDx
>>877
コードの良し悪しより、便利かどうかだからな
コードの綺麗さにこだわってるくせにろくなもん作ったことない、なのに声だけデカい奴が最近は増えたけど
0882デフォルトの名無しさん
垢版 |
2017/06/22(木) 22:50:42.88ID:yHDavZL4
□ がこの様に一直線に並んでいて、選択した□の幅が広くなり、それによって残りの□の座標を変化させたいです。
□ □ □ □
↓左から2番目を選択([ ]は幅が広くなっていることを示している)
□ [ ] □ □
に表示したい。
どう書けばいいでしょうか?
for (int i = 0; i < 4; i++) {
if (i == cnt) {

} else {

}
g.fillRect(20 + (80 * i), 300, 40, 40);
}
0883デフォルトの名無しさん
垢版 |
2017/06/22(木) 23:13:46.79ID:Wf/TPVDN
public static void sysprif(String s, Object... args) {
System.out.printf(s, args);
}
とか書くのは邪悪なんでしょうか?(いや、邪悪だろうけど、何か後で酷い目にあったりするんだろうか)
0884デフォルトの名無しさん
垢版 |
2017/06/22(木) 23:58:20.46ID:5ZvG5KR4
>>883
そのsyspritfの存在意義ってなんなん
printfを直接呼び出すのと比べてなんのメリットがあんの?
0885デフォルトの名無しさん
垢版 |
2017/06/22(木) 23:59:06.30ID:06KMQ0Mv
>>883
そもそもメソッド名の短縮化あたりで年配に見えてしまうが?
0886デフォルトの名無しさん
垢版 |
2017/06/23(金) 00:00:33.41ID:BC3U1Ap1
>>884
いや彼はObject型の可変引数でいいのか聞いているのではないのか?
0889デフォルトの名無しさん
垢版 |
2017/06/23(金) 16:59:14.45ID:4xTfYoSZ
すごいどうでもいい質問かも知れないけど
メソッドの引数の括弧とバケットの間ってスペース入るのがデフォなの?
0890デフォルトの名無しさん
垢版 |
2017/06/23(金) 17:06:08.69ID:zs9t5glj
>>889
C言語のスタイルを受け継いでいるからスペースを入れないのが普通。

if文等なら入れる。
0891デフォルトの名無しさん
垢版 |
2017/06/23(金) 17:15:16.13ID:zs9t5glj
>>889
") {"の話か。これならスペースを入れるのが主流だろうな。これがC言語だとここで改行するスタイルもある。

Javaはクラスの場合は改行、メソッドの場合は改行しないのが普通。
0892デフォルトの名無しさん
垢版 |
2017/06/23(金) 18:28:39.19ID:0SAurMDI
基本的にeclipseのフォーマッターに従っときゃいいよそんなもん
改行なんかは見やすく調整が必要だったりするけど、スペースなんて好みの入る余地はない
0894デフォルトの名無しさん
垢版 |
2017/06/23(金) 22:18:29.83ID:+oxSuAhB
>>891
クラスも改行しないだろ
まあ好みの問題か
0896デフォルトの名無しさん
垢版 |
2017/06/24(土) 00:43:48.32ID:EAyBYnWy
どうなんだろうねえ。たまに真に受ける純真な人が居たりするから初心者スレではなるべくならない方が良いとは思うが。
0897デフォルトの名無しさん
垢版 |
2017/06/24(土) 05:42:16.85ID:AiSsJYjg
>>894
クラスは改行するのがJava本来のスタイル。
0898デフォルトの名無しさん
垢版 |
2017/06/24(土) 05:43:14.11ID:AiSsJYjg
>>892
はあ?
0899デフォルトの名無しさん
垢版 |
2017/06/24(土) 08:15:02.93ID:pwzMZ27W
>>887

そんな感じです。ちょっと説明しずらいので描いてみました。
ttps://www.axfc.net/u/3818541.png

□同士の間隔は変わらないのですが、選択したものの幅が広がり、
他の位置を広がった幅分だけ設定するのが難しいと感じています。
0901デフォルトの名無しさん
垢版 |
2017/06/24(土) 18:46:51.81ID:pwzMZ27W
>>900

おおお!ありがとうございます。まさにこれです!
しかも、クリックで選択できるとは。

ありがとうございます。
0902デフォルトの名無しさん
垢版 |
2017/06/24(土) 22:36:11.32ID:EAyBYnWy
>>897
おまえの言ってるのは

class X
{
}

みたいなことか?

class X {
}

ではなくて。

しかし後者のソースの方が圧倒的に多いように思うんだがなあ。

まあでも Java の場合は文法的にはどちらでもよく完全に好みの問題でしかないからどうでもいいことだが。
0906デフォルトの名無しさん
垢版 |
2017/06/24(土) 22:55:35.56ID:AiSsJYjg
>>902
Javaはクラスの場合は後者が伝統的な書き方だよ。
0907デフォルトの名無しさん
垢版 |
2017/06/24(土) 22:57:34.71ID:AiSsJYjg
>>902
前者の間違いだった。Javaはわざわざこれはクラスだとわかるように改行するのがもともとのJavaのスタイル。
0909デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:03:14.36ID:AiSsJYjg
>>908
そもそもエクリプスは反Java側が作ったものだから。
0910デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:09:57.15ID:pSkV4PMO
だからどうしたと言うのか
Javaの一般的IDEであるeclipseのフォーマッターによるフォーマットでは後者が採用されているし
各種書籍やネット上のソースでも後者が絶対的多数
伝統的と言えば聞こえはいいが結局は絶滅危惧種の古文書的フォーマット
0911デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:17:17.99ID:84AJXWJ9
フォーマットなんて所詮言語と同じでナマモノだから
使われなくなればどれだけの伝統があろうが淘汰される、それだけ
0912デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:28:24.44ID:AiSsJYjg
>>910
ちなみにJavaはNetBeansが本家だぞ。
0913デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:35:25.45ID:pSkV4PMO
>>912
悪いけどちゃんと読んでからレスしてくれるか
「一般的IDE」と言っただけで誰も本家の話はしていない
0915デフォルトの名無しさん
垢版 |
2017/06/25(日) 03:06:45.87ID:gnvvT/jN
予告犯の主人公は変なとこで改行入れんなとか言われてたな
派遣切りでそのままネカフェ難民になってたけど、
一応java使えてれば仕事くらいはあるもんなんちゃうの?
0916デフォルトの名無しさん
垢版 |
2017/06/25(日) 06:20:33.73ID:wnVI7vr5
>>914
もうどうでもいいことだけど、eclipseは日蝕という言葉だから、サンマイクロシステムズの太陽へのあてつけだったんだけどな。もうそういう話も話題にならない時代になったわけか。
0917デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:14:41.58ID:KhSXYTyi
使えるっていうのがどのレベルか知らんけど
ちゃんと全部のデザパタ理解してソースコード書けて
オラクルゴールド取れるぐらいにSQL理解してて
メジャーなORMの仕組みを理解してちゃんと使えて
Javaのフレームワークは最低限Strutsの頃から出て物全て把握してるなら
仕事なんて吐いて捨てるほど選び放題だ

javaの言語覚えました! レベルの奴は知らん
0918デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:29:00.70ID:wnVI7vr5
>>917
オラクルマスターのゴールドはSQLを問う資格ではない。
0919デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:30:51.12ID:wnVI7vr5
>>917
Java EEの定義からはずれることも言ってるけど頭は大丈夫か?
0921デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:37:15.80ID:KhSXYTyi
>ID:wnVI7vr5
馬鹿乙

実際に仕事で使われることについてしか書いてないのに
なんでJavaEEの定義がどうとか出てくるのか
0922デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:40:07.72ID:T3UbVkML
>>920
上げて損する人間などいない!
0923デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:45:17.88ID:KhSXYTyi
まぁ揚げ足取ってるつもりで全然取れてない馬鹿みたいに
javaだけしか知らない阿呆だけでシステム作れたら誰も苦労しねぇ罠
0924デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:49:05.79ID:T3UbVkML
なにを言っとるんだ
0925デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:49:38.20ID:T3UbVkML
システムはjavaだけしか知らない阿呆だけで作れます
0926デフォルトの名無しさん
垢版 |
2017/06/25(日) 11:53:44.21ID:KhSXYTyi
あのなぁ
俺は仕事したことなさそうな初心者に
親切心でJava、SQL、ORM、フレームワークってキーワード出してやってんのに
定義から外れてるだのjavaだけで作れますだの低次元のゴミは消えろ阿呆
馬鹿の言葉遊びはチラシの裏で一人でやってろ
0927デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:00:01.54ID:T3UbVkML
>>926
その親切心が皆の足かせになってることに気付こうよ
0928デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:01:56.65ID:QPpmeE/J
めちゃくちゃ的外れな上に
知りもしないこと知ったげに言われると
初心者が混乱するから迷惑なんですが
0929デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:10:07.76ID:wnVI7vr5
>>926
このスレッドのタイトルを見てますか?
0931デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:13:45.70ID:KhSXYTyi
キーワードすら聞いたことない馬鹿がゴキブリのように沸いてくるよな阿呆
俺を除いてここにいるようなjavaだけしか知らない馬鹿どもには仕事はできない
これが現実だ
現実は馬鹿に合わせてレベルを下げてなんかくれないぞ?
一つ勉強になったなアホども
0933デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:26:32.31ID:T3UbVkML
チームの人間をアホ・バカと罵ることで自らの力を誇示する人がいる
彼らはそれと引き換えにチームの人間を萎縮させチームの力を低下させる
個人の力よりもチームの力を優先できることをコミュニケーション能力と呼ぶならば
会社がコミュニケーション能力を重視するのは当然のことかも知れない
0934デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:27:12.25ID:T3UbVkML
僕らはチームなんだよ!
チームプレイに徹して欲しい
0935デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:28:04.52ID:T3UbVkML
2ch株式会社Java入門チーム
0937デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:51:17.04ID:T3UbVkML
認知心理学の研究で大学の教授にアンケートを取ったところ
自分が他の教授よりも頭が良いと思っている人は9割だった

知的活動では自信過剰なことがプラスに働くんじゃないか
という研究結果があるので他人の批判ではなくて自己の思考や
行動を活発化させる方向にそれを活かせればよいのだろうけどね
0938デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:58:05.05ID:/dywZQtk
>>904

すみませんでした。以後、imgurを使用います。

----

indexが増えた際のx座標計算がうまくできません。
IntStream.range(0,itemCount)
.filter( i -> getItemX(i) <= e.getX() && e.getX() < getItemX(i)+getItemWidth(i) ).limit(1)
の制限も考慮しなくてはならないのでしょうか?

参考ソース (ttps://www.axfc.net/u/3818669)
作成ソース (ttps://pastebin.com/i84ws4zH)
0939デフォルトの名無しさん
垢版 |
2017/06/25(日) 19:43:27.29ID:PbhQLBTm
>>916
ならばなおのこと全部Javaで作った理由がわからんな。Javaでこんなものまで作れますよって実績作ることにしかならないじゃない。
0940デフォルトの名無しさん
垢版 |
2017/06/25(日) 20:14:59.02ID:L2u2Exq8
Javaの話じゃなくてすまんがIronPythonを.NETをdisるために作ろうとしたら想像以上によく動くものができたから自分の論文を撤回せざるを得なくなったって話思い出した
0941デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:15:23.43ID:Fdc708fK
業務システムでプロジェクト分割をしようと思った時、
1. Controller + Form
2. Repository + Service + Dto
3. システム共通

の3つに別けようと思う。
このプロジェクト分割方法は馬鹿かな?
0942デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:42:01.98ID:NUJBMJ8x
>>931
現実はお前に合わせてレベルを下げてなんかくれないぞ?
0944デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:43:24.48ID:wnVI7vr5
>>939
全部Javaなんて誰が言っているのか?
0945デフォルトの名無しさん
垢版 |
2017/06/25(日) 22:14:49.01ID:biukWTID
>>904
すまん。899は俺に合わせたんだと思う。

>>938
79行目
 誤: if (i == index) {
 正:if (i == this.index) {
13行目のint index;と71行目の getItemX(int index) 、どちらもindexなんだけど、79行目では13行目の方を使う。

86行目のtmpX += interval;を83行目と84行目の間に移動。
forの外にあったらintervalは1回しか使われない。

>IntStream.range(0,itemCount)
>.filter( i -> getItemX(i) <= e.getX() && e.getX() < getItemX(i)+getItemWidth(i) ).limit(1)
>の制限も考慮しなくてはならないのでしょうか?
そっちはマウスのボタンを押した際のX座標からどの四角かを判別してる所だから関係ないよ。
0946デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:19:36.03ID:/dywZQtk
>> 945

ありがとうございます。なんとか出来ました。

>>そっちはマウスのボタンを押した際のX座標からどの四角かを判別してる所だから関係ないよ。
なるほど。まだよくラムダが分かっておらずfilterとlimit(1)があったので、座標計算の一部をしているのかと思いました。

親切にどうもありがとうございました。
0947デフォルトの名無しさん
垢版 |
2017/06/26(月) 01:41:16.14ID:dBcxZn43
>>944
Java ではないのか? じゃあこれ間違ってるから書き直しておいてくれ。

https://ja.wikipedia.org/wiki/Eclipse_(%E7%B5%B1%E5%90%88%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)
> Eclipse自体はJavaで記述されている。
0948デフォルトの名無しさん
垢版 |
2017/06/26(月) 07:38:34.42ID:WsPLfBZ0
EclipseはすべてJavaで作られた,と,言いたかったのか
0949デフォルトの名無しさん
垢版 |
2017/06/26(月) 07:39:54.73ID:WsPLfBZ0
Wikipediaの編集はそうするべきと思った人が自分でやりましょう,そのためのWikipedia
0950デフォルトの名無しさん
垢版 |
2017/06/26(月) 20:29:48.22ID:Zn9ql8N4
初歩的な質問ですみません
例外処理について勉強しているところなのですが
以下のコードでobjメソッド内で例外エラーが発生したとして、
"throws Exception"を記述する理由が良く分かりません
その記述が無くても、tryブロックでobjメソッドを呼び出した時に例外エラーが起こるので
catchブロックに移動し問題なく例外処理されると思うのですが・・・

class Sample{
public static void main(String args[]){
try{

obj();

}catch(Exception e){ //obj()からパスされた例外をキャッチ

   //例外処理

}


}

static void obj() throws Exception{

処理

}

}
0951デフォルトの名無しさん
垢版 |
2017/06/26(月) 21:13:23.21ID:L0ltnIDu
>>950
それがないとコンパイラも人も中身を全部読まなきゃ何の例外返す可能性があるメソッドなのかわからないからだろう。
0954デフォルトの名無しさん
垢版 |
2017/06/27(火) 07:56:12.40ID:ngSbFuUq
>>953
何言ってんだお前、全然違う
シンタックスシュガーじゃない
センタックスシュガーだ
それ以外は合ってる
0955デフォルトの名無しさん
垢版 |
2017/06/27(火) 09:23:49.77ID:iWisgjb4
>>953
似ている所はあるがかなり違うと思ってた方が良いと思うよ。
0958デフォルトの名無しさん
垢版 |
2017/06/27(火) 17:56:39.93ID:WJOzEeQP
かんたまがきゆい
0959デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:12:17.19ID:emYml4i8
C++はC言語、手続き型プログラミング言語に抽象データ型を実現し、
静的型付けオブジェクト指向プログラミングを書きやすくするために作られ、
C言語を継承し機械語の効率的な実行のための設計を維持しようとしている。

Javaは当初、組み込みシステム上でネットワークコンピューティングに対応(support)するために作られた。
Javaは移植性があり、セキュアであり、マルチスレッド対応であり、分散であり、そして
C++よりも単純(simple)になるように設計された。
Javaの文法はCプログラマに馴染みやすいものが選ばれたが、Cとの直接的な互換性は維持されていない。

JavaとC++の比較
-Wikipedia
0960デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:15:14.99ID:emYml4i8
C++
プログラマを当てにする
明示的な型破壊
マルチパラダイム
演算子多重定義

Java
プログラマを守る
型安全性
オブジェクト指向
演算子の効果は不変

JavaとC++の比較
-Wikipedia
0963デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:24:55.69ID:BFJFfjlP
>>962
それはオブジェクト指向だけ切り取った場合だろw
0964 ◆QZaw55cn4c
垢版 |
2017/06/27(火) 19:27:03.80ID:kIT2/xtQ
>>961
難解というのなら Java の generics の方が難解だ
C++ のそれは instanctiate に端的に表されるとおり、至極素直だと思う
0965デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:27:49.98ID:XD0WiN5V
え、まじですか?
Cの方がメモリ管理とかポインタとかあって難しいという噂ですよ。
その代わり、早いのだとか。

javaは、私でも初歩だけは楽しく学べました。
どんな言語にしろ、プログラムって素晴らしいですね!
0966デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:27:53.77ID:emYml4i8
「メモリ管理は、Java仮想マシンに統合されたガベージコレクションの機能によって行われる(中略)
Javaには、C/C++のような、整数とポインタの相互変換、
配列の要素へのポインタによるアクセス、ポインタ演算といった機能は、基本機能としては提供していない」

Java
-Wikipedia
0967デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:29:43.95ID:XD0WiN5V
でも楽しくて素晴らしいなんて思えてるのは最初だからかも。
開発となれば納期とか派遣とか人間関係とかあって、つらいという噂です。
やはりプログラム言語は恐ろしいですね…
0968 ◆QZaw55cn4c
垢版 |
2017/06/27(火) 19:31:16.57ID:kIT2/xtQ
趣味でやればいい、誰にも支配されることはない
0970 ◆QZaw55cn4c
垢版 |
2017/06/27(火) 19:32:18.24ID:kIT2/xtQ
>>969
でも void * 型を適正に使うのはむずかしい
0972デフォルトの名無しさん
垢版 |
2017/06/27(火) 19:42:59.14ID:GZ1TXcZe
Cはアセンブリ言語がわりに使うのが丁度いい感じがする。
OS書くとか、デバイスドライバ書くとか、組み込み用マイコンの数KBのROMエリア用のプログラム書くとかな。
ああ。でもこの頃は物凄く小さいマイコンボードでもLinux乗ってたりするからあまり小さくする必要はないかな。
0973デフォルトの名無しさん
垢版 |
2017/06/27(火) 21:59:25.71ID:i+35CN1y
**
Cには、ダブルポインタ、ポインタのポインタもあるから面倒

可読性が低いし、メモリ管理が厄介なので、
生産性が低く、開発費がかかる

固定配列だから、配列.add のように、配列に要素を追加できない

漏れは、1冊丸ごと、ポインタの本も買ったけど、
まともにプログラミングするだけでも、数年以上かかるし、
生産性が低いから、どんどん自分の給料・時給が下がっていくのが、Cのおそろしさw

あの人、ずっと製品を作れないって、影口を叩かれるのに、君は耐えられるか?w
0974デフォルトの名無しさん
垢版 |
2017/06/27(火) 22:13:18.16ID:Dbg4icUk
ただ、アセンブラもそうだけど、生産性以前にC言語のプログラミングは楽しいよ
0976デフォルトの名無しさん
垢版 |
2017/06/28(水) 00:34:04.24ID:na5KYPAC
>>973
reallocぇ。。。
GUIはMFCなりに任せて、中身はCで書くとか、新人の頃はそんなだったから、開発自体は数年もかからんよ。
バグった時のメンテが大変なだけ。
0977デフォルトの名無しさん
垢版 |
2017/06/28(水) 00:58:22.89ID:CBwCtPCV
>>973
てか、Cの配列はシンタックスシュガーでありポインタ操作を分かり易く表現しているだけだ。
*(p + i) を p[i] と書けるようになっているだけ。だから添え字がオーバーしようがマイナスだろうがお構いなしにアクセスできる。
そして malloc() 等でヒープにメモリ確保してそこを配列として使うのであれば realloc() で配列の伸縮は可能。
ていうか使っていいメモリ領域を伸縮できるだけのことでそこを配列として使うかどうかはプログラマの自由。
0978デフォルトの名無しさん
垢版 |
2017/06/28(水) 08:04:30.05ID:S5X3XZyd
Cの配列の重要な点として、確保した領域が本当に連続しているらしいというのがある
他の言語は、その辺がどうなってるのかわからない
0979デフォルトの名無しさん
垢版 |
2017/06/28(水) 08:15:41.53ID:na5KYPAC
>>978
連続してるから配列と言う。
だから二次元配列は二次元分が一次元のメモリアドレスに並ぶが、配列の配列は中の配列は連続してて、外の配列は各配列のポインタを配列として保持する。

この辺はデータ構造だから他の言語でも実装方法に違いはあっても意味的には同じはず。
(だからPythonはわざわざリストって言ってるんじゃなかろうか)
0981デフォルトの名無しさん
垢版 |
2017/06/28(水) 09:04:21.96ID:na5KYPAC
プログラミングそのものが理系って気はするけどな。
その中じゃCはハード寄りなので工学系か。
0982デフォルトの名無しさん
垢版 |
2017/06/28(水) 11:33:29.30ID:mVs/LpbZ
プログラム自体が理系という間違った認識
経済学部や文学部もJavaくらい必修にすればいいのに
0983デフォルトの名無しさん
垢版 |
2017/06/28(水) 12:43:23.69ID:XcVisUao
C、C++は自由度が高すぎる。C、C++を使わないといけないようなところ以外では使わないのが普通。

使う場合はコーディング規約なり、なんらかのルール、制限をかけないとたいへんなことになる。
0984デフォルトの名無しさん
垢版 |
2017/06/28(水) 13:26:41.42ID:d3x3J7jp
>>979
多次元配列の時にポインタ(Javaなら参照)使うかどうかは言語によって違うが、Cはポインタ使わないで塊にした配列というのも作れる。これはメモリ上で連続している。
例えば char s[3][10]; と宣言した場合、 char型10要素の配列が3要素連続している。char[10] という型が新たに作られて、それの配列になっているからだ。
なのでこれは char *s[3]; と宣言してから各要素にメモリを割り当てた時と同じように s[2][3] みたいにしてアクセスできるが、その場合は char * の配列なので扱いが違っている。
0985デフォルトの名無しさん
垢版 |
2017/06/28(水) 13:29:55.62ID:d3x3J7jp
>>983
そうそう。言語でサポートされていないことを人間が工夫するなりツール使うなりして補わないと中々うまく行かない。
0986デフォルトの名無しさん
垢版 |
2017/06/29(木) 17:10:53.86ID:wGgfLCtF
***SLAMO***

}

000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA"
001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b>
002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>>
3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}}


---

[[[C%%]]]
}

000-"5802"/"α"="0.1888412376155482"%en{
0989デフォルトの名無しさん
垢版 |
2017/06/30(金) 14:24:23.98ID:9wiTcCe3
確かに1000行でも一体何故そうなったのか気になるレベルだな。
データを中に含めたりすれば行くだろうが、外出ししなかったのは何故かとかね。
データ含んでないのになったのならそれはそれで不思議ではある。基本的な何かを間違えてたりはしないかとかな。
0991デフォルトの名無しさん
垢版 |
2017/06/30(金) 16:40:17.80ID:ZsngkGDU
プロジェクトの人間が入門書レベルのソースコードしか書けない奴等ばっかだと
関数分割してるだけで不満垂れ出す
そしてそういうプロジェクトのリーダーはただ管理してるだけの上辺だけのリーダー
コネで仕事取ってるそこそこデカい会社によくあるパティーン
0993デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:24:54.98ID:k0YageAz
こんばんは、別言語を嗜んでいますがjavaは初心者です
とある勉強会に参加しようか迷っているのですが理由としてはIDEを使わずjavacコマンドでのコンパイルになるためです
勿論セッション内容はjavaについてですが、IDEを使わずの原始的な(失礼だったらすみません)方法でも勉強になるでしょうか?
アドバイス頂けると助かります
0995デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:52:29.18ID:OVPH3JJ6
spring bootを使うことになったのですが、本買って勉強した方がいいでしょうか?
Javaのオブジェクト指向が分かるレベルです
どうやって勉強した方がいいでしょうか?
0996デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:58:30.29ID:QKAjGyYK
>>993
IDEのような開発のためのツールの勉強にはならないだろうが言語そのものの勉強にはなるのではないかな。
0997デフォルトの名無しさん
垢版 |
2017/06/30(金) 22:04:05.44ID:m1s+AXNT
javaの関数が戻ってこなくてタイムアウトになる
デバッグ実行で追うと関数の最後まで行くのに、呼び出し元に戻らない
何か心当たりありませんか
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 87日 1時間 33分 33秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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