2014-12-08 3 views
1

Я должен использовать переменную для x и y. Я должен настроить метод для получения x, y. Я должен использовать метод для установки x и y. Я должен использовать метод отображения для отображения точек x и y. Затем используйте конструктор, который принимает вход пользователя и устанавливает их в x и y. Наконец, создайте основной класс, который создает 2 экземпляра x и y. Я думаю, что моя проблема связана с моим методом отображения. Моя программа компилирует/строит без ошибок; однако ничто не отображает или не запрашивает пользователя для ввода. Возможно, мне нужно вызвать мой конструктор в первом классе, прежде чем пытаться вызвать первый класс в основном методе?Как использовать метод отображения и конструктор вызовов?

Первый файл:

public class Point2D extends JFrame 
{ 
    Scanner input = new Scanner(System.in); 
    private String x; 
    private String y; 


    public String getX() 
    { 
     return x; 

    } 
    public String getY() 
    { 
     return y; 

    } 

    public void setValue(String whatIsX, String whatIsY) 
    { 
     x = whatIsX; 
     y = whatIsY; 

    } 

    public void display() 
    { 
     System.out.println(x); 
     System.out.println(y); 
    } 

    public void Point2D() 
    { 
     System.out.println("Please enter value for X >>"); 
     input.nextLine(); 
     x = input.nextLine(); 
     System.out.println("Please enter value for Y >>"); 
     input.nextLine(); 
     y = input.nextLine(); 
    } 

} 

второй файл:

public class MainPoint2D 
{ 
    public static void main(String[] args) 
    { 
     Point2D a = new Point2D(); 
     Point2D b = new Point2D(); 
    } 
} 
+0

Потому что вы никогда не называют 'display' метод, очевидно. –

ответ

1

Удалить void из ваших "конструктора":

public Point2D() 
{ 
    System.out.println("Please enter value for X >>"); 
    input.nextLine(); 
    x = input.nextLine(); 
    System.out.println("Please enter value for Y >>"); 
    input.nextLine(); 
    y = input.nextLine(); 
} 

Конструкторы не имеют типов возврата, а компилятор рассматривает это как метод класса.

Кроме того, не забывайте вызывать любые методы, которые вы хотите выполнить после создания объекта:

Point2D a = new Point2D(); 
    Point2D b = new Point2D(); 
    a.display(); 
    b.display(); 
1

Удалите пустоты в общественной ничтожной Point2D()

1

public void Point2D() определяет метод, названный «Point2D» с типом void возврата, а не конструктор. Конструкторы не имеют никакого типа возврата, даже не void. Измените это на public Point2D().

В настоящее время ваш метод main вызывает конструктор по умолчанию Point2D, который не определен, поэтому компилятор предоставляет пустой для вас.

0

Я thik вы хотите изменить этот

public void Point2D() 
    { 
     System.out.println("Please enter value for X >>"); 
     input.nextLine(); 
     x = input.nextLine(); 
     System.out.println("Please enter value for Y >>"); 
     input.nextLine(); 
     y = input.nextLine(); 
    } 

к этому

public Point2D() 
    { 
     System.out.println("Please enter value for X >>"); 
     input.nextLine(); 
     x = input.nextLine(); 
     System.out.println("Please enter value for Y >>"); 
     input.nextLine(); 
     y = input.nextLine(); 
    } 
Смежные вопросы