---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------
类是封装数据的基本单位,是一组具有相同数据结构和相同操作的对象的集合。
我们将类的实例称为对象,一旦创建了一个对象,就可以调用对象的属性,方法和事件了。
类和对象的区别就是:如果把“电脑”看做是一个类的话,那么“每一台电脑”就是一个对喜爱那个。注意:要使用对象,必须先定义类,然后再创建对象。
(一),类的声明
在C#中,使用class来定义类。
语法:
[访问修饰符] class 类名称 [: [基类] [,接口序列]]
{
[字段声明]
[构造函数]
[方法]
[事件]
}
注意:[]中的内容为可选项,可省略或任选其一,当两者都有时,先基类后接口。“:”后面表示被继承的类或接口。
例如:
class person
{
public string name;
public int age;
public char sex;
public void SayHello()
{
Console.WriteLine("我叫{0},今年{1}岁了,是{2}生", name, age, sex);
}
}
(二),对象的创建以及如何访问这个对象的功能
通过类来产生一个对象的过程,叫类的实例化。
语法:类名 实例名 = new 类名()
访问类的属性:
语法:实例名.属性名
访问类的方法:
语法:实例名.方法名();
例如:在Program类中访问上个例子中person类中的功能。
class Program
{
static void Main(string[] args)
{
//创建一个person类的实例
person p = new person();
//访问p实例的属性
p.name = "lli";
p.age = 18;
p.sex = '男';
//访问p实例的方法
p.SayHello();
Console.ReadKey();
}
}
(三),构造函数
构造函数是一个特殊的方法。用于在创建对象时对字段进行初始化。在每创建一个对象,都会先调用new关键字后面指明的构造函数。
例如:person p = new person();
注意: person()就是被调用的构造函数。
构造函数的特点:
1)每个类至少有一个构造函数。若代码中没有构造函数系统就会不自动为其提供一个默认的构造函数。
2)一个构造函数总是和它的类名相同。
3)构造函数不包含任何返回值。
4)构造函数总是public的。
语法:public 类名([参数序列])
(1),默认构造函数
如果在类中没有写构造函数,系统就会自动为其添加一个默认的构造函数。默认的构造函数没有参数。如果类中定义了构造函数,则初始化工作就由程序员来完成。
(2),重载构造函数
在一个类中的多个方法中都要用到某一个数据成员,而该成员的值必须从其他类中传递过来。这时,如果在使用无参的构造函数就不行了,所以我们就要使用带参数的构造函数,也叫重载(overloading)构造函数.
例如:
class Program
{
static void Main(string[] args)
{
//创建一个person类的对象,调用无参构造函数
person p = new person();
//调用带参数的构造函数
person p1 = new person("张三", 12, '男');
p1.SayHello();
Console.ReadKey();
}
}
//创建一个类
class person
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
char sex;
public char Sex
{
get { return sex; }
set { sex = value; }
}
//无参的构造函数
public person()
{
Console.WriteLine("调用了无参构造函数");
}
//带参数的构造函数
public person(string name,int age,char sex)
{
Console.WriteLine("调用了带参数的构造函数");
//给属性赋值
this.name = name;
this.age = age;
this.sex = sex;
}
//定义一个方法
public void SayHello()
{
Console.WriteLine("我叫{0},今年{1}岁了,是{2}生",name,age,sex);
}
}
---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------