C#__面向对象编程

C#__面向对象编程;

一、类的构建,类的成员,类的封装,方法的重载:
1、类的成员:
 成员变量
 成员函数
 属性(新的东东)

2、成员的访问控制: 
 (私有成员)private(默认的访问控制)  类内部
 (保护成员)protected   类内部,子类
 (内部成员)internal   类内部,子类,包(相同命名空间)
 (公有成员)public
 
3、构造函数及构造函数的重载

4、方法的重载
 在一个类的内部
 方法名相同
 参数不同(类型,顺序,数量)

5、属性:
 1)属性是类中定义的,和成员变量对应的变量
 2)属性主要解决了私有成员变量的访问控制(读写属性,只读属性,只写属性)
 3)属性定义格式 :
  public 类型 属性名
  {
   get{return 成员变量}
   set{成员变量 = value}
  }
 4)属性中的get,和set不需要,显式的调用,而根据用户的操作来自动选择一个执行;
/************************
案例:
1、定义简单的人类,三个成员变量,没有方法;
2、定义简单的人类,三个参数,实现2个构造函数和一个show
3、定义简单的数学类,实现2个数相加各类型重载函数;
4、定义一个简单的用户类(用户名密码)用java式的方法封装,然后测试;
4_1、对上一题,用类的属性的方式,实现对成员变量的封装;

任务:
1、定义一个书籍类Book,成员变量(编号,名称,价格),成员方法(全参构造,空参构造,show)
   然后在,Program类中测试;

2、定义一个计算类,实现一个整数加法的静态方法(分别实现求2个整数,3个整数,4个整数,整形数组求和的重载方法)
   然后在,Program类中测试;

3、定义一个银行用户类,成员变量(帐号,密码,年龄,住址,余额),成员函数(空/全参构造,getts,setts方法,show)
   然后在,Program类中测试;

4、定义一个银行用户类,成员变量(帐号,密码,年龄,住址,余额),成员函数(空/全参构造,show),属性(所有的成员变量的读写属性)
   然后在,Program类中测试;
***********************/

二、namespace,using

三、继承
1、继承的语法实现:
 class 子类名 : 基类名{}

2、子类构造方法的实现,及base关键字的使用; ---super
 1)通过base子类可以访问基类的成员,
 2)在子类的构造方法中可以通过 base来访问基类的构造方法:
  public 子类构造(参数列表) : base(参数列表)
  {
  
  }

3、方法的重写(覆盖)
   public 返回值类型 方法名();  //会出现警告的
   OR
   new public 返回值类型 方法名();

   如果,new 后面的方法声明,不构成对父类方法的覆盖,不会报错, 但会有警告


总结:
     override:如果被重写方法时virtual,abstract
     new,除此以外,重写都可以用new ,或者不写
4、虚函数virtual和多态的实现;
 虚函数(virtual):主要目的就是为了让子类重写,这样的方法可以有方法体
abstract

 子类的重写格式 :
  override 返回类型 方法名()
5、抽象方法和抽象类abstract
 抽象方法和虚方法的区别;

6、密封类和密封方法sealed   --类似java中的 final
 密封的方法不能被重写,
 密封的类不能被继承

 sealed针对的时子类,以及子类重写的方法

7、常量的定义:
 语法:
 public const 类型 常量名称 = 值; //常量一定是全局的因此不能使用static ,加了算错

 

任务:
1、实现以下类的定义
 1)定义一个人类封装以下成员
  成员变量(编号,姓名,年龄)
  成员方法(空/全参构造,show)
  属性
 2)定义一个学生类继承人类
  成员变量(班级)
  成员方法(空/全参构造,show)
  属性
 3)定义一个教师类继承人类
  成员变量(专业)
  成员方法(空/全参构造,show)
  属性
 4)Program测试类,测试学生类,和教师类的所有方法;

2、实现以下类的定义,
 1)定义一个动物类封装以下成员
  成员变量(名称)
  成员方法(空/全参构造,吃、show(虚方法))
  属性
 2)定义一个猫类继承动物类
  成员变量(颜色)
  成员方法(空/全参构造,重写吃、show)
  属性
 3)定义一个鱼类继承动物类
  成员变量(重量)
  成员方法(空/全参构造,重写吃、show)
  属性
 4)Program测试类,用动物类的引用来测试猫类、鱼类对象的所有方法;
  
3、实现以下类的定义,
 1)定义一个形状类封装以下成员
  成员变量(常量:圆周率)
  成员方法(抽象的求面积、求周长)

 2)定义一个圆形类继承形状类
  成员变量(半径)
  成员方法(空/全参构造,以及其他必须实现的方法)
  属性
 3)定义一个长方形类继承形状类
  成员变量(长,宽)
  成员方法(空/全参构造,以及其他必须实现的方法)
  属性
 4)Program测试类,测试圆形类和长方形类;

4、将上一题中的圆形类中的面积,周长的方法设着成为密封的,然后创建该类的子类测试该方法是否能被重写;将长方形类设置成为密封得,测试这个类是否能被继承;

 

posted on 2013-08-15 15:39  ylbtech  阅读(246)  评论(0编辑  收藏  举报