Java-在BlueJ中创建方法

Java-在BlueJ中创建方法,java,bluej,Java,Bluej,我对以下练习有问题(我使用的是BlueJ): 他们让我在班级房间中使用以下方法,而不改变班级圆圈 名称:getPositionsTwoSuns 返回值:下面描述的字符串 字符串说明:从图片中每个太阳的aXPosition和aYPosition坐标返回形式为“x=12,y=7”的字符串 要分开两个太阳的位置,我们可以使用“|”作为例子 这是一份班级宿舍的复印件: public class House { private Square aWall; private Square aW

我对以下练习有问题(我使用的是BlueJ): 他们让我在班级
房间
中使用以下方法,而不改变班级
圆圈

  • 名称:getPositionsTwoSuns
  • 返回值:下面描述的字符串
    字符串说明:从图片中每个太阳的aXPosition和aYPosition坐标返回形式为“x=12,y=7”的字符串
    要分开两个太阳的位置,我们可以使用“|”作为例子
这是一份班级宿舍的复印件:

public class House
{
private Square    aWall;
private Square    aWindow;
private Triangle aRoof ;
private Circle   aSun;
private Circle   aSun2;

/**
 * Constructor for objects of class House
 */
public House()
{
    this.aWall= new Square();
    this.aWall.changeSize( 100 );
    this.aWindow= new Square();
    this.aWindow.changeColour( "black" );
    this.aRoof= new Triangle();  
    this.aRoof.changeSize( 140, 50 );
    this.aSun= new Circle();
    this.aSun.changeColour( "yellow" );
    this.aSun.changeSize( 60 );
    this.aSun2= new Circle();
    this.aSun2.changeColour( "green" );
    this.aSun2.changeSize( 60 );
    this.aWall.MakeVisible();
    this.aWindow.MakeVisible();
    this.aRoof.MakeVisible();
    this.aSun.MakeVisible();
    this.aSun2.MakeVisible();
    
} // Picture()

/**
 * New function
 */
public String getPositionsTwoSuns()
{
    return "x=aSun.aXPosition y=aSun.aYPosition | x=aSun2.aXPosition y=aSun2.aYPosition";
}

/**
 * Draw this picture.
 */
public void draw()
{
    this.aWall.MakeVisible();
    this.aWindow.MakeVisible();
    this.aRoof.MakeVisible();
    this.aSun.MakeVisible();
    this.aSun2.MakeVisible();
} // draw()    
} // House
下面是Circle类:

import java.awt.geom.Ellipse2D;
public class Circle
{
private int     aDiameter;    
private int     aXPosition;
private int     aYPosition;
private String  aColour;
private boolean aIsVisible;

/**
 * Makes a new Circle
 */
public Circle()
{
    this.aDiameter=  30;
    this.aXPosition= 20;
    this.aYPosition= 60;
    this.aColour=   "blue";
    this.aIsVisible= false;
} // Circle()

/**
 * Makes a new circle with the default values
 */
public Circle( final int pDiameter, final int pXPosition, final int pYPosition, final String pColour )
{
    this.aDiameter=  pDiameter;
    this.aXPosition= pXPosition;
    this.aYPosition= pYPosition;
    this.aColour=   pColour;
    this.aIsVisible= false;
} // Circle()

/**
 * Make the Circle visible.
 */
public void MakeVisible()
{
    this.aIsVisible= true;
    this.draw();
} // MakeVisible()
/**
 * New function
 */
public int getPosition()
{
    return 1000*aXPosition+aYPosition;
}
}
我尝试生成该方法失败,但一旦编译该方法,并在创建名为
house1
的新对象后,该方法将返回以下内容:

"x=aSun.aXPosition y=aSun.aYPosition | x=aSun2.aXPosition y=aSun2.aYPosition";

任何帮助都将不胜感激

您可以对所有方法和变量使用private,然后通过创建对象来调用该方法。Java中的对象可以创建为
Circle run=new Circle()
然后调用所有私有方法,如:
run.Circle();
run.MakeVisible()
对象必须有类名,语法如下:
ClassName ObjectName=new ClassName()
调用该方法的语法是:
Objectname.MethodName()

确保对象名称对于方法调用也是正确的。 同一对象可用于调用多个方法。您必须为对象的所有方法调用方法,并且必须将其放置在:

public static void main() 
{ 
//object creation and all your method calls here
}

或者更具体地说,main中的代码如下



为了避免混淆,最好将方法名称从圆圈改为另一个名称,因为类也有相同的名称。好吧,假设您的方法返回“x=aSun.aXPosition y=aSun.aYPosition | x=aSun2.aXPosition y=aSun2.aYPosition”
,这并不令人惊讶。您需要将文字字符串(如
“x=“
)与变量值连接起来。Java连接操作符是
+
。谢谢你的回答,但我不知道如何连接,你能举个例子解释一下吗?谷歌是你的朋友。以下是我在谷歌搜索“Java中的连接”时得到的信息:。使用谷歌真的很难吗?谢谢。现在唯一的问题是我明白了:aXPosition在Circle中拥有私人访问权限;我知道我必须使用在Circle中创建的getPosition()方法,但我不知道如何使用?
aSun.getPosition()
允许对变量
aSun
引用的对象调用
getPosition()
方法。你没有课本吗?
public static void main()
{
    Circle run = new Circle();
    run.Circle();
    run.MakeVisible();
}