同步学习C#笔记12(类和对象)

假设我们想要保存一个班级中每个学生的姓名、年龄、语文考试成绩等信息。当需要很多同学的信息时,我们可以用数组保存。

 static void Main(string[] args)
 {
     //姓名数组
     string[] names = new string[5] { "小明", "小红", "小军"," "," " };
     //年龄数组
     int[] ages = new int[5] { 8, 7, 7, 0, 0 };
     //语文成绩数组
     int[] ChineScore = new int[5] { 100, 99, 98, 0, 0 };

     //用\t制表符绘制表格形式
     Console.WriteLine($"姓名:{names[0]}   \t 年龄:{ages[0]} \t  语文分数:{ChineScore[0]} ");
     Console.WriteLine($"姓名:{names[1]}   \t 年龄:{ages[1]} \t  语文分数:{ChineScore[1]} ");
     Console.WriteLine($"姓名:{names[2]}   \t 年龄:{ages[2]} \t  语文分数:{ChineScore[2]} ");
     Console.WriteLine($"姓名:{names[3]}   \t 年龄:{ages[3]} \t  语文分数:{ChineScore[3]} ");
     Console.WriteLine($"姓名:{names[4]}   \t 年龄:{ages[4]} \t  语文分数:{ChineScore[4]} ");

 }

这样写完全符合题目要求,但是硬要说问题的话就是不太自然。

上述代码中,因为使用三个数组来管理所有信息,所以感觉名字是一个数组,年龄是一个数组,分数是一个数组。那么小明的所有信息都是下标为0的数组,以此类推,但是数组之间没有什么紧密的联系,相反名字与名字之间,年龄与年龄之间倒是因为在同一个数组中紧密联系着,这样显得不够自然。应当让每个学生自己的信息结合在一起,这样当某一个同学需要移除可以将该同学所有信息同名字一同移除,而不是移除名字,再移除年龄等信息。这与变量的生命周期相似,学生的姓名应于他们其他的个人信息紧密联系,同生同灭。

这亦是一个数据的归属问题,学生的数据应该归属于学生,这样的设计才最清楚最易理解。

那么如何才能使学生自身的数据结合在一起呢?这就需要今天所讲的新语法:class

class Student
{
    public string name;
    public int age;
    public int ChineseScore;
}

通过这样的定义,可以将我们需要的元素保存在一个student这个类函数中,并用public允许这些元素可以被使用

 Student st1 = new Student();    //创建的了一个st1的学生对象
 st1.name = "小明";
 st1.age =8;
 st1.ChineseScore = 100;

 Console.WriteLine($"姓名:{st1.name}   年龄:{st1.age}    语文分数:{st1.ChineseScore}");


 Student st2 = new Student();    
 st2.name = "小红";
 st2.age = 7;
 st2.ChineseScore = 99;

 Console.WriteLine($"姓名:{st2.name}   年龄:{st2.age}    语文分数:{st2.ChineseScore}");


 Student st3 = new Student();    //创建的了一个st1的学生对象
 st3.name = "小军";
 st3.age = 7;
 st3.ChineseScore = 98;

 Console.WriteLine($"姓名:{st3.name}   年龄:{st3.age}    语文分数:{st3.ChineseScore}");

如此一来就可以清楚的使学生自身的数据结合在一起了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值