1.C#.Net面向对象基础知识点

  1.继续面向对象程序员

  面向对象的三大特征:ide

  封装、继承、多态函数

  封装:隐蔽代码实现,代码复用,修改方便。this

  继承:指针

  多态:对象

  2.什么是类?什么是对象?类和对象的区别?继承

  类是一种数据类型,用户自定义的数据类型。 是针对具体存在的一种描述。内存

  类的组成:字段,属性,方法,构造函数。开发

  对象是具体的。是类的具体实例。对象具备属性和方法。 按照类的描述来建立一个可供咱们使用的实例。get

  类只占一块内存,每一个对象单独占用一块内存。 对象能够叫作类的实例(Instance)

  3.构造函数的做用?

  主要是为了方便程序员在实例化(new)对象的时候就为对象里的一些属性字段初始化赋值。

  <--构造函数-->

  (1)访问修饰符通常状况下是public

  (2)没有返回值类型

  (3)方法名和类名相同

  (4)在该类被new的时候(实例化)调用

  (5)用户自定义的类中,若是没有用户定义的任何一个构造函数。那么CLR将在程序运行的时候自动添加一个无参的构造函数给对象

  也就是说:一旦用户自定义的类中包含了一个或多个构造函数(无论有没有参数的),那么CLR将不在自动添加。

  4.属性

  属性的本质就是两个方法,get和set。

  属性就是为了设置访问和修改为员变量值的规则。

  若是属性里只定义了get代码块,则该属性叫作只读属性。

  若是属性里只定义了set代码块。则该属性叫作只写属性。

  代码:

  public class Person

  {

  private string _name;

  public string Name

  {

  get{return _name;}

  set{_name=value;}

  }

  private int _age;//属性存在的目的就是为了设置访问和修改为员变量值的规则。

  public int Age

  {

  get{return _age;}

  set

  {

  if(value>=0&& value<=120)

  {

  _age=value;

  }

  else

  {

  _age=18;

  }

  }

  }

  }

  5.GC垃圾回收器

  垃圾回收器定时检查堆内存,一旦发现没有被引用的对象,就当即销毁它。

  6.静态成员

  CLR加载程序集里的类信息,发现有静态成员,则直接添加到[静态成员表]中,整个程序集内均可以访问这个表里的静态成员。

  7.里氏替换原则

  当存在继承关系时,若是声明的是父类,则堆中对象保存的类型指针为父类,那么调用的时候就会执行父类的成员。

  若是调用的成员,父类中没有,那么程序会报错。由于父类的类型指针只会去找父类的成员,找不到,没有,就会报错。

  8.继承

  (1)、由于子类继承了父类,因此子类对象可以调用父类对象里全部的非私有成员。

  (2)、当存在继承关系的时候,子类的this同时能够指向父类的非私有成员。base就存在于子类对象里,用来指向父类的指针。

  (3)、继承的单根性:一个类只能继承一个父类。

  传递性:子类得到父类全部的非私有成员。

  (4)、子类默认调用父类无参的构造函数

  (5)、类的访问修饰符默认就是internal,(程序集内共享,也就是项目内部共享)

  类的成员变量,访问修饰符默认是private

  (6)、不能将父类对象强制转换成子类对象

  (7)、当建立一个子类对象的时候,若是声明的是父类对象,那么只能调用父类中的方法。

  当建立一个子类对象的时候,若是声明的是子类对象,那么先看子类中的方法,有则调用,没有则去父类中寻找,若是有则调用。

  9.简单工厂方法

  最关键的是应用了里氏替换原则,及子类重写父类的技术,它能让代码开发者不关心某个具体相关业务的实现,而只关心本身要实现的业务代码的编号。

  10.多态

  多态就是用某个子类来实例化父类,调用父类的抽象方法或者虚方法,但实际上执行的是子类实例重写的方法。

相关文章
相关标签/搜索