封装:把客不雅观的事物封装成类,使用和改削便利;
感化和布局体使用要领相似,措施执行流程差别;
要点:成员变量,属性,成员要领,结构函数,成员要领的静态和非静态,定名空间,常用的访谒修饰符public大众的、parvate私有的,只有类自己可以访谒,internal默认的,同一个定名空间下可以访谒、protected被掩护的、同一个担任关系下可以访谒;
重名问题:同一个感化域下不允许呈现重名问题,最简答解释感化域就是一个花括号内,而每一个循环是差此外花括号的情况下重名是没有关系的;
1、*****成员变量最根基的“经纪人”
class student //新建类
{
private string _name; //成员变量
public string name //属性
{
get { return _name; } //return的感化就是扔给外面一个值。
//如果只有get,就只往外输出固定的值;
set { _name = value; } //如果执行语句 student.name = "abcde"; 那么这里value的值就是"abcde";
//value的感化就是从外面赋予成员变量值。
}
2、*****成员变量可以有多个“经纪人”,而且数据类型可以不一致
private bool _sex;
public bool sex
{
get{ return _sex; }
set{ _sex = value; }
}
public string sexabc
{
get { return "abcd"+ _sex; } //如果执行语句 student.name = "abcde"; 那么这里value的值就是"请输入false";
//如果执行语句 student.name = "false"; 那么这里value的值就是"abcdfalse";
set {
if(value == "false")
_sex = value;
else
_sex = "请输入false";
}
}
3、*****结构函数
class student
{
public student() { } //创建结构函数就是执行了这一步;默认不被写出来,但是真实存在;
}
student s = new student(); //这个过程叫实例化的过程;而student()这个要领就是一个结构函数;
总结:重建东西的过程就是将类实例化的过程;
实例化的过程就是执行结构函数的过程;
结构函数是在创建完类之后形成的;
4、*****成员要领
private string _name;
public string name
{
get { return _name; }
set { value = _name; }
}
public string say() //新建一个要领
{
return "啦啦啦"+_name;
}
student s = new student();
s.name = "abcd";
string str = s.say();
Console.Write(s.str); //输出的是say这个要领返回的值,此时是 啦啦啦abcd;
总结:在结构函数内可以给private赋值;如果在外面从头赋值那么就会笼罩结构函数内给private赋的值,输出新的,,如果没有赋值,那么默认输出结构函数内赋予的值;
5、*****静态要领
含有static关键字的就是静态要领;
实例化的静态无法使用静态的要领;
静态的要领属于类自己,要用类名点出来;public static int abc(){} 赋值要领是:student.abc(); student就是类名;
5、*****定名空间或者措施集
namespace;
需要引用using 空间名;
二、担任
public class fly //父类,这是个类名;
{
}
public string brid:fly //子类,类名;可以担任父级的大众用的属性;
{
}
public string little brid:brid //孙子类,类名;可以担任祖父类、父类的大众用的属性;
{
}
1、 父类、基类
2、子类、派生类
三、多态(部分)
1、public vritual class plane:brid //vritual 虚拟的 override重写
{
public override string (brid想要改削担任的要领)
{ return "aaaaa"; }
}
要领名一样是可以的,会以重载的方法显示;