Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

メンバ変数について

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DirectoryNode {
     public final DirectoryNode parent;
    -----------
}
DirectoryNode型のparentとはどういうものなのでしょうか?
これまでは、
  public final 変数の型 parent
なら参考書で理解しているつもりですが、クラス型の変数でしょうか。
 final がつくと継承できないクラス?
難しくて困っています。

4

回答

35545

閲覧

4件の回答

評価

0

エクスプローラでPCを見てみると、ディレクトリ(Directory)のアイコン(≒ノード、Node)が階層構造を成しているのが解るだろう。
parentという英単語の意味を知っているなら、それで何となくイメージできないだろうか?

DirectoryNodeを、たとえばHumanと置き換えてみたらどうだろう?

finalについては、このサイトのページでいけば、以下で解説されている。
どこに書くかで、何がfinalなのかが変わる。
http://www.javaroad.jp/java_class12.htm
一通り読んで、「ここの文が解らない」のような質問をしてみよう。

評価

0

finalについて、読んでみました。
参照情報を変更できないということですね。
なぜそうするのかがわかりませんでした。

DirectoryNodeというクラスの中でDirectoryNode型の変数を
定義するのも初めてのことで、こんなことができるのですね。
私の読んだ参考書、「スッキリわかるJava」には書いてなかったような。
現在、基本情報技術者試験のJavaの過去問題をやりはじめましたが、
とても難しいと感じています。

評価

0

Javaのような言語には、「作ったクラスを他の人が利用できる」というメリットがある。
Stringにしてからが、他の人が作ったクラスだ。
今は練習問題であっぷあっぷしているが、今後は自分が作ったクラスを他の人が利用することも、あるかも知れない。
そういう場合を考えてみよう。

ある人が、質問者の書いたクラス内のある値を勝手に変更する。
質問者が期待したように動かなくなるかも知れない。
「この値は変更不可」と表明するために、finalを付けるということだ。

厳密にはこれと異なるケースのfinalもあるが、勉強を続けていけばそのうち出てくるだろう。

評価

0

回答をしていただいてありがとうございました。
私が読んでいる本にも同じことが書いてありました。
自分が作ったクラスをほかの人が利用するなんて今は想像すらできませんが。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。