作者jackeyH (面包小男孩)
看板C_Sharp
标题Re: [问题] 我有一个问题
时间Sat Nov 22 11:03:09 2008
一次回答你问的三个问题好了
我这样说好了在Object Oriented的世界里我们都会将目标需求切分成
以物件为单位的元件在加以组合互动,而类别(Class)则是在物件尚未实体化之前
(所谓实体话是指将物件新生出来,并给定属性值)的抽象化定义
也就是说呢在你的问题中,车是一个类别,轮胎是一个类别
而给定属性质的Toyata某型号的车以及给定规格的轮胎就可以被称为一个物件
依照这个概念去设计你的类别基本上就不会觉得很奇怪
class Tair
{
private int _size = -1;
public int size
{
get { return _size; }
set { _size = value; }
}
}
class Car
{
private string _brand="None";
public string brand
{
get { return _brand; }
set { _brand = value; }
}
private Tair _tairInform=new Tair();
public Tair tairInform
{
get { return _tairInform; }
set { _tairInform = value; }
}
public Car(string inputBand)
{
_brand = inputBand;
}
}
也就假设是说当你产生一台新的Toyota YARIS的车的物件是时候你会这样做
Car myCar=new Car("Toyota YARIS");
而要指定其轮胎大小也就可以
myCar.Tair.size=10;
不过呢基本上类别和结构的概念已经不太一样,结构我们一般只会用来
一个用来定义某个物体有相关的属性的集合
EX: 定义一个结构来描述IP Header各项属性,Source Addr,Distination Addr...
而类别则是除了定义这个物体相关的数性之外还会定义与这个使用类别成为物件之後
所需相关的操作 EX: 定义人有身高、年龄、体重等等数性 以及 移动、生长等等动作
题外话像get,set这类保留字其实是有点已经破坏原始物件导向程式设计中封装的原则了
---
是我的认知..不知道有没有回答道你的问题..XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.129.199
1F:→ thinner:轮胎不是Tire吗? 12/10 01:33