比较简单,不过是很认真写的,希望对看到的同学有所帮助!
首先说下类:
类呢,就是一类事物的抽象,抽象的过程中把,这类事物共有的、一般性的特征、行为啦,抽象成类中的属性和方法。
举个例子:
就说人吧,可以把人作为一个类,人这个类的特征:两条腿、两个胳膊、两个眼睛等这些都是一说到人,咱们都能想起的一般特征,这些都是人这个类的属性。
然后是行为,走路、吃饭、喝茶、打游戏等等,这些都是人能够进行的活动,这些都是人的行为,都可以作为人这个类中的方法。
再说说对象:
首先,对象就是类的实例化,也就是说,对象就是类范围内的具体的某一个。
比如说吧:
还说人这个类吧,人这个类中的某一个具体的人就是这个类的一个对象。比如:你、我、小张、你女朋友,这些都是人这个类中的一个具体的人,这些都是人这个类实例化出的一个对象。实例化出的对象,有类中的所有基本属性、也可进行类中的所有的行为。
创建类是应该注意的事项;
创建之前,先分析有到底有多少个对象,再通过对象分析去确定有多少个类,接下啦,去确定类的详细内容:属性、方法、行为等等......
当一个类创建好以后,会有一个默认的无参数的构造函数
构造函数可以重载,构造函数访问修饰符,一般都是public
1.构造函数名必须与类名一致,可以有参数,也可以没有参数,有参数的,实例化时,必须要有传值
比如;
无参数的: public Student(){} 实例化: Student stu = Student();
有参数的:
public Student(string _name1, int _no1)
{
this.Name = _name1;
this.No = _no1;
}
这是实例化对象是语法应该是这样的
Student stu = Student("name",110);
2.构造函数下不能有任何返回值,哪怕void也不行
3.构造函数的访问修饰符,一般都是public例如:
public Student(string _name1, int _no1)
{
this.Name = _name1;
this.No = _no1;
}
这是实例化对象是语法应该是这样的
Student stu = Student("name",110);
当然也可以是private|protected,不过或两者不常用,如果构造函数访问修饰符是private|protected;则实例化时就不能直接用构造函数实例化,这时候就需要,在类中创建一个方法来调用私有的或受保护的构造函数,向外返回一个实例化的对象
例如:
private Student(string _name1, int _no1)
{
this.Name = _name1;
this.No = _no1;
}
public static Student get_student(string _name,int _no)
{
return new Student(_name,_no);
}
这时想用原来的方法实例化对象,就会出错,可以自己试试。
正确的实例化对象是语法应该是这样的
Student stu = Student.get_student("name",110);
4.如果手动添加一个构造函数,这是会将默认的构造函数覆盖
例:
我创建一个Student的类
class Student
{
public string _name;
public int _no;
private Student(string _name1, int _no1)
{
this.Name = _name1;
this.No = _no1;
}
public static Student get_student(string _name,int _no)
{
return new Student(_name,_no);
}
public string Name
{
get
{ return _name; }
set
{ _name = value; }
}
public int No
{
get
{ if (_no < 0)
return _no;
}
set
{ if (value < 3)
{ _no = value; }
else
{ Console.WriteLine("输入的值{0}过大", value);
_no = 3; }
}
}
public void SayHi()
{
Console.WriteLine("你好,我是{0}号\n我叫{1}", this.No, this.Name);
}
}
你应该发现啦,我的No,Name两个属性中的get(),set()地方法是不一样,不急,这正是我想给你聊的
Get()方法,是取值的函数,通过这个函数,可以去类中相应字段的值,就是说get()是对应字段对外部的一个接口,可以把相应的字段设置为private|protected,然后通过,它的get()方法访问它,当然,因为get()是一个方法,它也就有一般方法的所有功能,可以执行各种操作,比如可以根据一定的条件对值进行判断、重置,也可以根据返回的值的情况,判断是否允许把这个值返回去,对之进行有选择的拦截和更改。
Set()方法,是对对象中相应的属性的赋值函数,通过这个函数,可以给对象中的属性或字段进行赋值,当然和上面讲述的一样,也可以对将要赋值的字段的范围进行限定,然后根据限定条件进行实际赋值。