2014-12-13 4 views
0

так что мой вопрос очень короткий, у меня есть конструктор java и класс java, который должен использовать конструктор для построения объекта. Мне нужно спросить у пользователя аргументы, которые требуется для создания объекта. Обычно я помещаю требуемый сканер (чтобы вводить аргументы пользователя) в правильные методы конструктора или я спрашиваю их непосредственно в методах класса, которые используют конструктор? Например, имея construc.java (который является конструктор) и содержит такие методы, как: ¸Где поставить методы сканера конкретно (Java)

public void setNumber(int JNumber){ 
    if(JNumber>=0){ 
    Number = JNumber; 

и файл под названием caller.java то будет содержать такие методы, как:

public void add(); 
construc test = new construc(string,int,int,string,string); //instance to use the constructor methods 

Так в основном им интересно, где поставить этот код часть, попросить числа присвоить объект:

Scanner thenum = new Scanner(System.in); 
    System.out.print("Entrez la quantité: \n"); 
    int ob1num = thenum.nextInt(); 
    ob1num = JNumber; 
    setNumber(JNumber); 

Я немного запутать в Java (и начинающих) Вы!

+0

Обычно вы должны задать для значений в класса, а не конструктор. Конструктор предназначен для инициализации объекта. – Avi

+0

Как правило, инициализировать пустую переменную и после заполнения переменной пользователем? –

+0

Возможно, я заторможен, но я не понимаю, что вы имеете в виду. «Читать и напрямую передавать конструкцию со значениями». Не могли бы вы показать, что с помощью моего кода? thanks¸ –

ответ

0

Это зависит от того, как вы хотите использовать метод setNumber(). Если вы также хотите использовать его для установки номеров, которые не основаны на вводе пользователей, рекомендуется указать Scanner вне метода. Лично у меня был бы Scanner вне метода, который сделает метод более универсальным. Если вам нужно сканировать несколько номеров, возможно, поместите часть сканирования в свой собственный метод, который возвращает int на основе ввода пользователей.

class YourClass { 
    YourClass() { 
     //Initialize 
     setNumber(); 
    } 
} 

public static main(String[] args) { 
    //Create new YourClass object and set value from user input 
    YourClass object = new YourClass(); 
} 
+0

Номера всегда будут основываться на вводе пользователей, и будет только 1 номер. –

+0

В этом случае я бы пошел с методом 'setNumber()', который запрашивает номер у пользователя, а затем устанавливает его за один раз. – Marv

+0

так ... setNumber() на самом деле находится в классе конструктора. Так что я помещаю ввод в конструктор? –

0

С методами получения и установками, имеющимися в MyClass.Your основных методов класса может считывать значения

Scanner thenum = new Scanner(System.in); 
System.out.print("Entrez la quantité: \n"); 
int ob1num = thenum.nextInt(); 

И передать значение в конструктор

MyClass(int JNumber,String JString){ 
    this.JNumber = JNumber; 
    this.JString = JString; 
} 
+0

MyClass представляет класс «вызов/использование» конструктора или метода в самом конструкторе? (В этом случае метод конструктора установленNumber) –

Смежные вопросы