zoukankan      html  css  js  c++  java
  • .NET基础知识

    面向对象三大要素
    1、继承 :多组合、少继承;低耦合、高内聚;
    2、封装 :对内实现数据私有,对外实现方法调用,保证数据的完整性和安全性;
    3、多态 :一个接口,多种方法。

    面向对象七大原则:
    1、单一职责原则:一个类应该仅有一个引起它变化的原因。
    2、开发封闭原则:对修改封闭,对扩展开发。
    3、依赖倒置原则:依赖于抽象,不依赖于具体,因为抽象的稳定的。
    4、接口隔离原则:尽量应用专门的接口,而不是单一的总接口,接口面向用户,将依赖建立在最小的接口上
    5、Liskov替换原则:子类必须能够替换其基类;
    6、合成/聚合复用原则:新对象中聚合已有对象,使之成为新对象的成员,少继承、多聚合;
    7、迪米特法则:最少知识原则,软件实体应尽可能最好和其他软件实体发生相互作用。

    接口的规则
    1、接口隔离原则;
    2、接口支持多继承,既可作用于值类型,也可作用于应用类型;
    3、禁止为已经发布的接口添加新成员,这意味着必须修改所有实现了该接口的类型;
    4、接口不能被实例化,没有构造函数,接口成员被隐失声明为Public;
    5、接口可以作用为值类型和引用类型,并且支持多继承。 

    拆箱和装箱
    就是值类型和引用类型的转换。
    装箱就是值类型数据转换为无类型的应用对象,这种转换主要指转换为System.Object类型或者该值类型实现的任何接口类型;
    拆箱就是引用类型转换为值类型,通常伴随从堆中复制对象实例的操作。


    值类型和引用类型
    值类型:Value Type,值类型实例通常分配在线程的堆栈上(strack),并不包含任何指向实例数据的指针,因为变量本身包含了实例数据。
        简单类型、枚举类型、结构类型。
    引用类型:Reference Type,引用类型实例分配在托管堆上(Managed heap),变量保存了实例数据的内存应用。
        类、接口、数组、委托

    构造函数和析构函数
    构造函数不具有任何类型(不是void),不返回任何值,与类同名。构造函数用于对象的初始化。可以带参数。
    析构函数作用与构造函数相反,名字是类名前加~
    构造函数可以重载,析构不可以。
    它们调用的顺序是先构造的后析构,后构造的先析构。

    委托
    delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。
    委托是事件的基础。

    接口
    接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值;
    接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数和常数;但C#中不能包含任何静态成员
    一个类可以实现多个接口,当一个类实现某个接口时,不仅要实现接口定义的所有接口方法,还要实现该接口从其他接口继承的所有方法。

    抽象类Abstract
    提供多个派生类共享基类的公共定义,既可提供抽象方法,也可以提供非抽象方法;
    不能实例化,必须通过继承由派生类实现抽象方法。
    实现抽象方法用Override完成

    abstract声明抽象类、抽象方法
    1.抽象方法所在类必须为抽象类
    2.抽象类不能直接实例化,必须由其派生类实现。
    3.抽象方法不包含方法主体,必须由派生类以override方式实现此方法,


    虚方法
    使用virtul定义该方法为虚拟方法。
    virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。
    virtual标记方法为虚方法
    1.可在派生类中以override覆盖此方法
    2.不覆盖也可由对象调用
    3.无此标记的方法(也无其他标记),重写时需用new隐藏原方法
    abstract与virtual: 方法重写时都使用 override 关键字
    interface中的方法和abstract方法都要求实现

    虚方法声明使用virtual关键字;调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法;虚方法可以有实现体。
    抽象方法声明使用abstract,是必须被派生类覆写的方法,抽象类就是用来被继承的;可以看成是没有实现体的虚方法;如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法;抽象类不能有实体的。


    WebService
    WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。
    长项一:跨防火墙的通信
    长项二:应用程序集成
    长项三:B2B的集成
    长项四:软件和数据重用
    也有一些情况,WebService根本不能带来任何好处。
    短处一:单机应用程序
    短处二:局域网的同构应用程序

    框架
        框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
        可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。

     

  • 相关阅读:
    POJ 3259 Wormholes【BellmanFord】
    POJ 2960 SNim【SG函数的应用】
    ZOJ 3578 Matrixdp水题
    HDU 2897 邂逅明下【bash博弈】
    BellmanFord 算法及其优化【转】
    【转】几个Java的网络爬虫
    thinkphp 反字符 去标签 自动加点 去换行 截取字符串 冰糖
    php 二维数组转 json文本 (jquery datagrid 数据格式) 冰糖
    PHP 汉字转拼音(首拼音,所有拼音) 冰糖
    设为首页与加入收藏 兼容firefox 冰糖
  • 原文地址:https://www.cnblogs.com/tumbler/p/1734923.html
Copyright © 2011-2022 走看看