質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1608閲覧

javaに関する基本的な質問

Gatmaster

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2016/07/07 04:12

※かなり基本的な質問になります<(_ _)>

import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); System.out.println(line); } }

javaのストリームに関する理解度がとても低いため困っています。
上記のソースコードを例に私の解釈を記述するので、間違いがあれば指摘・修正してくださると嬉しいです。


System.in

inはSystemクラスにあるInputStream型のインスタンス変数である
inには標準入力が入る(バイト単位のストリーム)


new InputStreamReader(System.in)

”バイト単位のストリーム”を”文字単位のストリーム”にしてインスタンス化


BufferedReader br = new BufferedReader(new InputStreamReader(System.in))

”文字単位のストリーム”をバッファリングすることで扱いやすくする
バッファリング←書き込む側の速さと読み込む側の速さの誤差を考慮するため一時的に別の場所に記憶しておく処理のことだと思ってます


br.readLine()

バッファリングされた文字単位のストリームを行単位で読み込むメソッド

satoshiiiiii👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

×inはSystemクラスにあるInputStream型のインスタンス変数である
○inはSystemクラスにあるInputStream型のstatic変数である

インスタンス変数とは、クラスインスタンスが持つメンバ変数のことを指し、static変数はクラス自体が持つ変数のことを指します。

Java

1// クラス定義 2class A { 3 public static String staticVariable = "static変数"; 4 public String instanceVariable = "インスタンス変数、メンバ変数"; 5} 6 7System.out.println(A.staticVariable); 8System.out.println(new A().instanceValiable);

インスタンス変数は、クラスのインスタンスを介してしかアクセスできません。

それ以外は正しい認識だと思います。

投稿2016/07/07 04:46

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gatmaster

2016/07/07 04:55

回答ありがとうございます! その具体例のコードわかりやすすぎます インスタンス変数とstatic変数に関する理解が深まりました! matobaaさんにも同じコメントをしていますが、 staticなクラス型変数inに標準入力というインスタンス(オブジェクト)を入れるという解釈でOK・・・でしょうか
masaya_ohashi

2016/07/07 04:59

その通りです。ちなみにSystem.inはfinalという修飾子も付いているのであとから書き換えることが出来ないstatic変数となっています。 System.in = new FileInputStream(new File("test.txt")); // × こういうことはできない
Gatmaster

2016/07/07 05:04

ありがとうございますm(__)m m(__)m m(__)m 謎も解けましたし、理解も深まりました!!
guest

0

すばらしい。あってます。

あ。惜しい。System.in は static 付きなので、インスタンス変数ではなくクラス変数。

投稿2016/07/07 04:35

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gatmaster

2016/07/07 04:47

回答ありがとうございます! System.in(クラス型(InputStream型)変数であるとともに、Systemクラスに属するstaticな変数)に標準入力というインスタンスが入るって解釈・・・ですかね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問