您的位置:首页 > 编程语言 > C#

C#和.NET基础知识——学习笔记(三)

2013-09-15 10:42 363 查看
面向对象的概念
1. 类和对象

类是模子,确定对象将会拥有的特征(属性)和行为(方法)。

类是对象的类型,类是抽象的概念。

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

语法:

[访问修饰符] class 类名

{

成员

……

}

访问修饰符

C#中有4个访问修饰符:public,internal,private,protected

public:可以在任何地方被访问;

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

private:只能在本类中被访问;

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

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

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

问题:Java、C++中类的默认访问修饰符是什么,变量和方法的默认访问修饰符是什么?

2. 属性

属性:定义一个变量,在这个变量中含有get/set两个方法,这个变量是用于保护私有变量的,保证对变量的读取和赋值符合要求,比如:

private int age;

public int Age

{

set

{

return age;

}

get

{

//这里有个关键字value,value中就存储着用户赋的那个值

if(value >= 0)

{

age = value;

}

else

{

age = 0;

}

}

}

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

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

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

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

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

3. 构造方法

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

数字类型初始化为0/0.0;

string类型初始化为null;

char类型初始化为\0,即ASIIC码的0;

构造方法的好处:

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

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

③在创建对象时,对只读属性进行赋值;

构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。

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

构造方法可以有参数,new对象的时候传递函数参数即可。如果不指定构造方法,则类有一个默认的无参数的构造方法;如果知道那个了构造方法,则不再有默认的无参数的构造方法,如果需要无参数的构造方法则需要自己来写。构造方法可以重载,也就是可以有多个参数不同的构造方法。

4. C#的类图和通用类图

C#的类图如下所示



5. 析构函数(~)

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

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

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

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

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

C#有垃圾回收机制,所以不用再写析构函数。

6. 命名空间

namespace:用于解决类重名问题,可以看做“类的文件夹”。

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

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

7. string

string可以看做是char的只读数组。

C#中字符串有一个重要的特性:不可变性。字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。

如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char [])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: