类与类的实例化
类
- 类的定义
类就是具有相同的属性和功能的对象的抽象的集合
- 声明类的格式:
类名 对象名 = new 类名()
- 注意事项:
1.类名称首字母大写,多个单词则各个单词首字母大写。
2.对外公开的方法要用
public
修饰符
类的实例化
实例,就是一个真实的对象
类的实例化就是创建一个真实的对象
案例
- 首先实现这样一个功能,点击一个按钮,会弹出小猫的叫声“喵”的提示框。
不使用函数:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("喵");
}
使用函数:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(Shout());
}
String Shout()
{
return "喵";
}
使用函数的优点:代码复用性强,易修改,易拓展。
- 现在我想实例化一个小猫,实现在其他窗体也可以使用
shout()
。
声明小猫类:
class Cat
{
public string Shout()
{
return "喵";
}
}
调用小猫shout()方法:
private void Button_Click(object sender, RoutedEventArgs e)
{
Cat cat = new Cat(); //实例化一只小猫
MessageBox.Show(cat.Shout()); //调用cat的shout()方法
}
将Cat
实例化后,我们可以在需要它的地方调用它的非私有方法,优点是:将有关该对象的属性和行为封装成一个单独的类,可以体现后面的面向对象三大特性之一封装性的优点
构造方法
-
构造方法的定义:
构造方法也叫构造函数,就是实例化对象之前对类进行初始化,
-
构造方法的格式:
默认格式:
类名(){ }
自定义格式:
修饰符 类名(参数列表){ 方法体 }
-
注意事项:
1.构造方法与类同名,无返回值,也不需要
void
,在new
时调用。2.所有类都有构造方法,如果你不定义则编译器会自动生成空的构造方法(无参构造),如果你定义其他构造方法(无参构造和有参构造均可),那么编译器自动生成的无参构造将失效。
案例
- 我们需要实例化一只名字叫
养乐多
的小猫,并在按下按钮时说出自己的名字。
声明小猫类:
class Cat
{
//属性
private string name;
//无参构造
//Cat(){}
//有参构造
public Cat(String name)
{
this.name = name;
}
//行为
public string Shout()
{
return "我的名字叫"+name+" 喵~";
}
}
让小猫说出自己的名字:
private void Button_Click(object sender, RoutedEventArgs e)
{
Cat cat = new Cat("养乐多");
MessageBox.Show(cat.Shout());
}
方法重载
-
方法重载的格式:
1.方法名相同,参数列表不同
函数名(){
}
函数名(参数列表1){
}
函数名(参数列表2){
方法体
}
-
注意事项:
1.所有方法都可以重载
2.在方法重载时,必须要方法名相同,但参数类型或个数必须要有所不同
案例:
- 给小猫类增加一个重载函数,要求重载方法有参数,有方法体。
声明小猫类
class Cat
{
//属性
private string name;
//构造方法
public Cat(){}
//重载构造方法
public Cat(String name)
{
this.name = name;
}
}
方法重载的优点是:在不改变原方法的基础上,增加新功能,提供了函数可拓展的能力。