黑马程序员——类,访问修饰符,属性,构造方法,命名空间,类图,params

来源:互联网 发布:网站域名注册证书 编辑:程序博客网 时间:2024/05/21 22:13
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------

l 类是抽象的概念,仅仅是模板,比如说:”人”类.

l 对象是一个你能够看得到、摸得着的具体实体

l “人”类都有:姓名\性别\年龄 属性,有说话的方法。

l 张三是一个对象,他的姓名属性的值:张三 性别的属性的值:男 年龄属性的值:20 张三会说话。

l 对象可以叫做类的实例(instance)。

l 类不占内存,对象才占内存。

定义类的语法:

[访问修饰符]class 类名

{

成员;

。。。。。。
}

在我们自己写的类中,我们在写方法时,先不用加static

下面我们定义了一个叫Person的类,这个类仅仅是人这个对象的模板。

在这个模板中规定人类对象都应该有姓名,性别,年龄属性,和SayHello的方法。

如何通过一个类来产生一个对象呢?

通过类来产生一个对象的过程,叫类的实例化。

类的实例化:

类名 实例名 = new 类名();

Person zsPerson;//定义了一个变量,这个变量的类型时Person类型。

zsPerson = new Person();//通过new关键字来产生一个Person对象,此时占用了一块空间。

zsPersonlsPerson是实例名。

访问类的属性:

实例名.属性名

访问类的方法:

实例名.方法名()

只要没有加static的方法或属性,都必须先实例化,再通过实例名.方法名或者实例名.属性来访问。

static的方法或属性,可以直接通过 类名.方法名或类名.属性来访问。

访问修饰符:

public:可以再任意地方被访问

internal:只能在本项目中被访问

private:只能在本类中被访问

protected:只能在本类和子类中被访问

在类这个级别,不写访问修饰符默认为internal

在一个类中定义变量或者方法时,没有写访问修饰符,则默认为private

属性:

通俗点说,就是定义一个public的具有get/set方法的变量。这个变量时用于保护一个私有变量。

l 属性是为了保护与之相对应的字段的.保证对字段的读取和赋值符合要求.

l 属性可分为:读写、只读、只写。

l 允许外部访问的变量一定要声明为属性。

读写属性:具有set/get方法的属性

只读属性:只有get方法的属性。这个属性只能读取,不能写入。

只写属性:只有set方法的属性。这个属性只能写入,不能读取。(用的很少)

当我们实例化一个类时,系统会自动对这个类的属性进行初始化。

数字类型初始化成0/0.0

string类型初始化成:null

char类型初始化成:\0

构造方法:

使用构造方法的好处:

l 对多个属性进行复制时,不需要重复的写实例名。

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

l 和第2类似,在创建对象时,对只读属性进行初始化。

当我们定义好一个类后,如果我们没有写构造方法,那么系统会自动给我们加一个默认的无参数的构造方法。在这个构造方法中什么也不做,我们也看不到。

我们可以自定义一个构造方法:

自定义一个构造方法后,不再有默认的无参构造方法。如果需要自己写一个。

构造方法是一个特殊的方法,她的名字和类的名字相同,并且没有返回值。连void都得省略。

构造方法用来创建对象,即在构造方法中对对象进行初始化。

构造方法也可以重载,也就是有多个参数不同的构造方法。

命名空间:

l namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。

l 如果代码和被使用的类在一个namespace则不需要using

l 在不同命名空间下的类调用有两种方法:1.写全称 命名空间.类名 2.using引用命名空间,再调用。

l 命名空间是逻辑上的划分,不是物理上的划分。

类图:

“—”表示是私有的属性。private

+”表示公有的属性。public

下图是.net中的类图。

析构函数(*):清理垃圾用的函数,在C#中不需要了,已经有了垃圾回收机制。

l 不能在结构中定义析构函数。只能对类使用析构函数。

l 一个类中只能有一个析构函数。

l 无法继承或重载析构函数。

l 无法调用析构函数。它们是被自动调用的。

l 析构函数即没有修饰符,也没有参数。

和构造函数(方法)类似。

是最后一个被调用的方法。

params

params可以把n个参数变成一个数组参数。

可变数组必须作为最后一个参数。


原创粉丝点击