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#的类图如下所示
![](http://img.blog.csdn.net/20130915104128296)
5. 析构函数(~)
不能再结构中定义析构函数,只能对类使用析构函数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
无法调用析构函数,它们是被自动调用的。
析构函数既没有修饰符,也没有参数。
C#有垃圾回收机制,所以不用再写析构函数。
6. 命名空间
namespace:用于解决类重名问题,可以看做“类的文件夹”。
如果代码和被使用的类在一个namespace则不需要using。
在不同命名空间下的调用有两种方法:写全称,即命名空间.类名;先用using引用命名空间,再调用。
7. string
string可以看做是char的只读数组。
C#中字符串有一个重要的特性:不可变性。字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char [])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。
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数组的修改也不会造成字符串的变化。
相关文章推荐
- C#和.NET基础知识——学习笔记(二)
- C#和.NET基础知识——学习笔记(四)
- C#和.NET基础知识——学习笔记(五)
- .net学习之C#基础提高 3.基础知识
- .Net及C#基础知识,面试宝典
- 黑马程序员.Net培训 C#基础知识——数据类型
- .NET面试题系列[4] - C# 基础知识(2)
- .NET面试题系列[3] - C# 基础知识(1)
- 转载的点有关.net(C#)的基础知识,备用
- .net学习之C#基础提高 1.基础知识
- .NET面试题系列[4] - C# 基础知识(2)
- .NET面试题系列[3] - C# 基础知识(1)
- C#和.NET基础小知识
- C#基础知识系列九(对IEnumerable和IEnumerator接口的糊涂认识)
- C#基础知识整理:基础知识(13) 异常
- [.NET] C# 知识回顾
- [C# 基础知识系列]专题十六:Linq介绍
- 用《叩响C#之门》复习C#基础知识 第十一章
- 基础知识系列☞C#中→属性和字段的区别
- 【C#基础知识点】——异常捕获