根据例子来学习吧
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _02类的练习
{
public class Student
{
private string _name;//字段名
public string Name
{
get { return _name; }//这里是读取内容
set { _name = value; }//这里是写入内容
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
public void Say()
{
Console.WriteLine("我叫{0},今天{1}岁了,是{2}生",this.Name, this.Age ,this.Gender );
}
}
}
上边是创建的一个类,接下来就要在解决方案中调用这个类,以实现功能的运行。
namespace _02类的练习
{
class Program
{
static void Main(string[] args)
{
Student zsStu = new Student();
zsStu.Name = "张三";
zsStu.Age = 18;
zsStu.Gender = '男';
Console.ReadKey();
}
}
}
在这里利用构造函数来对代码进行简化处理。首先要在类里设置构造函数如下。
namespace _03类的构造函数
{
public class Person
{
public Person(string name,char gender,int age)//是类的构造方法,括号里是参数,
{
this._name = name;//指示代词,表示当前的字段,将变量的值赋值给这些字段。
this._gender = gender;
this._age = age;
}
接下来只需利用构造函数中的字段直接赋值即可。如下
namespace _03类的构造函数
{
class Program
{
static void Main(string[] args)
{
Person per = new Person("张三",'男',18);//构造函数可以有参数,new对象的时候传递函数参数即可。这里就是对类的实例化,直接对数据进行初始化。
per.Show();
Console.ReadKey();
}
}
}
在一个类中可以写很多的构造函数,函数名称相同,则成为构造函数的重载。构造函数的重载和方法差不多,方法的名字相同,功能也差不多,只不过是其中传参时的个数和类型不同而已。
还有下边的一个例子
public Person()//现在写的无参的构造函数
{
}
判断是否有构造函数
class Program
{
static void Main(string[] args)
{
//Person per = new Person();//能打出括号来就说明是有构造函数的,默认有构造函数
//写一个类,如果没有写任何构造函数,则这个类有一个默认的无参数构造函数。
}
}
通过上述例子,对类的构造方法有如下总结:
1.构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。
2.构造函数是用来创建对象的特殊方法,方法名和类名一样,一般方法则不能与类名相同。
3.构造函数没有返回值,连void都不用,这个保证它不仅什么也不用自动返回,而且根本不能有任何选择,而其他方法都有返回值,即使是void返回值,尽管方法本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。
3.构造函数不能被直接调用,必须通过new运算符在创建对象式才会自动调用,一般方法在程序执行到它的时候被调用。构造函数可以有参数,new对象的时候传递函数参数即可
4.如果不指定构造函数,则类有一个默认的无参构造函数;如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
5.构造函数可以重载,也就是有多个参数不同的构造函数。
6.认识类图,只需在解决方案右键生成类图就可以看到类图中的名称属性方法等。