C#面向对象_1_基础思想

本文介绍了C#中的面向对象编程概念,包括类、对象、属性、方法等基本要素,并探讨了面向对象的三大特征:封装、继承与多态。

C#面向对象_1_基础思想

 

什么是面向对象

一种用编程语言来描述客观事物的思想,它不仅仅是一门技术或语法,而是一种思维方式。

从中文的角度来讲,类就是指一个类别一个种类,是指一个种类中的所有事物的共同的特征。就好像这个类别中的所有个体的模板一样。

 

类,也可以看做是一种由程序员自己定义的数据类型。比如:我们创造了一个数据类型是人类,那么这个类中的具体的一个成员就是这个类的一个数据。

 

在C#中,类用关键字class来表示。

 

抽象

当我们要开始一个软件的时候,其准备工作之一,就是要从软件的需求当中提取出有哪些类,比如:说我们要开始一个游戏,就要首先归结一个有哪些共同特征的事物(哪些类):玩家类,npc类 , 怪物类 , 花花草草,山川河流 。这些类都是我们在开始一个游戏之前要总结出来的,这个过程,就叫做抽象。

 

设计类的过程就是一种对现实世界或业务的抽象的过程。

 

抽象的步骤

也就是描述一个类的步骤

1、 描述一类事物共同的静态特征,比如:身高、重量、年龄、型号

2、 描述一类事物共同的动作能力特征,比如:说话、飞、游泳

 

对象

对象是指一个类中符合群体特征的一个具体的成员,它是实实在在存在的一个事物。

 

对象的每一项特征都应该具备具体的量化的数值。

 

创建类与对象的示例:

   

 class dog {

        //定义的一个(种)类:狗

}



    dog 旺财 = new dog();

             //创建一个狗类中的成员

    dog 黑子 = new dog();

    dog 小白 = new dog();

    dog 大黄 = new dog();

//只要有类这个“模板”,我们就可以无限的创造这个类的对象。

 

实例化

利用一个类来创建一个具体的对象的过程,我们叫做实例化。

语法:

类名 对象名 = new 构造函数();

 

属性

就是指一个事物,或一类事物的特征,及其具体的值。比如:人类的身高、体重、三围、姓名、国籍、肤色、民族、姓氏。

示例:

    

class dog

    {

        public string 毛色;       //定义狗类有哪些属性特征

        public float 体重;

    }

    class Program

    {

        static void Main(string[] args)

        {

            dog 旺财 = new dog();

            旺财.体重 = 20;     //给旺财的每一项特征属性添加具体的值。

            旺财.毛色 = "金黄色";

            Console.WriteLine("我家旺财毛色是{0},重{1}斤",旺财.毛色,旺财.体重);

            //通过 对象名.属性名 的方式来调用对象的属性值

        }

    }

方法:

就是指一个事物,或一类事物的共有的动作能力,或可以执行的某种活动。

比如:所有的鱼类都可以游泳,所有的狗都会汪汪叫。

 

包含在类里面的变量我们也可以叫成员变量,同样,包含中类里面的方法也可以叫做成员函数。

示例:

    

class dog

    {

        public void 叫() {

            Console.WriteLine("I am 旺财,汪汪汪");

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            dog 旺财 = new dog();

            旺财.叫();

        }

    }

 

注意:当我们用面向对象的方式来描述客观事物的时候,我们只需要来描述那些我们需要的属性和方法就可以了,而不是必需将这个事物的所有参数特征都描述出来,因为完全没有必要,就像写小说一样。

 

面向对象的三大特征

封装

就是将不需要普通用户看到或操作的部分代码隐藏起来,以保护程序的安全性。只暴露出用户能访问的接口即可。

继承

一个类继承另一个类,那么前者也就具备了后者的特性。

多态

同一个事物对象,在不同的条件和环境之下,其所表现出来的形态是不一样的。

 

练习:

假设你现在要设计一款游戏,用面向对象的思想思考一下这个游戏里面有哪些类。可以尽可能的思考一些有创意的游戏。

 

 

 

转载于:https://my.oschina.net/u/3411850/blog/880951

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值