C#面向对象基础

来源:互联网 发布:淘宝电子积木 编辑:程序博客网 时间:2024/06/05 07:47
-------   Windows Phone 7手机开发.Net培训、期待与您交流! -------

1.类是对象的类型,对象是类的实例,类是不占内存的,对象才占内存。


2.类的定义:

[访问修饰符] class类名//访问修饰符:public,private,internal,protected,缺省时认为private

{

成员;//字段,属性,方法等

……

}

Public:可以在任意地方被访问

Private:只能在本类中被访问

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

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

 

3.类的实例化

类名 实例名=new 类名();//例如Persontom=new Person();

New关键字:实例化类,并在内存中给实例分配空间。

 

4.字段和属性:

private intage;//字段,常为private,防止类外部直接操作变量public int Age//属性,定义一个public的具有set/get方法的变量,用于将private字段封装(进行变量初始化控制),用于类外部访问变量{    set    {//value关键字就是存储用户赋的那个值        if (value > 0)            age = value;        else            age = 0;    }    get    {        return age;    }}
 

5.构造函数和析构函数:

用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void也不需。如果不指定构造函数,则编译器会加一个无参的构造函数,如果自定义构造函数,则编译器不会在自动生成构造函数。构造函数定义:[访问修饰符]方法名(参数){}

  1. 对多个属性进行赋值时,不需要重复写实例名。
  2. 可以保证用户在new一个对象时必须对某一个属性进行赋值
  3. 在创建对象时,对只读属性初始化

方法重载(overload):

方法名必须相同,返回类型、参数必须不同(参数个数,参数类型)

析构函数(C#基本上不用):~方法名(){}

不能在结构中定义析构函数,只能对类使用析构函数;一个类只能有一个析构函数;无法继承和重载析构函数;无法调用析构函数,它是自动被调用的(最后一个被调用的函数,用于垃圾回收);析构函数既没有修饰符,也没有参数。

 

6.参数修饰符

无修饰符:默认按值传递,方法收到原始数据的副本。

Ref:按引用传递,参数在传递前被初始化,必须将参数作为ref 参数显式传递到方法。

Out:按引用传递,参数在返回前被初始化,必须将参数作为out 参数显式传递到方法。

Params:参数数组,实现了参数数目可变。当一个方法声明了一个Params参数后,其后就不允许再有参数,但是其前可以有其他参数。

 

7.命名空间(namespace):

用于解决类重名问题,可以看做“类的文件夹”;命名空间可以嵌套命名空间;system是.net的根命名空间;在不同命名空间下类的调用方法:1、写全称:命名空间.类名;2、先using应用命名空间,在直接调用类

 

8.字符串(String,SringBuilder):

String类是一种传统的修改字符串的方式,它可以完成把一个字符串添加到另一个字符串上的工作,但是在.Net 框架下,这个操作实在是划不来.因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后再创建一个String对象,并读取内存中的数据赋给该对象.这一来二去的,耗费资源和时间。

StringBuilder 类(位于System.Text命名空间下)提供的Append方法,能够在已有对象的基础上进行字符串的修改,简单而且直接。String在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder则不会,因此进行大量的字符串拼接或频繁对某一字符串操作时最好使用StringBuilder。