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

■ このスレッドは過去ログ倉庫に格納されています
2017/06/30(金) 22:14:16.54ID:W0OUnv8/
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.3
http://mevius.2ch.net/test/read.cgi/tech/1491306071/
2デフォルトの名無しさん
垢版 |
2017/06/30(金) 22:24:35.84ID:f3bJ3XCJ
ちょつ
3デフォルトの名無しさん
垢版 |
2017/06/30(金) 22:34:49.42ID:k0YageAz
1乙です

前スレ>>993です
レスくれた方々ありがとうございます
勉強会行ってきたいと思います
2017/06/30(金) 22:36:43.35ID:W0OUnv8/
ぬるぽ
2017/06/30(金) 22:38:18.96ID:f3bJ3XCJ
>>3
おう、がんばってね〜
2017/06/30(金) 23:28:02.19ID:zWHlEWrp
一乙です

クラスのインスタンスを作るのに

ClassA class = new ClassA();
こうやると思うんですが


new ClassA();
このようにイコールより左側がないものはどう言う意味があるのでしょうか?
2017/06/30(金) 23:31:30.37ID:W0OUnv8/
>>6
インスタンスを作るだけ作って変数に固定せずに虚空送りしてる、インスタンスの生成自体に意味があるとかじゃなかったらそのままGC送りやな
2017/06/30(金) 23:44:06.33ID:zWHlEWrp
>>7
そういう意味があるんですね

プログラムのサンプルとかそういうので使われるのですかね

ありがとうございます
2017/06/30(金) 23:55:42.12ID:W0OUnv8/
あんまりよくはないんだけど
new Thread(runnable).start();とかよくやる
2017/07/01(土) 00:09:29.12ID:mdEe7tMk
スレッドですか
まだその域まで達してないのであんまり分からないですがありがとうございました
2017/07/01(土) 03:56:44.50ID:kUHEe2gf
java関連のスレはほんと回答適当すぎて笑える
相談スレの方も馬鹿しかいないし落としてもう立てない方が逆に初心者のためになるな
2017/07/01(土) 04:59:05.43ID:jPgMAsSe
サブクラスのコンストラクターにvoidを記述するとsuper();が暗黙的に付加されないみたいなんですけど
これはどういう仕組みなんですか?
2017/07/01(土) 05:08:57.26ID:jPgMAsSe
すみません自己解決しました
2017/07/01(土) 07:04:09.94ID:N+ZXroXE
>>12
voidなどの型修飾子をつけるとコンストラクタではなくメソッドになるから
なのでデフォルトコンストラクタが呼び出されるのでその時にsuper()が内部的に
呼び出されます
2017/07/01(土) 10:17:47.36ID:bYmbgrjm
  彡⌒ミ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>4
 (_フ彡        /
2017/07/01(土) 11:17:45.15ID:WO7UFR41
抽象クラスに総称型を使って各々のサブクラスで型(Bean)を決めるってのは
総称型の役割からするとかなりマヌケなのかな

エラー情報を貯めておくためのリストのラッパーを作ったけど複数のBeanに対応できるよう多態性を持たせたい
でもエラー情報を持ってきたときにどうやってメンバにアクセスするのだろうと考えたとき
堂々巡りになって色々モニョってる……
2017/07/01(土) 13:24:42.71ID:jPgMAsSe
>>14
分かりやすくありがとうございます
2017/07/01(土) 13:51:03.87ID:Ke61Tipi
いまabstractクラスを使って警告がでているんですが
abstractなくせば警告も消えるのは確認しました
こういう事したい場合はどうすればいいでしょうか?

abstract class A{}
class B extends A{}
class C extends A{}
class D{function(A a)}<------------------------警告
class E{D.function(B);D.function(C)}<---こういう感じで使いたい
19デフォルトの名無しさん
垢版 |
2017/07/01(土) 18:28:47.32ID:JnV2l3hP
>>18
できるよ。
https://paiza.io/projects/PXpUGM1lQOWByECT1SIaxA
出ている警告ってなに?
20デフォルトの名無しさん
垢版 |
2017/07/01(土) 20:03:20.47ID:lLi0bV67
2回目のmenu()の中でNoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
なぜですか?
public class Menu {
public static void main(String[] args) {
while(menu()) {
;
}
}

static boolean menu() {
System.out.print("[メニュー] 1:検索 2:登録 3:削除 4:変更>");
java.util.Scanner sc = new java.util.Scanner(System.in);
int selected = sc.nextInt();
boolean repeat = true;
switch(selected) {
case 1:
System.out.println("検索します");
break;
default:
repeat = false;
break;
}
sc.close();

return repeat;
}
}
21デフォルトの名無しさん
垢版 |
2017/07/01(土) 20:17:15.29ID:n4lkpTxn
javaに限ったことじゃないかもしれんが
for文で同じ処理回して一回ごとの時間測ったら、
20回目くらいまでで10ms〜2.0msの範囲で処理時間がバラバラなのはなぜでしょう?
それ以降は1.5msくらいで安定します
2017/07/01(土) 20:23:24.51ID:N+ZXroXE
>>21
OSが一生懸命他のプロセスとこんてきすとすいっちんぐぅしてるからでしょ
2017/07/01(土) 20:23:55.79ID:/jfxBAab
>>21
JIT走ってるからだと思う
2420
垢版 |
2017/07/01(土) 21:08:56.37ID:lLi0bV67
何度もすみません。
こっちも同じ例外で落ちます。
なぜでしょうか?
public class GuessNumber {
____public static void main(String[] args) {
________System.out.println("【数あてゲーム】");
________java.util.Random rnd = new java.util.Random();
________int ans = rnd.nextInt(10);
________for(int i = 0; i < 5; i++) {
____________System.out.print("0〜9の数字を入力してください");
____________java.util.Scanner sc = new java.util.Scanner(System.in);
____________int num = sc.nextInt();
____________if(num == ans) {
________________System.out.println("アタリ!");
________________break;
____________} else {
________________System.out.println("違います。");
____________}
____________sc.close();
________}
________System.out.println("ゲームを終了します");
____}
}
2520
垢版 |
2017/07/01(土) 21:10:26.90ID:lLi0bV67
Java初日の初心者です。
2017/07/01(土) 21:23:33.49ID:alsfhIt3
>>24
ループ内でScanner閉じちゃってるからじゃないかな
2017/07/01(土) 21:28:39.22ID:lLi0bV67
>>26
ありがとうございます。確かにsc.close()をコメントアウトすると落ちません。
C++のnewとdeleteと同じようなものではないのですね。
難しいです・・・
2017/07/01(土) 21:41:21.41ID:alsfhIt3
>>27
JavaではGCが勝手にメモリの整理してるから消さなくてもメモリは圧迫しない、けど入出力ストリームは勝手に閉じたりしないから使わなくなったら閉じないといけない
もし閉じるとしたらループの外やな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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