一起学C#(十五)

类的实例

我们定义好了一个类之后,怎样使用它呢?

在现实生活中,我们把公司的员工归成了一个类,这个类有姓名、年龄、性别等属性。公司里面的每一个员工,都是这个类里面的一个具体的人,每个人都有各自不同的姓名、年龄、性别。

下面是我们定义好的一个类,public表示可以在类的外部直接读写属性:

class Employeer
{
  public string Name;  // 姓名
  public ushort Age;  // 年龄
  public bool Sex;  // 性别
}

我们怎样通过定义好的类,把每个人的信息保存起来呢?这就要为类生成实例,每个实例对应一个员工,保存这名员工的信息。

假如公司里有一名男员工,叫张能,28岁,怎样把他的信息保存起来呢?使用new命令,可以给类生成一个新的实例,再把这些信息保存到这个实例里就可以了,如下:

Employeer zhang = new Employer();
zhang.Name = "张能";
zhang.Age = 28;
zhang.Sex = true;

这条语句,定义了一个类型为Employeer的变量,这个变量名是zhang。接下来,使用这个变量,保存了张能的信息。

因为bool类型的变量,只有两个值,true和false,在这里,我们使用true表示男性,使用false表示女性。如果是女权主义者,为避嫌,当然也可以反过来,兵无定势嘛。编程在一定程度上,是可以自由表达自我思想的。

变量zhang里面保存的就是类Employeer的一个实例。结合以前学习过的内容,这个变量是一个引用类型的变量,它的存储空间在托管堆里,张能的信息就保存在托管堆里为这个实例分配的内存中。

如果一名女员工,叫赵风,29,可以写下面的代码:

Employeer employeer = new Employeer();
employeer.Name = "赵风";
employeer.Age = 29;
employeer.sex = false;

这样,通过类的实例,就能保存每一名员工的信息了。

在程序里,每一个实例和现实中的一个具体的员工相对应。假如我是新来的,想知道张能的姓名,就会问他叫什么。在程序里,想要知道张能的姓名,就要去问与他对应的实例了。

Console.WriteLine("姓名:" + zhang.Name);
Console.WriteLine("年龄:" + zhang.Age);
Console.Write("性别:");
if (zhang.Sex)
{
  Console.WriteLine("男");
} else
{
  Console.WriteLine("女");
}

保存在变量zhang里面的实例就会告诉你张能的姓名,多大了,他是男的还是女的。完整代码如下:

using System;

namespace csdn.blog.aerosea
{
  class Program
  {
    static void Main(string[] args)
    {
      Employeer zhang = new Employeer();  // 创建一个新的实例
      zhang.Name = "张能";  // 保存姓名
      zhang.Age = 28;  // 保存年龄
      zhang.Sex = true;  // 保存性别

      Employeer employeer = new Employeer();  // 创建另一个实例
      employeer.Name = "赵风";
      employeer.Age = 29;
      employeer.Sex = false;

      // 变量zhang里面保存的是张能的信息
      Console.WriteLine("姓名:" + zhang.Name);
      Console.WriteLine("年龄:" + zhang.Age);
      Console.Write("性别:");
      if (zhang.Sex)
      {
        Console.WriteLine("男");
      }
      else
      {
        Console.WriteLine("女");
      }

      Console.WriteLine();  // 显示一个空行

      // 变量employeer中保存的是赵风的信息
      Console.WriteLine("姓名:" + employeer.Name);
      Console.WriteLine("年龄:" + employeer.Age);
      Console.Write("性别:");
      if (employeer.Sex)
      {
        Console.WriteLine("男");
      }
      else
      {
        Console.WriteLine("女");
      }

      Console.WriteLine("\n按任意键继续...");
      Console.ReadKey();
    }
  }

  class Employeer
  {
    public string Name;  // 姓名,如果不加public,无法使用zhang.Name访问数据,以下同
    public ushort Age;  // 年龄
    public bool Sex;  // 性别
  }
}

执行结果:

姓名:张能
年龄:28
性别:男

姓名:赵风
年龄:29
性别:女

按任意键继续...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值