2014-05-04 32 views
-1

問候Gentelmens; 所以我有一個對象MilkBottle,我想給它使用java掃描儀的輸入。我的錯誤在哪裏?JAVA掃描儀//爲什麼我的對象無法獲得輸入?

import java.util.Scanner; 

public class MyClassBottle{ 

String material; 
String volume; 

public static void main(String[] args){ 
Scanner input = new Scanner(System.in); 
MyClassBottle MilkBottle = new MyClassBottle(); 
System.out.println("Enter bottle material: "); 
Scanner one = MilkBottle.material, next(); 
System.out.println("Enter bottle volume: "); 
Scanner two = MilkBottle.volume, next(); 

System.out.println(MilkBottle.material); 
System.out.println(MilkBottle.volume); 

} 
} 

我仍然是一個小菜館,所以不要爲我的代碼責怪太多!

P.s.先謝謝你 !

+2

這是什麼'掃描器一個= MilkBottle.material,下一個();' – Braj

+0

你應該只創建一個'Scanner'實例,並使用它的'next'方法得到輸入。 – SJuan76

回答

3

這不是有效的Java。您需要使用分配來分配返回值掃描儀的

MyClassBottle MilkBottle = new MyClassBottle(); 
System.out.println("Enter bottle material: "); 
MilkBottle.material = input.next(); 
System.out.println("Enter bottle volume: "); 
MilkBottle.volume = input.next(); 

話雖這麼說,這個網站的目的是使提問者一個更好的程序員,所以我會指出其他可以改進的東西:

  • 命名約定:類名是大寫,變量名不是。 MyClassBottle MilkBottle = new MyClassBottle();應該是MyClassBottle milkBottle = new MyClassBottle();,並且對MilkBottle的所有訪問都應該獲得小寫名稱。
  • 類型:由於String,您的瓶子的體積可能是「1.2」,「100000000000000」,「15L」或「綠色雞蛋和火腿」。您應該使用更有用的類型,例如整數爲int或小數值爲double,並且在掃描儀上使用nextInt()nextDouble()
  • Constructors可用於更乾淨地創建MyClassBottle的實例。閱讀掃描儀輸入到局部變量,然後傳遞給構造函數,