黑马程序员--面向对象基础

来源:互联网 发布:u盘扩容软件 编辑:程序博客网 时间:2024/04/29 19:46

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------

 

     用生活中的事物来理解面向对象

1)类: 生活中相似的事物分为一类

2)对象:生活中具体存在的事物

3)属性:事物的各种特征

4)方法:事物的各种行为

●面向对象

1)类是抽象的概念,类是对象的类型;对象可以叫做类的实例(Instance);类不占内存,对象占内存;

2)对象的ToString()默认值为:命名空间.类名,可以通过重写(override)ToString()方法进行修改;

3)定义类的语法:

[访问修饰符] [static] class类名

       {

              //类的成员

}

4)通过类来产生一个对象的过程,叫做类的实例化:

       语法:类名实例名=new类名();

在这个过程中,系统会自动对这个对象的属性进行初始化:数字类型的属性被初始化为0/0.0string类型的属性被初始化为nullchar类型的属性被初始化为\0ASCII码的0);

5)对象的属性:

       属性的作用:保护与之相对应的私有字段,保证对该字段的读取和赋值符合要求

定义属性的语法:

       private数据类型字段名(小写);

       public 数据类型属性名(大写)

       {

              get{return字段名;}

              set{字段名=value}

}

只读属性:在属性中不写set

6)构造方法(函数):

1)构造方法的作用:

对多个属性进行赋值时,不需要重复的写实例名;

可以保证用户在new一个对象的时候必须对某一个属性进行赋值;

可以在new一个对象的时候对只读属性进行初始化;

2)构造方法定义的语法(方法名与类名相同且没有返回值):

       [访问修饰符]类名([参数]

       {

              //构造方法的成员;(指示代词this表示当前的类)

}

注意:静态的构造方法不能有访问修饰符和参数,定义的语法:

static 类名()

{

      //构造方法的成员;

}

3)要实例化一个类,必须调用该类的构造方法;

当定义好一个类后,如果没有写构造方法,系统会默认加上一个无参数、无成员的构造方法,例如:类名实例名=new类名();

如果自己写了构造方法,则不再有默认的构造方法;

4)构造方法可以重载

7)了解析构函数(~):

析构函数没有访问修饰符和参数;只能对类使用析构函数,一个类只能有一个析构函数;无法继承或重载析构函数;无法调用析构函数,它是被自动调用的;

8)通用类图:

    类名:Person

-namestring

+Namestring

-ageint

+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培训、期待与您交流! ----------------------

原创粉丝点击