C#基础加强第一天总结--面向对象1


有问题多问,问问题证明你动脑筋去思考了

《C#图解教程》
语法参考 C Sharp Language Specification.doc

编程到底怎么学?
多做练习,就像游泳
反复练习,就像打铁,反复捶打
把代码敲到吐
做笔记,养成做笔记、总结的好习惯

1.    代码规范
    普通变量(局部变量)  -- userName, userPassword
    字段 _userName
    属性名 方法名 类名  GetMax() UserName class Person...
    
    方法尽量短小,不要超过35行  
    调到11号字 一个屏幕能够看完
    
    文件名与类名一致,一个类一个文件
    
    案例:你现在要修改前人写好的代码如类MyClass,扩展一个功能,怎么办?
    将原来的类使用partial关键字,
    新建一个类MyClassExt1  partial MyClass
    再将原类注释掉
    
2.    面向对象计算器_控制台程序/_Winform程序/_ASP.NET
    封装-->打包
    //找对象
        //先看基础类库有没有提供,没有自己写
    
    //提要求
    
    //得结果
    
3.    IP地址和域名之间的关系
    域名是由DNS服务器提供的  QQ能上,网页打不开
    DNS担负着将网站地址变换为IP地址的重任,如果DNS解析过程中出现了故障,
    那么网站将无法访问
    
4.    EXE 和 DLL是组合使用的
    比如说我们系统要支持MySQL SQL Server以及其他数据库
    那么保证EXE文件的框架不便,只要写两个操作数据库的DLL就可以了
    
    一个程序引用dll的办法一般有两种
    第一种是引用项目 -- 一般是原生dll,如果dll更改,那么引用项也会更改
    第二种是添加dll的引用,直接将dll文件复制到项目中,再引用(但不会同步更新)
    相当于第三方插件
    
    新的项目,就使用生成;
    旧的项目,使用重新生成会先将原Debug文件删除,再生成
    
5.    继承中的几个难点
        ->构造方法的执行顺序
            创建对象的时候,首先调用根类的构造方法,依次父类的构造方法,直到当前类型
            base关键字:显示调用父类构造方法 先执行父类指定的构造方法,再执行自己的构造方法
            this关键字:显示调用本类构造方法 先执行this指定的构造方法,再执行自己的构造方法
        ->里氏转换原则 --> 实现多态的基础
        is运算符  <operand> is <type> 先判断,再转换,比较麻烦
        as运算符  <operand> as <type> 判断转换一步到位
        
6.    多态计算器
    
    属性是只读属性,即public int Num{get{return _num}};
    那么给字段赋值就限制为只能使用构造函数
    
    将抽象类、接口、构造函数 --> 融合在一起写计算器
    
7.    模块化计算器
    使用简单工厂模式
    利用一个工厂类,里面写上一个Productxxx方法 根据传进来的数据创建对象
    再返回给主程序
    
    这样完成的模块化的计算器,具备很强的扩展性。
    想要扩展一个功能,如增加对一种运算符的支持,只需要两步:
    增加一个运算符的DLL
    之后修改下工厂模块
    
8.    终极计算器
    插件机制 -- 设计到反射的使用
    
9.    接口的使用
    一般在比较大的系统中才涉及接口的使用,在普通小项目中接口和抽象类起到的作用没什么区别
    接口可以使得多个对象在不同环境下实现多态
    
    例如:
    1)我们定义三个接口 IShowable{Show方法} IReadable ISortable
    2)再定义三个函数ShowHelper(IShowable shower)...把接口做为参数传进来
    3)之后写类去配合接口 如MyClass1实现了上述三个接口,就可以调用ShowHelper(MyClass1)实现所有三个功能
    
    这样就可以限制类所能实现的功能,而不影响类本身
    比如我们可以使用这种方式实现对角色的权限的限制
    
    接口的单一性:就是当作零件来使用
    比如说想实现比较功能,就实现IComparable接口
    想实现排序功能,就实现ISortable接口
    
10.    C#有一个Environment类  当前系统环境的类

11.    类的成员有哪一些
    字段,属性,方法,索引,事件
    
    索引是一种特殊类型的属性,可以把它添加到一个类中,以提供类似于数组的访问。
    public 返回值 this[类型 索引名]
    {
        get {  }
        set {  }
    }
    
    public int this[int numBase, int power]  -- 两个索引
    { get{return (int)Math.Pow(numBase,power);}}
    
    实际上,索引可以提供复杂的访问,因为我们可以用方括号语法定义和使用复杂的参数类型
    
12.    静态与非静态
    语法        
        在方法或字段等前面加上static
    如何使用
        直接使用类名.成员名
    静态类
    
    静态一般提供功能,有时提供一些常量
    
    Microsoft windows SDK Tools --> IL反汇编程序(common intermediate language)
    .ctor  --> constructor
    .method  --> 标记为方法
    .field  -->  字段
    .cctor  --> class constructor
    class MyClass
    {
        public int numInstance = 10;  通过IL反汇编程序,我们看到这段代码实际上是在构造方法中执行的
        public static int numStatic = 20;    
        static MyClass        //静态字段的数据由静态构造方法初始化,而且只执行一次
        {                    //先于实例构造方法执行
        }
        public MyClass        
        {
        }
    }
    
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值