ソースコードを追いかけて

一見複雑怪奇。 でも、ていねいにコードを追っていくと「みえて」きた! ただいまプログラミング学び中。 勉強になったことなどをメモとしてまとめています。 Java、HTML、CSS、JavaScript、、など。 他、IT系でなるほど〜って思ったことなども。

Javaの問題 参照について考えを深める【Java】

学びの友から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円
(2021/4/13 10:15時点)
感想(5件)

****************

 ランキングに参加しています*応援いただけるとうれしいです

ブログランキング・にほんブログ村へにほんブログ村