我在接受采访时给出了以下代码。我想知道它是否正确..
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;
}
}
所以,如果我错了,请检查并纠正我
答案 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)不,它没有发射火箭而且它没有扩展到多处理器机器(假设这些要求的地方)。