学びの友からJavaの問題出してもらったよ☆
図などを書いて考えてみました〜♪
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
1、Sample.java
ーーーーーーーーーー
public class Sample {
public static void main(String[] args) {
List list = new List();
list.add("A");
list.add("B");
list.add("C");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
=======================
2. List.java
ーーーーーーーーー
public class List {
private String value;
private int index;
private List next;
public List() {
this.value = null;
this.index = 0;
this.next = null;
}
private List(int index) {
this();
this.index = index;
}
public void add(String value) {
if (this.value == null) {
this.value = value;
return;
}
if (this.next == null) {
this.next = new List(this.index + 1);
}
this.next.add(value);
}
public String get(int index) {
if (this.index == index) {
return this.value;
}
if (this.next == null) {
return null;
}
return this.next.get(index);
}
public int size() {
if (this.next == null) {
return this.index + 1;
}
return this.next.size();
}
}
*認識が合ってるとは限りません。あしからず。
リストに文字をaddしていくとnextに新しいリストがnewされて
そのインスタンスへの参照が入る。
addするたびに参照が次のインスタンスに、次のインスタンスに、、とつながっていくのですね。
『list』はあくまでvalueに“A”が入っているオブジェクト(への参照)ということかな。
【JavaSilver黒本】
徹底攻略Java SE 8 Silver「1Z0-808」対応問題集 試験番号1Z0-808 [ 志賀澄人 ] 価格:3,520円 |
****************
ランキングに参加しています*応援いただけるとうれしいです