面向对象
万物皆对象
三大特性:
封装
继承
多态
五大原则:
将现实生活中的实际存在的东西,抽象提取成程序中的类,对类进行统一的操作
好处: 1、程序的结构非常清晰 2、易于维护,便于功能扩展 3、让程序更加健壮
都是以 类 为基本单元
从世界观的角度可以认为:
1、面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;
2、不同对象之间的相互作用和通讯构成了完整的现实世界。
因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
从方法学的角度可以认为:
1、面向对象的方法是面向对象的世界观在开发方法中的直接运用;
2、它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
C#复习:
在控制台程序中使用结构体、集合,完成下列要求 项目要求:
一、连续输入5个学生的信息,每个学生都有以下4个内容: 1、序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2,以此类推 2、学号 - 必填,如:S001,S002... 以此类推 3、姓名 - 必填 4、成绩 - 大于等于0,小于等于100
以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则重复填写到正确为止
二、5个学生信息都输入完毕后,按照分数从高到低的顺序将学生信息展示出来 显示格式如下:
==============学生成绩展示================= 序号 学号 姓名 成绩 3 S003 张三 100 1 S001 李四 99 2 S002 王五 98 ... ...
---------------------------------------------------------------------
struct student { public int id; public string code; public string name; public decimal score; } static void Main(string[] args) { //添加学生信息 ArrayList all = new ArrayList(); //把学生信息放入此集合 Console.Write("请输入学生人数"); int n=int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { student s = new student(); s.id = i; #region 编号输入 while (true) { Console.Write("请输入第{0}个学生的编号:",i); s.code = Console.ReadLine(); if (s.code == "") { Console.WriteLine("学生编号不能为空!"); } else { break; } } #endregion #region 姓名输入 while (true) { Console.Write("请输入第{0}个学生的姓名:",i); s.name = Console.ReadLine(); if (s.name == "") { Console.WriteLine("学生姓名不能为空!"); } else { break; } } #endregion #region 成绩输入 while (true) { Console.Write("请输入第个学生的成绩:"); try { s.score = decimal.Parse(Console.ReadLine()); if (s.score >= 0 && s.score <= 100) { break; } else { Console.WriteLine("成绩必须在0-100之间!"); } } catch { Console.WriteLine("请输入数字!"); } } all.Add(s); Console.WriteLine("----------------------------"); } #endregion #region 排序 for (int a = 0; a < all.Count-1; a++) { for (int b = a+1; b < all.Count; b++) { student s1 =(student)all[a]; student s2 =(student)all[b]; if (s1.score<s2.score) { student zhong =(student) all[a]; all[a] = all[b]; all[b] = zhong; } } } #endregion #region 打印 Console.WriteLine("========学生信息展示========="); Console.WriteLine("序号 学号 姓名 成绩"); for (int a = 0; a < all.Count; a++) { student sss = (student)all[a]; Console.WriteLine(sss.id + " " + sss.code + " " + sss.name + " " + sss.score); } Console.ReadKey(); #endregion }