2017-09-10 4 views
-3

この単純なJava文の意味を理解しているかどうかを知りたいだけです。私は唯一の人ではない。私はこの質問をGoogleで探そうとしており、多くの人が尋ねてきましたが、誰もが同じ回答をしたり、公式文書から逆流した情報を与えたりします。私たちはそれを使う方法を知っています。我々はそれがどのように機能するか知りたい。なぜ。Javaスキャナクラスを使用してユーザー入力を受け取ったときに実際に何が起こっているのかを正確に説明してください。

スキャナクラスの使い方を知っています(これを尋ねたこともあります)。私はユーザーの入力を受け入れ、その入力を変数に格納する方法を知っています。しかし、私はそれがなぜ機能し、どのように機能するのかを私が理解していることを確かに知るまでは、私はそれ以上は行ってはいけないと感じています。この言語の巨大な部分であるインスタンシエーション、クラス、オブジェクトなどが含まれています。それは言語です。

私がしたいことは、私が個人的にコード内で何が起こっていると思いますか、それが正確かどうかをあなたに教えてください。さて、ここで行きます。

ここで何が起こっているか

私たちはキーボードからユーザー入力を受け取りたいので、これを達成するためにスキャナクラスを使用することにしました。

1.)まず、変数を宣言します。宣言にはキーボードという名前が付けられています。(ここでは変数の型は何ですか?変数キーボード「型スキャナ」となっていますか?スキャナ等、オブジェクト、クラス、それは確かに原始的ではありません。)

2)今Javaキーワードと演算子を使用**新しいを使用して、スキャナに基づいてオブジェクトをインスタンス化(作成)します。私たちは、今、私たちが以前に宣言キーボード変数へのこのオブジェクトを割り当てる。**

3)私たちは、この場合には、キーボードでデータソースとしてSystem.inを渡し

4)は、今、私たちは私たちがユーザ入力という名前の新しい変数を宣言するように、キーボードからのユーザーの入力を受信したいです。新しくインスタンス化されたキーボードオブジェクトのnext()メソッドを呼び出し、これを値として新しい変数userInputに割り当てます(これはコンストラクタへの呼び出しですか、どの部分がコンストラクタへの呼び出しですか)。

Iここでいくつかの異なる質問をしてきましたが、これがすべての地獄に落ちたとしても、少なくともいくつかの答えで私を助けてください。私は非常に感謝します。あなたは何もわかってない。皆さん、ありがとうございました。

+0

、それは[こちら]答えている(https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html)どの部分あなたは不明で見つけるのですか? – markspace

+0

'keyboard.next()'はコンストラクタ呼び出しではありません。それはメソッド呼び出しです。 "keyboard"という名前の 'Scanner'オブジェクトが構築されたときに指定された入力ファイルを使用して、入力を探します。この入力ファイルへの参照、または入力ファイルに関する情報は 'Scanner'オブジェクトに格納されます。 'next'はその入力ファイルを使用して入力を探し、それを返します。 – ajb

+0

ええ、私はそれを使ってそのページスラッシュを読んでいました。基本的に。私はキーボードを宣言するとき、どのような変数の型ですか?新しいスキャナ(system.in)でインスタンス化されると、キーボードはオブジェクトになりましたか?そして、これのどの部分が具体的にコンストラクタメソッドですか?ありがとう – DeveloperDan

答えて

0

コメントを見てください。うまくいけば、彼らは十分に明確です。ただ、最初の質問について

// declare a variable of type `Scanner` 
Scanner keyboard; 

// call constructor of class `Scanner` and pass `Systen.in` as a parameter to create a new instance 
// and assign its reference to `keyboard` 
keyboard = new Scanner(System.in); 

// declare a variable of type `String` and 
// assign to it the return value of `next()` method called on `keyboard` object 
String userInput = keyboard.next(); 
+0

答えに感謝します。さて、 "スキャナのキーボード;"最初にScanner型と宣言されます。最初の部分に答えました。 Ty。あなたは私が持っていた他のいくつかの質問にも答えました。私があいまいな部分はこれです。 「新しいインスタンスを作成する」ということは、Scannerクラスの新しいインスタンスを作成することを意味します。オブジェクトを作成しましたか?オブジェクトはクラスのインスタンスですか?これでキーボード変数がオブジェクトになりましたか?これまでの回答に感謝します。 – DeveloperDan

+0

はい、クラスのインスタンスはオブジェクトです。 –

+0

'keyboard'はクラス/型' Scanner'のオブジェクトへの参照です。 –

関連する問題