类包含数据和对数据的操作。
类的数据成员包括:常量、成员变量(字段、域)、方法(包括构造函数,是特殊的方法)、事件、属性成员、代码属性、索引、操作符(运算符)、构造器(构造函数)、折构器(折构函数)
属性与方法的区别:
属性不能有括号,参数,不能使用void类型。
索引:
应用方式与数组很相似,使用this关键字。
public string this[index]
操作符(运算符):
通过重载实现了类(类不同实例对象)之间相同数据类型的运算。
构造器、折构器:
构造器对类的实例对象进行初始化,折构器正好相反 ,能删除类的实例对象(由内存自动管理来实现)
构造函数的特点:
1。每个类至少有一个构造函数
2。构造函数总是和它的类名相同
3。总是public,且没有返回值,不能使用数据类型关键字
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。为了适应需要。
变量有如下种类:
1。静态变量:static修饰,类的所有成员共享这个变量,当类定义了两个对象时,他们也共享这个变量,一个成员对其改变,其他的使用时是改变后的值。 类名.静态变量
2实例变量:也叫普通变量,没有static修饰。this.实例变量
3局部变量:定义在方法、事件或构造函数中的变量。只在{}范围中有用。
4值参数:声明前没有ref或out修饰符的参数。通过复制来完成的,没有影响到原来的数据。
5形式参数:有ref或out修饰符的参数。直接指向了实例变量,对与形式参数的修改直接作用与该实例变量,发生同步变化。在调用的时候前面也要加上ref。
public static double area(ref int a,ref int b)
{}
static void main()
{
int a1,b1;
a1=5;b1=6;
area(ref a1,ref b1);
}
6输出参数:声明前有out修饰符。直接指向了传递到该方法的实例变量,对于输出参数的饿变化会直接反映到实例变量中。输出参数可以返回多个值,而形参只能有一个返回值。
7数组元素
new 关键字:创建对象实例,并调用构造函数进行初始化。
访问修饰符:
public存取访问不受任何限制
private只能在此类中访问,可以通过定义属性,来实现外部对私有成员的访问。
protected类和继承此类的子类都可以存取。
internal在当前项目中可以存取。一般用语组件的开发,因为可以是组件一私有方式工作,该醒目外的代码无法访问。
string是unicode,每个英文字母和汉字都是占两个字节。但计算字符串长度时,每个英文字母和汉字的长度多是1。
抽象类、接口、委托、事件
显示多态的方式:
1。通过继承来实现,重写基类中的成员来提供不能的功能
2。通过抽象类来实现多态性。在继承类中重写已实现的成员
3。通过接口来实现多态。多个类可以实现相同的接口。
抽象类:
不能实例化,成员部分或全部可以不实现,但必须在继承类中实现,抽象类中的成员可以被重写。
抽象类可以包括抽象成员,但非抽象类不能包括抽象成员。
接口:
与抽象类很相似,但接口不提供实现,接口的功能完全由类实现。
public abstract class v
{
public abstract double volume(double r,double h)
}
public class sphere:v
{
public override double volume(double r,double h)
{
return 4*pi*r*r*r/3;
}
}
public interface Test
{
int sum(int x,int y);//不能有{}和声明为public,默认已经是public
}
class MyTest:Test
{
成员变量;
构造函数;
public int sum(int x,int y)
{
return x+y;
}
}
class MainClass
{
public static void main()
{
MyTest a =new MyText();
a.sum(1,2);
//或者定义接口
Test b =new MyTest();
b.sum(1,2);
}
}