---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------
● 用生活中的事物来理解面向对象
1)类: 生活中相似的事物分为一类
2)对象:生活中具体存在的事物
3)属性:事物的各种特征
4)方法:事物的各种行为
●面向对象
1)类是抽象的概念,类是对象的类型;对象可以叫做类的实例(Instance);类不占内存,对象占内存;
2)对象的ToString()默认值为:命名空间.类名,可以通过重写(override)ToString()方法进行修改;
3)定义类的语法:
[访问修饰符] [static] class 类名
{
//类的成员
}
4)通过类来产生一个对象的过程,叫做类的实例化:
语法:类名实例名=new 类名();
在这个过程中,系统会自动对这个对象的属性进行初始化:数字类型的属性被初始化为0/0.0;string类型的属性被初始化为null;char类型的属性被初始化为\0(ASCII码的0);
5)对象的属性:
属性的作用:保护与之相对应的私有字段,保证对该字段的读取和赋值符合要求
定义属性的语法:
private数据类型字段名(小写);
public 数据类型属性名(大写)
{
get{return字段名;}
set{字段名=value;}
}
只读属性:在属性中不写set;
6)构造方法(函数):
(1)构造方法的作用:
对多个属性进行赋值时,不需要重复的写实例名;
可以保证用户在new一个对象的时候必须对某一个属性进行赋值;
可以在new一个对象的时候对只读属性进行初始化;
(2)构造方法定义的语法(方法名与类名相同且没有返回值):
[访问修饰符] 类名([参数])
{
//构造方法的成员;(指示代词this表示当前的类)
}
注意:静态的构造方法不能有访问修饰符和参数,定义的语法:
static 类名()
{
//构造方法的成员;
}
(3)要实例化一个类,必须调用该类的构造方法;
当定义好一个类后,如果没有写构造方法,系统会默认加上一个无参数、无成员的构造方法,例如:类名实例名=new 类名();
如果自己写了构造方法,则不再有默认的构造方法;
(4)构造方法可以重载
7)了解析构函数(~):
析构函数没有访问修饰符和参数;只能对类使用析构函数,一个类只能有一个析构函数;无法继承或重载析构函数;无法调用析构函数,它是被自动调用的;
8)通用类图:
类名:Person |
-name:string +Name:string -age:int +Age:int |
+SayHi():void -Get:int |
●访问修饰符
1) private:私有成员,在本类的内部可以访问
2) protected:保护成员,在本类的内部和继承类中可以访问
3) internal:当前程序集内可以访问
4) public:公共成员,完全公开,没有访问限制
在类的级别,不写访问修饰符,默认为internal
在类的里面,方法的外面(包括方法),不写访问修饰符,默认为private
● 命名空间(namespace)
1) 命名空间的作用:解决类重名的问题,可以看做“类的文件夹”;
2) 在同一命名空间下的类可以直接被访问;
访问其它命名空间下的类则有2种方法:
(1) 通过using引用对方的命名空间;
(2) 写全称:命名空间名.类名;
3).net中的命名空间是一种逻辑上的层次关系;System是根命名空间;
---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------