这个数据抽象示例对吗?

时间:2012-04-03 06:24:52

标签: java

我在接受采访时给出了以下代码。我想知道它是否正确..

 public class DataAbstraction
    {
        public static void main (String args[])
        {
            MyDetails obj = new MyDetails();
            obj.setNumebr(10);
            obj.incrementBy(20);
            int num = obj.getMumber();
            System.out.println(num);
        }
    }

class MyDetails
{
    private int n;
    public void setNumebr(int i)
    {
        n = i;
    }
    public void incrementBy(int i)
    {
        n = n + i;
    }
    public int getMumber()
    {
        return n;
    }
}

所以,如果我错了,请检查并纠正我

2 个答案:

答案 0 :(得分:1)

软件中有许多形式的抽象。我会说这是数据抽象的一个例子(虽然我通常称之为encapsulation)。如果您愿意,可以将成员变量n更改为类型... String(!),而不更改MyDetails的公共接口。

换句话说:MyDetails类中的详细信息是隐藏来自客户端代码。 MyDetails存储int的事实被抽象出来并且可以更改,例如:

class MyDetails
{
    private String n;                // changed internal detail
    public void setNumebr(int i)
    {
        n = "" + i;
    }
    public void incrementBy(int i)
    {
        n = "" + getMumber() + i;
    }
    public int getMumber()
    {
        return Integer.parseInt(n);
    }
}

有关详细信息,请查看Wikipedia关于数据抽象的文章:

答案 1 :(得分:-1)

由于问题中没有足够的细节,所以再次猜测:

1)不,错了。它包含各种拼写错误,如“getMumber”和“setNumebr”。

2)是的,如果我们忽略了拼写错误,那么这些方法似乎可以完成人们对其名称的期望。

2)不,它没有发射火箭而且它没有扩展到多处理器机器(假设这些要求的地方)。