设计模式——面向对象基础(类、对象)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lrtcsdn/article/details/82145583
概念理解——类与实例

说到类我们不得不说到对象,那什么是对象呢?这里的对象比较有意思,不是之男女朋友的对象哦!哈哈,一切事物皆对象,即所有的东西都是对象,对象是可以看到、感觉到、听到、触摸到,尝到、或者闻到的东西。

对象:(Object-Orietend Programming)对象是来自一个包含的实体,用一组可识别的特性和行为来标识。说了这么多那么类和实例是什么呢?

类:具有相同的属性和功能的对象的抽象的集合。
注:1.类名称首字母大写,多个单词则各个首字母大写
2.对外公开的方法需要用“public”修饰符

实例:就是一个真实的对象。比如:我的花儿,刘冉亭的那朵花儿,特指到具体的那朵花。

实例化:就是创建对象的过程,使用new关键字来创建

举个栗子:有好多“花”,我送给你的那朵花。“好多花”就是类,我送的“那朵花”是类的实例。

代码实现:

class Cat
        {
            public string shout()
            {
                return "喵";
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Cat cat = new Cat();//Cat cat声明一个cat的对象,对象名cat;cat=new cat将cat对象实例化
            MessageBox.Show(cat.shout());
        }
构造方法

构造方法,又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new的时候调用;在创建类时,就是调用构造方法的时候

class Cat
        {
            private  string name="";//声明Cat类的私有字符串变量name
            public Cat (string name)//定义cat类的构造方法,参数是输入一个字符串
            {
                this.name =name ;//将参数赋值给私有变量name
            }
            public string shout()//猫叫方法
            {
                return "我的名字叫"+name +"喵";
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Cat cat = new Cat("小可爱");
            MessageBox.Show(cat.shout());
        }
方法重载

对于上面代码中的小猫名字叫“小可爱”,可是我如果没有给小猫起好名字该怎么办呢?这时候就用到方法重载了

方法重载的作用:提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型(构造方法可以重载,普通方法也可以重载)

在上面的代码中加上一句就可以了

public Cat()
            {
               this.name ="待我想想";//将构造方法重载
            }
属性和修饰符

在第一个例子的时候小猫就叫了一声,如果小猫多叫几声该怎样实现呢?叫几声不是必须实例化的时候就声明的,可以之后在规定,这时可以用“属性”。那么属性到底是什么呢?

属性:属性是一个方法或一对方法,但在调用它的代码看来,他是一个字段,即属性适合于字段的方式使用方法调用的场合。

字段:字段是存储类要满足其设计所需要的数据,字段是与类相关的变量。

private int shoutNum = 3;//声明一个内部字段private,默认叫的次数3
        public int ShoutNum
        {
            //ShoutNum属性,注意public,当中有两个方法
            //get表示外界调用时可以得到shoutNum的值
            //set表示外界可以给内部的shoutNum赋值
            get;
            {
                return shoutNum ;
            }
            set 
            {
                shoutNum =value ;
            }
        }

看点一:在代码中可以看到public和privat是不一样的,两个都是修饰符,那么他们有什么区别呢?
public:表示所修饰的类成员可以允许其他任何类来访问,俗称公有的
privat:表示只允许同一个类中的成员访问,其他类包括它的子类无法访问,俗称私有的。

注:
1.在类中的成员没有加修饰符,则被认为是private
2.通常字段都是private,即私有的变量,而属性都是public,即公有的变量

看点二:属性的两个方法get和set
get:get访问器返回与声明的属性相同的数据类型,表示调用时可以得到内部字段的值或引用
set:set访问器没有显式设置参数,但它有一个隐式参数,用关键字value表示,他的作用是调用属性时可以给内部的字段或引用赋值。

小插曲:在这里一定注意字母的大小写
这里写图片描述
这里写图片描述
实现的时候一直二义性的错误,看了看没什么问题,因为C#中区分大小写,所以一定要注意!!!

猜你喜欢

转载自blog.csdn.net/lrtcsdn/article/details/82145583