c#面向对象概论

C语言是结构化编程,和面向对象编程 是不同风格。

结构化编程 基本方式是“功能分解法”,具体说  就是将要解决的实际问题 进行分解,把一个大问题分成若干子问题,每个子问题又可以分解为更小的问题,知道得到的子问题可以用一个函数来实现为止。

而面向对象编程 首先要将实际问题 抽象化 可以用一个模型 :

例如: 输入 :2个日期————>程序——————>输入 2个日期间的天数。

面向对象的程序有以下几个特点:

1.所有的函数都放入到一个类中 ,称为某个类的成员,类是编程的基本单元。

2外界不能直接调用类的成员函数,必须先创建一个对象,再通过对象来调用这些函数

3.只有声明为public的函数可以被外界调用,其余声明为private的函数是私有的,外界无法访问。

面向对象的核心概念

(1 )封装

封装的类=数据+对此数据所进行的操作(即算法)

通俗的说,封装就是:包起外界不必需要知道的东西,只向外界展露可供展示的东西。

(2)抽象

在使用面向对象的方法设计一个软件系统时,首先就要区分出现实世界的 事物所属的类型。

(3)继承

不是我们认为的遗传的继承, 而是包含的意思。

                      食品

        水果                       蔬菜

苹果        香蕉                          土豆

重用已有代码而又不破坏已有代码。

(4)多态

基类拥有的特性,子类一定有,

用抽象的类编程 。

2 类与对象

类是面向对象编程的 基本单元。(一切皆为对象 )

只有声明为public的变量和函数可以被外界调用,其余声明为private的变量和函数是私有的,只能由自己的类使用。

例子 狗咬狗

 class dog
    {
        public string name;
        public int HP = 100;
        public void fight(dog b)
        {
            Console.WriteLine(name+"开始攻击"+b.name);
            b.HP -= 10;
        }
      
               public void fight(dog b,int blood)
        {
            Console.WriteLine(name+"开始攻击"+b.name);
            b.HP -= blood;
        }
        public void show()
        {
            Console.WriteLine(name+":"+HP);
        }
    }
    class Class1
    {
        static void Main(string[] args)
        {
            dog a = new dog();
           a.name=("旺财");
            dog b = new dog();
            b.name=("大黄");
            a.fight(b);
            a.show();
            b.show();
            b.fight(a);
            a.show();
            b.show();
            a.fight(b, 50);
            a.show();
            b.show();

 

例子 输入人的姓名身高体重

 class ren
    {
        public string name;
        private int hight;
        public int gethight()
        {
            return hight;
        }
        private int weight;
        public void setweight(int w)
        {
            weight = w;
           
        }
        public void yundong()
        {
           
            weight--;
        }
        public void sethight(int h)
        {
            if (h < 0 || h > 250)
            {
                Console.Write("身高输入错误");
            }
            else
            { hight = h; }
        }
        public void show()
        {
            Console.WriteLine("我叫"+name+",身高:"+hight+"厘米, 体重:"+weight+"公斤");

        }
    }
    class Class2
    {

        static void Main11(string[] args)
        {
            ren d = new ren();
            d.name = "小明";
            d.sethight(120);
            d.setweight(79);
            d.show();
            d.yundong();
            d.show();
            d.yundong();
            d.show();
            d.yundong();
            d.show();
            d.yundong();
            d.show();
            Console.Write(d.gethight());//get 和set 是一组对应函数, 设定 和 取得。
        }
        
    }

原文地址:https://www.cnblogs.com/w297613932/p/4265418.html