学点设计模式0x0 面向对象基础(1)

4 篇文章 0 订阅

类与实例

    对象:

        一个自包含的实体,用一组可识别的特性和行为。

    类:

        具有相同的属性和功能的对象的抽象的集合。

class Cat{//定义类,类名称首字母大写
    public string Shout(){//对外公开的方法用public修饰符
        return "喵喵喵";
    }
}

    实例:

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

private void button1_Click(object sender,EventArgs e){
    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());
}

方法重载

    方法重载:

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

class Cat{
    private string name = "";
    public Cat(string name){
        this.name = name;
    }
    
    public Cat(){
        this.name = "无名";
    }
    
    public string Shout(){
        return "我的名字"+name+"喵";
    }
}

属性与修饰符

    属性:

        属性是一个方法或一对方法,但在调用他的代码看来,它是一个字段,即属性适合于以字段的方式使用方法调用的场合。字段是存储类要满足其设计所需的数据,字段是与类相关的变量。

private int shoutNum = 3;//声明一个内部字段,注意是private,默认叫的次数为3
public int ShoutNum{//ShoutNum属性,注意是public
    get{//外接调用可获得shoutNum值
        return shoutNum;
    }
    set{//外界可以给内部的shoutNum赋值
        shoutNum = value;
    }
}

    修饰符:

        public表示他所修饰的类成员可以允许其他任何类来访问,俗称公有的。private表示只允许同一个类中的成员访问,其他类包括子类无法访问,俗称私有的。不加修饰符,默认为私有。通常字段都是private,而属性都是public。由于是对外的,属性一般首字母大写,字段一般首字母小写或者前面加'_'。

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

private int shoutNum =  3;
public int ShoutNum{
    //去掉set,表示ShoutNum属性是只读的
    get {
        return shortNum;
    }
}
/*-------------------------------------------------*/
private int shortNum = 3;
public int ShoutNum{
    get{
        return shoutNum;
    }
    set{
        if(value<=10)//控制叫声次数,最多只能叫10声
            shortNum = value;
        else
            shortNum = 10;
    }
}
public string Shout(){
    string result = "";
    for(int i=0;i<shoutNum;i++){
        result +="喵 ";
    }
    return "我的名字叫" + name+" "+result;
}
private void button1_Click(object sender,EventArgs e){
    Cat cat = new Cat("小咪");
    cat.ShoutNum = 5;//给属性赋值
    MessageBox.Show(cat.Shout());
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值