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

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

对象:(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#中区分大小写,所以一定要注意!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值