假设一个类是Computer,一个类是Table.它们同时有一个字段是mouse.通过传递方法。让两个私有字段同时引用了同一个Mouse对象。这样的话。一个类对象Table不就可以改变另外一个类对象的状态Computer.mouse1的颜色了吗?这样不算是破坏封装的行为吗?public class Computer
{
private Mouse mouse1 = new Mouse("红"); public Mouse()
{
get{ return mouse1;}
}
}public class Table
{
private Mouse mouse2;
public Table(Mouse mouse)//在桌子上的鼠标
{
mouse2=mouse;
}
public void ChangeMouseStatus()
{
mouse.color = "绿";
}
}public static void Main()
{
Computer myComputer =new Computer();
Table table =new Table(myComputer.Mouse);
table.ChangeMouseStatus();
}如果换成c++
直接把对象本身作为成员变量。一旦设置为private ,其他对象怎么也没有访问权限的。有拷贝也是深拷贝。就不会有这种顾虑吗?还是我根本都思路想的不对?只有20分了。。求指导c#封装
{
private Mouse mouse1 = new Mouse("红"); public Mouse()
{
get{ return mouse1;}
}
}public class Table
{
private Mouse mouse2;
public Table(Mouse mouse)//在桌子上的鼠标
{
mouse2=mouse;
}
public void ChangeMouseStatus()
{
mouse.color = "绿";
}
}public static void Main()
{
Computer myComputer =new Computer();
Table table =new Table(myComputer.Mouse);
table.ChangeMouseStatus();
}如果换成c++
直接把对象本身作为成员变量。一旦设置为private ,其他对象怎么也没有访问权限的。有拷贝也是深拷贝。就不会有这种顾虑吗?还是我根本都思路想的不对?只有20分了。。求指导c#封装
对象的传递是通过引用传递的。
Mouse类从初始化到传递到Table里面都是同一个对象。