安忍不动如大地,静虑深思如秘藏
雄鹰虽然有时候飞的比鸡还低 但鸡永远也不可能飞到鹰的高度
摘要: 我们去饭店吃饭,坐下。然后叫:服务员!好,服务员来了。你会说:倒茶。或说:点菜。是吧。你不会说:来,我们讨论一下什么是面向对象吧。这是为什么呢?很简单,对你(顾客)而言,你并不关心来的是男是女,不管他是不是上知天文下知地理,文能安邦物能定国,你只要知道,来的人一定具有点菜这个业务能力。从代码来看, 1 public interface IOrder//点菜 2 { 3 ... 阅读全文
posted @ 2007-02-16 21:36 害羞的狮子王 阅读(311) 评论(1) 推荐(0) 编辑
摘要: 假设有以下的类 1 public abstract class GunBase//枪械 2 { 3 public abstract void Shoot();//射击 4 public abstract ClipMode Clip//配置弹夹 5 { 6 set; 7 get; 8 }... 阅读全文
posted @ 2007-02-16 12:05 害羞的狮子王 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 假设我们拥有下面的集合 1 System.Collections.ArrayList list = new System.Collections.ArrayList();2 list.Add(1);3 list.Add(12);4 list.Add(3);5 list.Add(56);... 阅读全文
posted @ 2007-02-15 22:02 害羞的狮子王 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 昨天我们做的Table具有了Print方法,可以简单的打印数据。现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。而我只需要重写Print方法 1public class HtmlTable : Table 2 { 3 public HtmlTable(string reportName, ColumnCollection cols) 4 ... 阅读全文
posted @ 2007-02-14 20:42 害羞的狮子王 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 布尔先生说System.命名空间下有啊,的确BCL提供了System.Data.DataTable,但是一、该Table相当的大,如果我们需要一个轻量级的Table结构的话,用System.Data.DataTable我感觉大材小用。二、从System.Data.DataTable对象所继承的类,完全暴露了System.Data.DataTable(该DataTable的属性方法有很多是publi... 阅读全文
posted @ 2007-02-14 20:31 害羞的狮子王 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 有了Table,我们对其继承,实现更符合业务要求的类 1 /**//// 2 /// 描述一个销售报表 3 /// 4 public class SaleReport : Table 5 { 6 7 public SaleReport(string reportName) 8 : base(reportName, new Co... 阅读全文
posted @ 2007-02-13 23:20 害羞的狮子王 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 描述一个数据表 1 /**//// 2 /// 描述一个数据表 3 /// 4 public class Table 5 { 6 7 protected Table(string name, ColumnCollection cols) 8 { 9 TableName = name; 10 ... 阅读全文
posted @ 2007-02-13 22:56 害羞的狮子王 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 描述数据列的类定义 1 /**//// 2 /// 描述数据列 3 /// 4 public class Column 5 { 6 7 8 public Column(string name, Type type) 9 : this(name, type, null)10 {1112 }1314 ... 阅读全文
posted @ 2007-02-13 22:50 害羞的狮子王 阅读(581) 评论(2) 推荐(0) 编辑
摘要: 接下来的连续几篇,我们要演练作一个描述通用的二维表,并演示该二维表的继承通途。先定义数据行的状态 1 /**//// 2 /// 数据行的状态 3 /// 4 public enum RowState 5 { 6 /**//// 7 /// 新建状态 8 /// 9 Added,10 /*... 阅读全文
posted @ 2007-02-13 22:48 害羞的狮子王 阅读(740) 评论(2) 推荐(0) 编辑
摘要: 上次我们看到的StaffCollection和DepartmentCollection都是继承于System.Collections.CollectionBase,那CollectionBase是个怎样的类呢?我们知道数组的定义是:连续分配的内存空间,大小不能被改变,因此如果我们需要一个像单向链表一样可以动态添加元素的数据结构,我们就需要使用集合。 System.Collections.Array... 阅读全文
posted @ 2007-02-13 20:15 害羞的狮子王 阅读(788) 评论(0) 推荐(0) 编辑
摘要: 1 Company com = new Company(); 2 com.Departments.Add("HR"); 3 com.Departments.Add("Market"); 4 com.Departments.Add("Development"); 5 6 com.Depar... 阅读全文
posted @ 2007-02-12 22:22 害羞的狮子王 阅读(476) 评论(1) 推荐(0) 编辑
摘要: 我们来描述一个数据结构,一个公司,下有很多部门,一个部门有很多职员。ok,我们先实现职员数据结构 1 public class Staff 2 { 3 //默认为男性 4 public Staff(string name):this(name,Sex.Man) 5 { 6 } 7 public Staff(stri... 阅读全文
posted @ 2007-02-12 22:10 害羞的狮子王 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 属性是字段向方法的过渡 1public class Person 2 { 3 4 public int age;//直接公开字段,无法控制用户输入非法的值 5 6 7 //Java模式的对Age控制方式,需要两个方法,Get和Set。麻烦麻烦阿! 8 public int GetAge() 9 {10 retur... 阅读全文
posted @ 2007-02-12 21:15 害羞的狮子王 阅读(520) 评论(4) 推荐(0) 编辑
摘要: 虚拟方法virtual被修饰为虚拟的方法,实现是可变的,派生类可以重写基类的虚拟方法,也可以不重写基类的虚拟方法 1public class Space 2 { 3 4 public static void Main(string[] args) 5 { 6 7 new Order().Submit();//to default depar... 阅读全文
posted @ 2007-02-10 22:08 害羞的狮子王 阅读(462) 评论(1) 推荐(0) 编辑
摘要: 第1题 10! 1 static int f(int i) 2 { 3 if (i < 2) 4 { 5 return 1; 6 } 7 else 8 { 9 return f(i - 1) * i;... 阅读全文
posted @ 2007-02-09 21:26 害羞的狮子王 阅读(513) 评论(1) 推荐(0) 编辑
摘要: 从概念上说值类型就是变量包含的是具体的值引用类型就是变量包含的是对具体值得引用,就是指针啦。我们通过代码来演示 1 public class Space 2 { 3 4 public static void Main(string[] args) 5 { 6 7 8 int i = 10; 9 int j = i;... 阅读全文
posted @ 2007-02-08 20:35 害羞的狮子王 阅读(516) 评论(5) 推荐(0) 编辑
摘要: 构造函数并不一定都是public的,以下的代码是不是另拟感到构造函数的奇特阿? 1 public class Class1//永远无法被实例化的类 2 { 3 //这个类没有可以被外部访问的构造函数 4 private Class1() 5 { 6 } 7 } 8 9 public class Class2//只可以... 阅读全文
posted @ 2007-02-07 22:33 害羞的狮子王 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 构造函数有很多用处,巧妙地运用构造函数能提高类的设计安全、合理和封装。下面的类设计的不合理,要求用户在调用18行Pring方法前,先为17行赋值。 1 public class Space 2 { 3 4 public static void Main(string[] args) 5 { 6 7 FilePrint pring = ... 阅读全文
posted @ 2007-02-07 21:51 害羞的狮子王 阅读(439) 评论(1) 推荐(0) 编辑
摘要: 构造函数是一种特殊的函数,该函数没有返回值,且名称必须和类的名称一致。更重要的是构造函数不可以被继承。当一个类没有定义任何的构造函数时,编译器会给这个类一个默认的构造函数。默认的构造函数没有参数,且是public访问修饰。构造函数是类最先调用的函数。又被分为实例构造函数和静态构造函数。静态构造函数(也叫类型构造函数):一个类只能有一个静态构造函数。该构造函数没有访问修饰,没有参数。静态构造函数在整... 阅读全文
posted @ 2007-02-05 14:04 害羞的狮子王 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 对类的内部数据成员和函数成员都可以用static修饰。如果成员被static修饰,那该成员就是静态的,从应用角度讲,类的使用者通过类来访问静态成员在语义上更能够被理解,而通过实例来访问静态成员在语义上显得不合适。在类的内部,所有成员都可以访问静态成员。但反过来,静态成员绝对不可以访问实例成员。静态成员的值对于所有实例对象而言,是共享的,所以任何实例都可以访问或修改静态成员,且更改的结果也同样影响所... 阅读全文
posted @ 2007-02-05 12:05 害羞的狮子王 阅读(272) 评论(0) 推荐(0) 编辑