ここから本文です

プログラミング初心者です。この文の意味を教えてください。

アバター

ID非公開さん

2020/7/713:00:03

プログラミング初心者です。この文の意味を教えてください。

System.out.println(a.value +"");
このa.valueが何を表してるのか分かりません…
その前の文には
class cell{
int value;

と書かれています。

a.value,class cell,int value,プログラミング初心者,文

閲覧数:
113
回答数:
1

違反報告

回答

1〜1件/1件中

空岸 綴さん

2020/7/1009:48:08

Javaですよね。インデント(字下げ)が雑なせいですごく読みにくいコードですが……。

これを理解するためには構造体とかその派生の「クラス」(オブジェクト指向)を理解しなければなりません。ここではクラスについてのみ解説します。ただし理解しやすいようぼやかしてますので理解が進んだらちゃんとしたもので学び直してください。


まず、コードの先頭で「class」から始まっている「Cell」などのひとかたまりが「クラス」です。「型」とも呼ばれます。
これは、いれものの設計図です。そのいれものがどんなものをいくつどのように入れられるのかを定義します。

設計図ですから、それをもとに作った実物があります。この実物を「インスタンス」と呼びます。コードの途中で「Cell a;」のように書かれていますが、この「a」が「Cell」のインスタンスです。
これは、変数のいれものです。しかし、内側にさらに変数を持つなど多少の違いはありますが、基本的にはintやdoubleなどの変数と同じようなものです。

class Cellの場合だと、
int value; Cell prior, next;
と書かれていますが、これはCellというクラスのインスタンスにはvalueという名前のint(整数)1つと、priorとnextという名前のCellのインスタンス2つが入る、ということです。

下のvoid printメソッド定義に進みますと、先頭でCell a;と書かれています。ここから、aはCellのインスタンスです。aの中にはvalueとpriorとnextの値が入ります。
ここで、この内側の値を取り出したい用事があります。この場合に使われるのが「.」です。クラスのインスタンス(a)に対して「.」と続けて、その後ろにさらにclass Cellで定義されているvalue, prior, nextのいずれかを続けると、「aの中のそれらを取り出す」という操作になります。

つまり、「a.value」というのは「aの中のvalue」(int)という意味です。


これは完全に余談ですが、Javaには強力な「暗黙の型変換」があります。これは式の形からその式の結果が整数や文字列などのどれになるか自動で推測するというものです。
「a.value + ""」という式はこれを使ったものです。a.valueは整数ですが、式のどこかに文字列が含まれるとたいてい文字列として推測されます。そして「""」は中身のない空の文字列なのでa.valueの数値を文字列に変えるだけの式です。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる