提起面面相对编程想到的肯定是对象和类这个概念。
我属于那种接收能力不是很强的学生,第一次老师讲到类这个概念我听的云里雾里,可以说是看了很多代码之后才勉勉强强理解类到底是个什么东西。
简单来说类可以说是一个方法的集合,用关键字class表述。创建类的时候首字母需要大写,这是程序的一种规范。当然你也可以不去大写被其他人看到不过就会感觉你是外行人罢了。
Class Cat
{
public string Shout()
{
return "喵" ;
}
}
上面说了,类里面放的是一个个的方法,方法也可以叫函数,是你想要去实现效果的代码的核心,也是程序的灵魂所在。当然也可以不放进类里面,但是我们每个人都知道分类后的东西比乱七八糟的东西看着会舒服很多。
上面写了一个Shout的方法,实现了猫叫,有猫叫肯定会有猫的一个个体存在,但是代码里面并没有猫,所以我们需要去创建一只小猫具体代码是这个需要在main函数中去实现
Cat cat1 = new Cat () ;
这个时候猫cat1就是一个对象,这就是面向对象编程最基本的模式。 我们用这个对象和方法Shout连接起来 cat1.Shout() 这样就实现了一只猫 喵 的叫了一声,这个过程叫做方法的调用 。这就是一个简单的完整的程序。在计算机中实现一声猫叫。
我们创造了小猫一号,当然想为它起一个好听的名字,这个时候该怎么办呢?这就涉及到构造方法的概念了。
构造方法,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new的时候调用。其实也就是说所有的类都是构造方法。
这也就是说在类创建的时候就是调用构造方法的时候了。 在‘ Cat cat1=new Cat();’中Cat()其实就是构造方法。
Class Cat
{
string name=" " ;
public Cat(string name)
{
this.name=name; //前面的name是上面定义的name,后面的name是参数name。
}
public string Shout()
{
return "我的名字叫做"+name+"喵~";
}
}
调用:
Cat cat1=new Cat("咪咪");
cat1.Shout();
但是有的小猫我们不想给它起名字怎么办呢?这就涉及到方法重载这个概念了。
Class Cat
{
string name=" " ;
public Cat(string name)
{
this.name=name;
}
public Cat() // 将构造方法重载
{
tihis.name="无名";
}
public Cat(string firstname, string lastname ) // 用构造方法给小猫起名和姓
{
tihis.name=firstname+lastname;
}
public string Shout()
{
return "我的名字叫做"+name+"喵~";
}
方法重载就是在不改变原方法的基础上,增新功能。方法重载提供方法的可扩展能力。
原文:https://www.cnblogs.com/PeterRen/p/14589354.html