• 面向对象编程的概念性问题


    1、类和对象

      这两个是完全不同的概念,不能混淆。

      类(Class)是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。一个类定义了一组对象。类具有行为(be-havoir),它描述一个对象能够做什么以及做的方法(method),它们是可以对这个对象进行操作的程序和过程。

      对象(object)是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

      对象是类的实例化,既“类的实例”与“对象”的含义相同。比如人类是一个抽象了的类,那么你、我还有每一个个体的人都是一个对象。

    2、属性和字段

      字段 (field)是一个成员,它表示与对象或类关联的变量。

      属性(property)是实体的描述性性质或特征。像前一例中某个人的身高、体重就是属性。

      常见的情况是将字段设置为私有,通过公共属性来访问他们。

    3、方法

      方法基本上大家都知道,这里就不说了

      给段代码示例:

    public class People
    {
    public People()
    {
    //
    // TODO: Add constructor logic here
    //
    }

    private double height; //字段
    private double weight; //字段
    private int age; //字段




    public double Height //属性
    {
    get { return height; }
    set { height = value; }
    }

    public double Weight //属性
    {
    get { return weight; }
    set { weight = value; }
    }

    public int Age //属性
    {
    get { return age;}
    set { age = value;}
    }

    protected void AddAge() //方法
    {
    age++;
    }

    }

    4、静态成员

      静态成员一般包括静态属性、静态字段和静态方法。静态属性和静态字段是独立于任何对象实例的数据,而静态方法可以执行与对象类型相关,与对象实例无关的命令。

      静态成员可以在类的实例中共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见。例如变量peopleNumber(默认为0)为类People的静态成员变量,那么在实例people1中peopleNumber++,再通过people2中引用时peopleNumber就等于1了。这种情况是因为静态成员存在于内存,非静态成员需要实例化才会分配内存。这就是静态成员不能访问非静态的成员的原因。

      关于静态成员,百度知道里解释的不错:http://baike.baidu.com/view/536297.htm  

     5、接口(interface)

      接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。

      接口我还不是特别理解,先放着,以后再补充。

     

    6、继承

      继承是面向对象程序设计的主要特征之一,它可以让您重用代码,可以节省程序设计的时间。继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。

      子类拥有父类的所有成员。同时子类也可以重写父类中的方法。

      子类可以访问父类的public成员和protected成员,但是不能访问private成员。

      

  • 相关阅读:
    jsp 特殊标签
    poj 1753 Flip Game 高斯消元 异或方程组 求最值
    zoj 3155 Street Lamp 高斯消元 异或方程组 求方案数
    poj1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组 模板
    zoj 3930 Dice Notation 模拟
    zoj 3157 Weapon 线段树求逆序对数
    hdu 1242 Rescue BFS+优先队列
    hdu 3466 Proud Merchants 贪心+01背包
    zoj 3689 Digging 贪心+01背包
    hdu 2602 Bone Collector 01背包模板
  • 原文地址:https://www.cnblogs.com/zhangkai2237/p/2392568.html
Copyright © 2020-2023  润新知