-
C#教程将学金实例
现在我们来做一下奖学金的实例,代码在最后同学位可以自己参照一下,接下来,我们讲解一下这些代码。 首先,声明一个student类,在类中声明三个变量分别是 protected string name; protected int age; protected decimal score; 其中name用于存储学生的名字,age用于存储学生的年龄,score用于存储奖学金的额度。 在构造函数中,将这个三个变量,分别赋值为传递进来的三个参数name,age和score,请注意,这些参数可以与变量同名或不同名,不过他们代表的不是一个概念。 接下来看声明了三个虚方法,所谓的虚方法,就是一个可以在本地类或子类中可以进行重写的方法(请参照:https://www.xin3721.com/ArticlecSharp/c23016.html),请注意,虚方法定义时,没有什么实际的内容,只是一个框架。
第二步,定义子类 public class goodstudent:student 这是用于定义奖学金的学生类 这是一个student的子类,重定了三个方法即 public override string Name { ...... } public override int Age { ...... } public override decimal Socore { ...... } 同时,大家有没有注意到,这里的子类中的构造函数,多了一个参数gbursary,这是子类与父类最大的不同,而在类里面只是能于给本类属性赋值
this.bursary =bursary;
最后,其它部分于父类大体相同,接下来就是用主类进行操作 public class MainClass { public static void Main() { student s=new student ("大明",23,32.0m); Console.WriteLine ("\t{0},\t{1},\t {2}",s.Name ,s.Age ,s.Socore ); goodstudent gs=new goodstudent ("小明",32,89.0m,0); Console.WriteLine ("\t{0},\t{1},\t{2},\t{3}",gs.Name,gs.Age ,gs.Socore,gs.bursary ); }
}
这里用父类student和子类good_student,各自声明一个对像,并且传递参数,最后将其返回值,在命令行输出。
using System;
public class student
{
protected string name;
protected int age;
protected decimal score;
public student(string name,int age,decimal score)
{
this.name=name;
this.age=age;
this.score=score;
}
public virtual string Name
{
get
{
return name;
}
set
{
name=value;
}
}
public virtual int Age
{
get
{
return age;
}
set
{
age=value;
}
}
public virtual decimal Socore
{
get
{
return score;
}
set
{
score=value;
}
}
}
public class good_student:student
{
public decimal bursary=0.0m;
public good_student(string g_name,int g_age,decimal g_score,decimal g_bursary):base(g_name,g_age,g_score)
{
this.bursary =bursary;
}
public override string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public override int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public override decimal Socore
{
get
{
if(score>80.0m)
{
bursary+=1200.0m;
}
else
{
bursary=0.0m;
}
return score;
}
set
{
score = value;
}
}
}
public class MainClass
{
public static void Main()
{
student s=new student ("大明",23,32.0m);
Console.WriteLine ("\t{0},\t{1},\t {2}",s.Name ,s.Age ,s.Socore );
good_student gs=new good_student ("小明",32,89.0m,0);
Console.WriteLine ("\t{0},\t{1},\t{2},\t{3}",gs.Name,gs.Age ,gs.Socore,gs.bursary );
}
}