• 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 是一组对应函数, 设定 和 取得。
            }
            
        }

  • 相关阅读:
    数据访问层之Repository
    IIS执行原理
    异常分析
    Logger
    JSTL
    Kubernetes
    NET Core WordPress
    net平台的rabbitmq
    MySQL can’t specify target table for update in FROM clause
    EqualsBuilder和HashCodeBuilder
  • 原文地址:https://www.cnblogs.com/w297613932/p/4265418.html
Copyright © 2020-2023  润新知