1、class关键字定义类。类的主体包含方法和字段。
class Cirle
{
int radius;
double Area()
{
return Math.PI*radius*radius;
}
}
2、创建类实例使用关键字new
Circle c;//声明变量c
c = new Circle();//创建类实例
3、控制可访问性
关键字 private 私有的,只能从类内部访问,同一类型的不同实例也可以访问私有字段。私有只的是在类别上的私有,而不是在对象上的私有;
关键字 public 公共的,可以在类外部访问。
如无关键字,则默认为私有,因此可访问性应显示声明。
公共标识符命名以大写字符开头,私有标识符以骆驼命名法命名。
4、使用构造器
构造器是在创建类实例时自动运行的公共的方法,与类同名,但无返回值。构造器的本质还是方法。
class Cirle
{
int radius;
double Area()
{
return Math.PI*radius*radius;
}
public Circle()//构造器
{
radius = 0;
}
}
5、重载构造器:和方法重载一样
class Cirle
{
int radius;
double Area()
{
return Math.PI*radius*radius;
}
public Circle()//默认构造器
{
radius = 0;
}
public Circle(int initialRadius)//重载的构造器
{
radius = initialRadius;
}
}
一旦为类写了任何构造器,编译器就不再自动生成默认构造器,所以必须自己写一个默认构造器(无参构造器)
6、分部类:类可能包含大量的方法,字段,构造器等等,可以将类的源代码分布到不同的文件中,要使用关键字partial定义类的不同部分。
文件1
partial class Cirle
{
int radius;
double Area()
{
return Math.PI*radius*radius;
}
public Circle()//默认构造器
{
radius = 0;
}
}
文件2
parpial class Cirle
{
public Circle(int initialRadius)//重载的构造器
{
radius = initialRadius;
}
}
7、关键字this,当参数与字段重名时,用this限定字段
this.x = x;//第一个x是字段,第二个是参数
8、解构器:检查对象(类的实例)并提取它字段的值。
必须命名为Deconstruct
必须是void方法
必须获取一个或多个参数,这些参数由对象中的字段的值填充
必须用out修饰符加以标记
方法主体向参数赋值
class Cirle
{
int radius;
double Area()
{
return Math.PI*radius*radius;
}
public Circle()//默认构造器
{
radius = 0;
}
public Circle(int initialRadius)//重载的构造器
{
radius = initialRadius;
}
pubulic void Deconstruct(out x,out y)//解构器
{
x = this.x;
y = this.y;
}
9、如果方法从属于一个类,而且操作的是这个类的某个实例的数据,则这个方法被称为实例方法。
10、通常提供了有用的、和类的实例无关的的功能的方法称为工具方法或实用方法。
11、静态方法和数据
所有的方法都必须在类的内部声明,用关键字static 声明的方法或字段,可以通过类名调用或访问。比如Math.sqrt和Math.PI
*静态方法:也称为类方法,不依赖类实例,不能在其中访问类的任何实例字段或实例方法,只能访问标记为static的其他方法或字段。
比如Math.sqrt。
*静态字段:在所有类实例之间共享(非静态字段只能局部与类实例),比如Math.PI
*关键字const声明数值、字符串、枚举类型的常量,常量是特殊的静态字段。
12、匿名类:以new关键字开头,跟一对{};匿名类只能包含公共字段,不能是静态,字段必须全部初始化,不能包含任何方法。
var child = new {Name = "John",Age = "12"};