使静态嵌套类构造函数参数立即可用的最佳方法是什么?

时间:2011-07-11 11:53:51

标签: java oop

这是我的意思的一个例子:

class Foo 
{
    Object testObj1;
    Object testObj2;

    Foo.Bar BarObj = new Foo.Bar(testObj1, testObj2);
    Object BarObj1 = BarObj.obj1;

    static class Bar
    {
        public Object obj1;
        public Object obj2;

        public Bar(Object obj1, Object obj2)
        {
            this.obj1 = obj1;
            this.obj2 = obj2;
        }
    }

}

我想创建一个静态嵌套类,使其构造函数参数可以立即用于实例化它的任何类,这是最好的方法吗?

编辑:好的,当你不擅长Java时,很难构建一个问题。我是一个中间的android开发人员,基本上,BarObj应该包含与android中的某个功能有关的对象,例如3按钮菜单。每个按钮包含一些对象资源,包含按钮图像的Image对象,包含按钮文本的Text对象等等。

所以我想用每个按钮将自己的资源封装到一个对象中,这样我就可以将该按钮对象解析为fx函数。单击按钮时操纵按钮图像。那有意义吗?这是一些更新的代码:

class Foo 
{
    Object Button1Image;
    Object Button1Text;

    Object Button2Image;
    Object Button2Text;

    Foo.Button Button1Obj = new Foo.Button(Button1Image, Button1Text);
    Object Button1ObjImage = Button1Obj.obj1;

    static class Button
    {
        public Object obj1;
        public Object obj2;

        public Button(Object obj1, Object obj2)
        {
            this.obj1 = obj1;
            this.obj2 = obj2;
        }
    }

}

1 个答案:

答案 0 :(得分:1)

与此相似的方法出了什么问题?

class Foo 
{
    ButtonInformation[] buttons = new ButtonInformation[]{
      new ButtonInformation(image1, "Button 1"),
      new ButtonInformation(image2, "Button 2"),
      new ButtonInformation(image3, "Button 3")
    };

    class ButtonInformation
    {
        public Image buttonImage;
        public String buttonText;

        public ButtonInformation(Image buttonImage, String buttonText)
        {
            this.buttonImage = buttonImage;
            this.buttonText = buttonText;
        }
    }
}

访问按钮的信息,你会这样做(在Foo类中):

function doSomething(int button) {
   // make sure button is less than the buttons.length.
   Image buttonImage = buttons[button].buttonImage
   String buttonText = buttons[button].buttonText;
}