2016-12-01 66 views
-1

我的教授给我们这些指令:如何使用类的对象作为实例变量?

该类应该有两个实例变量:一个整数radiusPoint2D对象center说是圆的中心。提供以下功能:用于初始化实例变量的两个参数构造函数,顺序半径和中心。

我需要帮助制作center实例变量。这是我有:

public class Circle 
{ 
//instance variables 
    private int radius; 
    Point2D center = new Point2D(2,3); 

//constructor 
    public Circle(int radius, int center) 
    { 
    this.radius = radius; 
    this.center = center; 
    } 
} 

我不知道如何使用它作为一个实例变量,我不知道如何在类的构造方法初始化。

+2

你已经拥有了。 –

+0

如果我理解你的问题是正确的,那么你在做什么是正确的Point2D center = new Point2D(2,3);是一个实例变量,您将构造函数的参数赋值给'center'实例变量。我认为你对java变量类型的术语感到困惑。有四种变量类型(ref:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html) – user2880879

+0

它没有编译。给我一个错误,说:“不兼容的类型:Int不能转换成Point2D –

回答

1

我认为你可以在你的构造器的第二个参数从int更改为Point2D对象是这样的:

public class Circle 
{ 
    //instance variables 
    private int radius; 

    // Remove the initialization from here and move it inside constructor 
    Point2D center; 

    //constructor 
    // Here you change the second parameter from "int center" to "Point2D center" 
    public Circle(int radius, Point2D center) 
    { 
     this.radius = radius; 
     this.center = center; 
    } 
} 

这样,要初始化构造函数中的实例变量,并使其更容易测试和东西因为你的班级不依赖于Point2D类。

+0

是的!!谢谢!! –

+0

@KoulaeMoua请仔细阅读本文http://stackoverflow.com/help/someone-answers并遵循它给出的建议 –

0

中心被正确定义为一个实例变量。然而,由于您在构造函数中要求中心,因此在声明它时不需要将其分配给任何内容。你的代码中唯一的错误是错误地说中心应该是int类型而不是Point2D的构造函数。

我不会给你在代码中的完整答案,因为它显然是一个学校作业,我已经说过的应该可以帮助你很多。祝你好运

+1

为了迟到 – Hampus

相关问题