菜鸟升级记——面向对象基础

  在学习C#的过程中总会遇到各种困难,而出现困难源于我们对面向对象的知识了解匮乏,以至于运用的不能得心应手。在本篇博客中,小编将根据《大话设计模式》和自己的理解,带领你一起遨游在面向对象的海洋中,希望能给现在或将来对学习C#有疑惑的同僚带来帮助,你准备好了吗?



类是具有相同的属性和功能对象的抽象的集合。
举例:
土豪家有阿富汗猎犬、秋田犬、柯基犬、贵宾犬、京巴犬,现在需要它们叫,请实现这个功能。
土豪家有阿富汗猎犬、秋田犬、柯基犬、贵宾犬、京巴犬,现在需要它们叫,请实现这个功能。
理解:我们可以分析这个题,题干中说的是让阿富汗猎犬、秋田犬、柯基犬、贵宾犬和京巴犬叫。根据类的定义,他们都有共同的特点叫,而且他们都同属于一种动物——狗,那么我们就可以定义一个狗类,在狗类中把叫定义成一个方法,如果阿富汗猎犬、秋田犬、柯基犬、贵宾犬和京巴犬叫就去调用这个方法。
代码如下:

class Dog     //定义狗类
{
	public string Shout()            //公共方法
	{
	return "汪汪汪";
	}
}

客户端

 private void  阿富汗猎犬_Click(object sender,EventArgs e)
 {
	Dog dog=new Dog();              //声明一个Dog的对象,然后将此dog对象实例化(实例化的过程就是创建对象的过程)
    MessageBox.Show(dog.Shout());   //调用方法
 }

构造方法
构造方法,又叫构造函数,是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时候调用。
所有类都有构造方法,如果不编码则系统默认生成空的构造方法,若有定义的构造方法,那么默认的构造方法就会失效。

class Dog
{
	//声明Dog类的私有字符串变量name
	private string name="";            //类的成员属性
	//定义Dog类的构造方法,参数是输入一个的字符串
	public Dog(string name)   //name是getName这个方法(函数)的一个参数
	{
		this.name=name;   
		//将参数name的值赋值给本对象的成员变量【小菜】name
		//this.name是实例化对象的属性,如果我们有这个类的实例对象叫person,那么this.name也就相当于people.name,后边的name是传进来的参数
	}
	public string Shout()
	{
		return "我的名字叫"+name+"汪";
	}
}

客户端

 private void  阿富汗猎犬_Click(object sender,EventArgs e)
 {
   	Dog dog=new Dog("咪咪");             
    MessageBox.Show(dog.Shout());
 }
    效果:我的名字叫咪咪 喵

方法重载
方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。

class Dog
{
	private string name="";
	public Dog(string name)
	{
		this.name=name;
	)
	public Dog()
	{
		this.name="无名";
	}

	public string Shout()
	{
		return "我的名字叫"+name+"汪";
	}

客户端

 private void  阿富汗猎犬_Click(object sender,EventArgs e)
 {
   	Dog dog=new Dog("小黑");             
    MessageBox.Show(dog.Shout());
 }
    效果:我的名字叫小黑 汪,若Dog dog=new Dog( );则效果为:我的名字叫无名 汪    

小菜
成员变量:又称全局变量,在程序的一开始定义的变量。和类的方法处于一个层次。成员变量相当于银行中的取号机,银行中的人都可以对其使用。作用域是整个程序。

语法:
变量修饰符 类型 变量名;

局部变量:在子程序中定义的变量,作用域是定义该变量的子程序。

猜你喜欢

转载自blog.csdn.net/Ellen5203/article/details/84994622
今日推荐