X



Java入門・初心者質問スレ Part.8

■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:44:53.28ID:1PlqYTvda
ここが待望のワッチョイスレか
0005デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:46:28.22ID:1PlqYTvda
おお。IPアドレスも表示。

俺は今はスマホだから多分繋ぐたびに変わるけどな。
0010デフォルトの名無しさん (ササクッテロラ Sp7f-Fjtv [126.152.199.60])
垢版 |
2018/06/08(金) 22:42:03.47ID:OMx/tZhjp
いいですね
0011デフォルトの名無しさん (ワッチョイ 8ee9-iS62 [119.229.116.149])
垢版 |
2018/06/08(金) 23:56:54.65ID:BdQZoOwp0
http://copiezzare.info/
0012デフォルトの名無しさん (ワッチョイ 0fb8-X4KX [180.12.241.93])
垢版 |
2018/06/12(火) 01:12:20.17ID:huTBZyg/0
分かる方説明お願いします。。。
<問>以下の実行結果になるように選択しから選びなさい。
【実行結果】
A
B

public class SuperClass{
public SuperClass(){
System.out.println("A");
}
public SuperClass(String val){
System.out.println(String val);
}}
public class SubClass extends SuperClass{
public SubClass(){
//ここにコードを追加
}
public SubClass(String val){
System.out.println(String val);
} }
public class Main(){
public static void main(String[] args){
new SubClass();
}}
A: SubClass("B");
B: this("B");
C: super("B");
D: SuperClass("B")
正解:B
ここで疑問なのですが、this("B")は自クラスだけのコンストラクトしか呼び出せない認識です。
親クラスのコンストラクタはどこで呼んでいるのでしょうか。
0014デフォルトの名無しさん (ワッチョイ 4eb6-qo/L [111.90.12.245])
垢版 |
2018/06/12(火) 06:11:33.73ID:AQnxwR2X0
>>12
https://docs.oracle.com/javase/specs/jls/se10/html/jls-8.html#jls-8.8.7

If a constructor body does not begin with an explicit constructor invocation and
the constructor being declared is not part of the primordial class Object,
then the constructor body implicitly begins with a superclass constructor
invocation "super();", an invocation of the constructor of its direct superclass
that takes no arguments.

コンストラクタの呼び出しが明示されてなければ
super()が暗黙的に呼ばれますよと

public SubClass(String val) {
  // ここでsuper()が呼ばれる
  System.out.println(val);
}

Javaの資格試験の勉強してるなら紫本とか黒本とか
読んだ方がいんじゃないかな
毎回言語仕様調べるの大変でしょ

コンストラクタについても丁寧に解説されてるよ
0015デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/18(月) 07:10:35.79ID:k3fj9Dk90
インスタンスなのか変数なのか教えてください

Soket so=new Soket("so.jp",80);
InputStream is=so,getInputStream();
int i=is.read();

isはgetInputStream()メソッドのストリュームを受ける変数ですか?
それともNewはしてないけれど、インスタンスなのでしょうか?
isは2行目では変数に思えますし、3行目はインスタンスに思えますし、どっちなのでしょうか?
0016デフォルトの名無しさん (ワッチョイ 4bb6-F5p6 [220.208.85.34])
垢版 |
2018/06/18(月) 07:25:27.94ID:e7+TZKMW0
>isはgetInputStream()メソッドのストリュームを受ける変数ですか?
isはInputStream型の変数です

>それともNewはしてないけれど、インスタンスなのでしょうか?
InputStreamのインスタンスはisにセットされてます

isは変数です
0017デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/18(月) 07:36:49.66ID:k3fj9Dk90
>>16
さっそくありがとうございます。
InputStream isでインプット型の変数になって
ここでInputStreamのインスタンスがセットされて、
is.read()と記載してinputstreamクラスのread()メソッドが使えるということなのですね
ありがとうございました!
0019デフォルトの名無しさん (ワッチョイ 1fab-Bw3Y [115.65.220.64])
垢版 |
2018/06/18(月) 09:44:07.35ID:p1/T0zQW0
すみません、疑問が深まってしまいました

1 Soket so=new Soket("so.jp",80);
2 InputStream is=so.getInputStream();
3 int i=is.read();

1で、スタック領域に、インスタンスsoを表すヒープ領域の参照アドレスを格納し
2で、InputStream型の変数isに割り当てられたヒープ領域に、インスタンスsoのgetInputStream()メソッドの結果であるストリュームを格納し
3で、変数iのヒープ領域に、read()メソッドの結果を格納する(どうして変数isがread()を呼びさせるのか疑問でした)
と考えていたのですが

[InputStream is」の記載で、InputStreamのインスタンス変数isを生成したということでしょうか?
newしなくてもインスタンスを生成してインスタンス変数に格納できるのでしょうか?
0020デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.37])
垢版 |
2018/06/18(月) 14:51:42.26ID:m8q+CXCOa
>>19
呼び出した先のどこかでnewしてる所があって、それが返されてるだけ。

それとstreamはストリームと読むのが元の発音に近いと思う。
■ このスレッドは過去ログ倉庫に格納されています

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