概念理解——类与实例 |
说到类我们不得不说到对象,那什么是对象呢?这里的对象比较有意思,不是之男女朋友的对象哦!哈哈,一切事物皆对象,即所有的东西都是对象,对象是可以看到、感觉到、听到、触摸到,尝到、或者闻到的东西。
对象:(Object-Orietend Programming)对象是来自一个包含的实体,用一组可识别的特性和行为来标识。说了这么多那么类和实例是什么呢?
类:具有相同的属性和功能的对象的抽象的集合。
注:1.类名称首字母大写,多个单词则各个首字母大写
2.对外公开的方法需要用“public”修饰符
实例:就是一个真实的对象。比如:我的花儿,刘冉亭的那朵花儿,特指到具体的那朵花。
实例化:就是创建对象的过程,使用new关键字来创建
举个栗子:有好多“花”,我送给你的那朵花。“好多花”就是类,我送的“那朵花”是类的实例。
代码实现:
class Cat
{
public string shout()
{
return "喵";
}
}
private void button1_Click(object sender, EventArgs e)
{
Cat cat = new Cat();//Cat cat声明一个cat的对象,对象名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());
}
方法重载 |
对于上面代码中的小猫名字叫“小可爱”,可是我如果没有给小猫起好名字该怎么办呢?这时候就用到方法重载了
方法重载的作用:提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型(构造方法可以重载,普通方法也可以重载)
在上面的代码中加上一句就可以了
public Cat()
{
this.name ="待我想想";//将构造方法重载
}
属性和修饰符 |
在第一个例子的时候小猫就叫了一声,如果小猫多叫几声该怎样实现呢?叫几声不是必须实例化的时候就声明的,可以之后在规定,这时可以用“属性”。那么属性到底是什么呢?
属性:属性是一个方法或一对方法,但在调用它的代码看来,他是一个字段,即属性适合于字段的方式使用方法调用的场合。
字段:字段是存储类要满足其设计所需要的数据,字段是与类相关的变量。
private int shoutNum = 3;//声明一个内部字段private,默认叫的次数3
public int ShoutNum
{
//ShoutNum属性,注意public,当中有两个方法
//get表示外界调用时可以得到shoutNum的值
//set表示外界可以给内部的shoutNum赋值
get;
{
return shoutNum ;
}
set
{
shoutNum =value ;
}
}
看点一:在代码中可以看到public和privat是不一样的,两个都是修饰符,那么他们有什么区别呢?
public:表示所修饰的类成员可以允许其他任何类来访问,俗称公有的
privat:表示只允许同一个类中的成员访问,其他类包括它的子类无法访问,俗称私有的。
注:
1.在类中的成员没有加修饰符,则被认为是private
2.通常字段都是private,即私有的变量,而属性都是public,即公有的变量
看点二:属性的两个方法get和set
get:get访问器返回与声明的属性相同的数据类型,表示调用时可以得到内部字段的值或引用
set:set访问器没有显式设置参数,但它有一个隐式参数,用关键字value表示,他的作用是调用属性时可以给内部的字段或引用赋值。
小插曲:在这里一定注意字母的大小写
实现的时候一直二义性的错误,看了看没什么问题,因为C#中区分大小写,所以一定要注意!!!