• 关于C#面向对象1


        类:就是具有相同属性和功能的对象的集合。

        构造方法:就是对类进行初始化。如果不编码则系统将默认生成空的构造方法。

        方法重载:提供了创建同名的多个方法的能力,但是这些方法需要有不同的参数类型。他可以在不改变原方法的基础上增加新功能。

        属性:适合于以字段的方式使用方法调用的场合,这里字段是存储类要满足其设计所需要的数据。

        封装:每个对象都包含他能进行操作的所有信息。封装可以减少耦合,类的内部可以修改,可以使类具有清晰的对外接口。

        继承:如果子类继承父类,第一子类拥有父类非private的属性和功能;第二,子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能,还可以以自己的方式实现父类的功能(方法重写)。

    <span style="font-size:18px;">namespace WindowsFormsApplication3  
    {  
        public partial class Form1 : Form  
        {  
            public Form1()  
            {  
                InitializeComponent();  
            }  
      
            private void button1_Click(object sender, EventArgs e)//单击猫叫按钮的事件方法  
            {  
                Cat cat = new Cat("咪咪"); //类的实例化  
                cat.ShoutNum1 = 7;  
       
                MessageBox.Show(cat.shout());  
            }  
      
            private void button2_Click(object sender, EventArgs e) //单击狗叫的按钮的事件方法  
            {  
                Dog dog = new Dog("旺财");//这里只是简单的调用方法,即可实现目的,体现了封装的特性  
                dog.ShoutNum1 = 6;  
                MessageBox.Show(dog.shout());  
            }  
      
            
             
        }  
        class Animal//声明一个父类  
           
        {  
            protected string name = "";//声明类的的私有字符串变量name  
             
            public Animal(string name)//定义cat类的构造方法,参数是输入一个字符串  
            {  
                this.name = name;//将参数赋值给私有变量  
            }  
      
            public Animal()//将构造方法重载  
            {    
                this.name = "无名";  
            }  
      
            protected int shoutNum1 = 3;//声明一个内部字符段,默认值3,  
            public int ShoutNum1//属性的设置  
            {  
                get//get表示外界调用属性的值  
                {  
                    return shoutNum1;  
                }  
                set//set表示外界可以给属性的赋值  
                {  
                    shoutNum1= value;  
                }  
            }  
      
        }  
      
            class Cat : Animal//子类猫,使用了继承的机制,继承了Animal父类  
            {  
                public Cat(): base()  
                { }  
                public Cat(string name)  
                    : base(name)  
                { }  
                public string shout()  
                {  
                    string result = "";  
                    for (int i = 0; i < shoutNum1; i++)  
                    {  
                        result += "";  
                    }  
                    return "我的名字叫" + name + " " + result;  
                }  
              
            }  
            class Dog : Animal//子类狗,继承父类Animal  
            {  
                public Dog()  
                    : base()  
                { }  
                public Dog(string name)  
                    : base(name)  
                { }  
                public string shout()  
                {  
                    string result = "";  
                    for (int i = 0; i < shoutNum1; i++)  
                    {  
                        result += "";  
                    }  
                    return "我的名字叫" + name + " " + result;  
                }  
      
            }  
      
             
      
    }</span>  

  • 相关阅读:
    超棒的微软Metro风格Logo设计
    免费资源:Polaris UI套件 + Linecons图标集(AI, PDF, PNG, PSD, SVG)
    11套免费的wordpress模板主题
    SASS(Syntactically Awesome Stylesheets Sass)绝对新手入门教程
    分享网页加载速度优化的一些技巧?
    帮助开发者快速创建响应式布局的Boilerplate Responsive Boilerplate
    免费素材: Retina Glyph图标集 (包含100个AI & PNG格式的图标)
    响应式的前端框架 Groundwork
    帮助你搜索免费矢量,图标和PSD的搜索引擎 Freepik
    Toolbar.Js 帮助你创建提示风格的工具条jQuery插件
  • 原文地址:https://www.cnblogs.com/nwj-0613/p/4827941.html
Copyright © 2020-2023  润新知