作者hatasum (我很可爱)
看板C_Sharp
标题Re: [问题] 我有一个问题
时间Mon Nov 24 00:56:36 2008
※ 引述《jackeyH (面包小男孩)》之铭言:
: 一次回答你问的三个问题好了
: 我这样说好了在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
^^"感谢你的指导
我刚试了一下 发现我还是卡手卡脚的@@"
我先把我的code 放上来
public class carinfo
{
public class tire //tire的size
{
private int _size;
public int size
{
get { return _size; }
set { _size = size; }
}
}
public class car //car的内容 内容有name lefttire
{
private string _name;
public string name
{
get { return _name; }
set { _name = name; }
}
private tire _lefttire = new tire();
public tire lefttire
{
get { return _lefttire; }
set { _lefttire = lefttire; }
}
}
}
private void btn_Click(object sender, EventArgs e)
{
carinfo.car apple = new carinfo.car(); //呼叫apple为car
apple.lefttire.size = 12;//设定apple的左轮size为12
}
=======================================================================
但是我希望的是
new apple为car
new apple.lefttire为apple.tire (或者是lefttire = new apple.tire??)
new apple.righttire为apple.tire
...
apple.lefttire.size=12
apple.righttire.size=13
...
等等...
不知道这样我该怎麽修改??@@
======================================================================
感觉我还是对於这编的概念很不清楚......XD
但是我真的很想赶快改善这个写程式的习惯
毕竟OO这条路...不能只用自己的想法在想程式
不然我想以後我永远都不会进步的XD
^^"麻烦大家了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.0.217.71
1F:→ loveueto:你是想要car apple = new car()吗? 那car就不要宣告在 11/24 18:00
2F:→ loveueto:carinfo里啊 apple.tire?? apple是你的object name 11/24 18:01
3F:→ loveueto:而不是class name啊 你想要自己new什麽东西呢 11/24 18:01
4F:→ loveueto:或许你想法应该是把tire宣告在car里 lefttire righttire 11/24 18:05
5F:→ loveueto:这两个member在外面自己new 11/24 18:05