面向对象编程,英文叫Object-Oriented Programming,也就是针对对象来进行编程。
以下内容是对《大话设计模式》这本书的知识总揽,以及自我理解
1、类与实例
1)对象
通俗解释:一切事物皆为对象,即所有的东西都是对象,对象就是可以看到、感觉到、听到、触摸到、尝到、或闻到的东西
准确解释:对象是一个自包含的实体,用一组可识别的特性和行为来标识
//功能1:点击一个‘猫叫’的按钮,会弹出小猫的叫声‘喵’的提示框
private void button1_click(object sender,EventArgs e)
{
MessageBox.Show("喵");
}
各部分含义如下:
- private:访问修饰符,表示该方法是私有方法,只能在当前类内部被调用,外部无法直接访问,保证了方法的封装性。
- void:返回值类型,void表示该方法执行后不返回任何数据,因为按钮点击事件通常只需执行操作(如弹出提示框),无需返回结果。
- button1_click:方法名,遵循 “控件名_事件名” 的命名约定,清晰表明这是button1控件的Click(点击)事件的处理方法。
- (object sender, EventArgs e):方法参数
- object sender:表示触发事件的 “源控件”,即哪个控件触发了这个事件。这里sender本质上就是button1(可通过类型转换(Button)sender获取该按钮的具体信息)。
- EventArgs e:事件参数,包含事件相关的附加信息。对于简单的点击事件,EventArgs本身没有太多数据;如果是更复杂的事件(如鼠标移动事件),会使用其派生类(如MouseEventArgs)传递坐标等详细信息。
简单来说,这个方法的完整含义是:一个私有、无返回值的方法,用于处理button1按钮的点击事件,方法内可以通过sender获取触发事件的按钮,通过e获取事件相关信息。
//功能2:使用函数实现需要在另一个按钮中让小猫叫一声,或者让小猫多叫几声
private void button1_click(object sender,EventArgs e)
{
MessageBox.Show(Shout());//调用函数
}
string Shout()
{
return "喵";
}
各部分含义如下:
- string:返回值类型,表示该方法执行后会返回一个字符串(string类型)数据。
- Shout:方法名,通常采用帕斯卡命名法(首字母大写),直观表示该方法的功能(此处可理解为 “叫”“喊叫”)。
- ():参数列表,这里为空,表示调用该方法时不需要传入任何参数。
- 方法体 { return "喵"; }:
return "喵"; 表示方法执行后返回字符串 "喵"。
当其他代码调用 Shout() 方法时,会得到这个字符串结果(例如可以用变量接收:string sound = Shout();,此时 sound 的值就是 "喵")。
简单来说,这是一个无参数、返回字符串 “喵” 的方法,功能是封装 “返回小猫叫声” 的逻辑,方便在程序中多次调用
2)类
使用类的原因:比如说居委会的公用电视放在你家,而别人家没有,于是街坊领居都来你家看电视,这个时候就需要使用“类”,把公用电视放在居委会
定义:就是具有相同属性和功能的对象的抽象的集合
关键字:class
⚠️1:类名词首字母要大写,如果是多个单词则各个首字母都大写
2:对外公开的方法需要用“public”修饰符
如何使用类:将类实例化
实例,就是一个真实的对象,比如说我们都是“人”,而你和我其实就是“人”这个类的实例
实例化,就是创建对象的过程时,使用new关键字来创建
//功能3:其他窗体也需要‘猫叫Shout()’
class Cat //Cat为类的名称
{
public string Shout()
//public修饰符是将此方法定义为公有方法;Shout为类的方法
{
return "喵";
}
}
//功能4:实例化“类”
private void button1_click(object sender,EventArgs e)
{
Cat cat = new Cat()
//一般都是上面的写法,为了理解可以分写为:
//Cat cat;
//cat = new Cat();
MessageBox.Show(cat.Shout());//调用函数
}
各部分含义:
- Cat cat :声明一个Cat对象,对象名为cat;
- cat = new Cat():将此cat对象实例化
即:Cat实例化后,等同于出生了一只小猫cat,此时就可以让小猫cat.Shout()