2015-11-04 3 views
0

Я прочитал некоторые другие вопросы, но все еще не мог понять, как заставить меня работать, любая помощь приветствуется. Код, который я имею до сих пор, приведен ниже. Я хочу, чтобы иметь возможность вызвать newPointParameters для создания нового класса.Вызов конструктора из класса в основном методе?

public class Lab4ex1 { 
public static void main(String[] args) { 
    System.out.println("" + 100); 

    new newPointParameter(42,24); 
} 
class Point { 
    private double x = 1; 
    private double y = 1; 

    public double getx() { 
     return x; 
    } 
    public double gety() { 
     return y; 
    } 
    public void changePoint(double newx, double newy) { 
     x = newx; 
     y = newy; 
    } 
    public void newPointParameters(double x1, double y1) { 
     this.x = x1; 
     this.y = y1; 
    } 
    public void newPoint() { 
     this.x = 10; 
     this.y = 10; 
    } 
    public double distanceFrom(double x2, double y2) { 
     double x3 = x2 - this.x; 
     double y3 = y2 - this.y; 
     double sqaureadd = (y3 * y3) + (x3 * x3); 
     double distance = Math.sqrt(sqaureadd); 
     return distance; 
    } 
} 

}

+0

подробнее о "конструктор" в терминах JAVA классы, вы сможете это выяснить. На данный момент вы можете изменить имена методов 'newPointParameters' и' newPoint' на 'Point'. Удалите 'void' из сигнатуры метода и добавьте' Point p = new Point (42, 24) 'в' main' метод –

ответ

1

таким образом, в настоящее время, ни newPointParameters, ни newPoint являются конструкторами. Скорее, это просто методы. Для того, чтобы превратить их в конструкторы, они должны один и то же имя, что и класс конструкта

class Point { 

    private double x = 1; 
    private double y = 1; 

    public Point() { 
    this.x = 10; 
    this.y = 10; 
    } 

    public Point(double x, double y) { 
    this.x = x; 
    this.y = y; 
    } 

Затем, когда вы хотите создать новую точку, вы просто сделать следующее

Для точки

по умолчанию
public class Lab4ex1 { 

    public static void main(String[] args) { 
    System.out.println("" + 100); 

    //this will create a new Point object, and call the Point() constructor 
    Point point = new Point(); 
} 

Для точки с параметрами

public class Lab4ex1 { 

    public static void main(String[] args) { 
    System.out.println("" + 100); 

    //this will create a new Point object, and call the 
    //Point(double x, double y) constructor 
    Point point = new Point(10.0, 10.0); 
} 
1

Это должно быть

public static void main(String[] args) { 
    System.out.println("" + 100); 
    Point p = new Point(); 
    p.newPointParameter(42,24); 
} 
0

newPointParameters не является конструктором. Я думаю, что это то, что вы хотите сделать:

public Point(double x1, double y1) { 
    x = x1; 
    y = y1; 
} 

Тогда вы можете создать Point объект в главном классе с помощью этого конструктора:

Point p = new Point(42, 24); 

Похоже, что вы также предназначены для newPoint() быть конструктор, поэтому он должен выглядеть следующим образом:

public Point() { 
    x = 10; 
    y = 10; 
} 
Смежные вопросы