zoukankan      html  css  js  c++  java
  • C#面向对象学习笔记

    课程一:面向对象的概念。

    英文缩写: OOP

    面向对象只是面向过程的一个补充,而不是取代面向过程。

     

    类、对象。类是抽象的,对象是具体的。 人是一个类,某一个人是“人”这个类的对象。和类相关的变量叫做字段,是类的状态。类是不占内存的,对象才占内存。

    方法:就是类能够执行的动作,比如问好、吃饭。

    类的继承:类之间可以有继承关系。比如电脑类可以从电器类继承,这样做的好处是“电脑”类,只需要定义自己特有的字段、方法就可以啦。

    面向对象的三个特征:封装、继承、多态。

     

    课程二:定义类。

    看看这个程序,基本上包含了类的定义,类的对象的声明、对象的字段的赋值等等。

     

     

     

     

     

    课程三:类的成员访问级别.

     

    在定义类的成员是,前面有一个关键字,例如上面的publicPublic就是指公开的意思,在程序的任意地点都可以改变该成员的值。

    还有一个访问级别限制关键字:private 只能在类里面才能够改变其值。

    看看这个函数:

     

    如果类里面的“方法”中参数更类的成员重名。要用this.name来指定哪个名字是类的成员名而不是参数名。看看下面的一个类的定义。其实,不同名也是可以用this关键字的。

     

     

    课程四:面向对象 属性。

    简化字段的引用和赋值:因为,为了避免字段被擅自更改,字段要设为private

    然后针对某这字段设置属性。属性里面有set get 两个动作,可以改变字段的值。

     

     

     

    课程五:构造函数:

    构造函数是类的一个函数。例如在声明类的一个对象是:Persion p1=new Person();

    Person是一个类。P1是类的对象。

    Person()就是person这个类的构造函数。默认是没有参数的。

    但是如果你希望你声明的类的某个某个对象有初始值,就可以声明构造函数并传参数进去。构造函数可以有重载。看看下面的程序:

     

     

     

    这里说明一下,上面函数的Gender性别显然是不可以被外界更改的。所以不能用{setget;}这样的话,就必须用传统的:

     private Gender  gender;

     public Gender gender

       {

         get{return this.gender;}

       }

     

    还有,在看看上面函数的两个构造函数,里面赋值字段的代码存在冗余,这不符合编程原则DRYDon’t Repeat Yourself)。如何解决呢,可以使用函数的嵌套调用。

    如下所示:

    构造函数的嵌套调用:在一个函数的后面加“:this(参数)

     

    课程 6 :类的继承。 主要作用是类的属性、方法的重用。例如:首先定义一个Person类,如果需要再定义一个Chinese类。那么“中国人”类就可以从“人” 类中继承字段、属性、方法的。例如下面一段代码:

     

     

     

     

    如果一个类,没有定义父类,则它默认为object类。Object 是任何类的直接或间接父类。

    子类在继承父类的一个方法的时候,不能够默认继承,因为在子类中用继承下来的方法可能是不合适的,需要更改这个方法。怎样更改呢。

    首先在父类的方法前要加virtual关键字。

     

     

    在子类中的方法:

     

     

    Chinese类是Person类的子类,Person类是object类的子类。而object是支持.ToString方法的。

    所以,Person,Chinese类也是支持的。可以用覆盖的方法,改变.ToString方法的行为。例如可以在Person 类中覆盖object类的.ToString方法。

     

    在C#中,一个类只允许有一个父类。而在C++中是可以有多个父类的。

     

    父类声明的一个构造函数,子类能否继承呢。如果可以那又该怎样做。

    构造函数是不能够继承的,每个子类都必须自己声明构造函数。

     

    虽然不能够继承,但是子类可以调用父类的构造函数 。

    Person 父类中声明构造函数。

     

    子类Chinese中声明构造函数:

     

    构造函数的使用。

     

     

     

    课程七:多态

    一个父类的指针,可以指向其子类的一个对象。

    例如:Person p1=new Chinese();

          P1.SayHello();//如果子类和父类中有SayHello方法这是正确的引用。

    如果只是子类中有这个方法,而父类中不确定有没有这个方法,则是错误的。

     

     

     

    课程八:多态的好处。

     

  • 相关阅读:
    SpringMVC截图版
    MySQL
    Mybatis-Spring
    Spring
    get
    log
    SpringBoot
    Mybatis和spingboot整合
    学习笔记-英语
    PartialView+$.reload()局部刷新
  • 原文地址:https://www.cnblogs.com/YangFengHui/p/2018583.html
Copyright © 2011-2022 走看看