首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

封装后是属性还是对象?该如何解决

2012-05-31 
封装后是属性还是对象?class GongLei{public ChongDian chdian{ get set }//此处chdain是不是已经被封闭

封装后是属性还是对象?
class GongLei
  {
  public ChongDian chdian{ get; set; } //此处chdain是不是已经被封闭成了属性?
  public void Chon()
  {
  chdian.Chong();
  }



 static void Main(string[] args)
  {
  GongLei ggg = new GongLei();
  ggg.chdian = new DianChi(); //如果chdain是属性,那么现在new DianChi()这个new出来的实例给赋给属性chdian
  ggg.Chon();
  Console.Read();
  }


请帮忙解答:一般情况下创建实例不都是,如:类型 变量名=new 类型();而现在,怎么成了属性=new 类型,难道实例也可以赋给属性?

[解决办法]

C# code
public ChongDian chdian{ get; set; } //此处chdain是不是已经被封闭成了属性?
[解决办法]
C# code
ggg.chdian = new DianChi();
[解决办法]
属性只不过是一种所发(或者说是一种写法),属性还要有类型的
[解决办法]
属性也是一种类型

如:public ChongDian chdian{ get; set; }返回ChongDian也是一种类型

而你的new DianChi();也返回一种ChongDian类型的实例。

这样理解一下。


而封装的概念你可以再查一下资料,你给出的整个代码和封装没有任何关系。

封装更重要的是体现于类,组件,项目,工程之间
[解决办法]
public ChongDian chdian{ get; set; }

chaian是属性,设值和取值都是ChongDian类型



GongLei ggg = new GongLei();
ggg.chdian = new DianChi(); 

实例化一个GongLei对象ggg,给这个对象的chdian属性赋值,因为要赋的值是ChongDian类型,这里new一个DianChi对象赋值给chdian属性。DianChi类可能是ChongDian的子类,继承了ChongDian类。
[解决办法]
C# code
class GongLei  {  public ChongDian chdian{ get; set; } //此处chdain是不是已经被封闭成了属性?  public void Chon()  {  chdian.Chong();  } static void Main(string[] args)  {  GongLei ggg = new GongLei();  [color=#FF0000]ggg.chdian = new DianChi();[/color] //如果chdain是属性,那么现在new DianChi()这个new出来的实例给赋给属性chdian  ggg.Chon();  Console.Read();  }可以这样看DianChi dc = new DianChi()[color=#FF0000]ggg.chdian = dc;[/color]另 上面属性的类型是 ChongDian,下面不知道怎么会有个 DianChi.. 

热点排行