C#自学之旅 第二周-资料

资料:
[A] C# 的类型体系(引用类型与值类型):
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-types
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types (重点,关注 decimal 这种值类型的使用)
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/struct (研究下struct与class的异同,什么时候适合用struct)
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/nullable-value-types (重点,此为Java没有的功能)
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/reference-types
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/reference-types (重点,关注字符串、dynamic的概念及用法)
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/class
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/interface
[B] C# 的面向对象编程(第一部分)
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/object-oriented-programming (重点,注意延伸阅读、以及与Java异同)
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/properties
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/using-properties (重点,用的很多、很方便、且为Java没有的功能)
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables (研究下var何时使用、何时不使用)
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/passing-parameters (可以延伸了解下 in, out, ref 三个关键字)
[C] C# 的面向对象编程(第二部分,继承与多态。虽然概念相似,但实现上有不少与Java的差异点,注意自己找其他资料)
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/inheritance
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/polymorphism
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/abstract
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/override
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/virtual
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/sealed
练习题:
新建一个 Solution, 包含两个 Project。
Project #1:
这是一个 Class Library Project,在这个 Project 里包含如下类结构(综合利用面向对象编程中的继承和多态, override, abstract, virtual...)
[接口A]
对外提供一个功能:“基于文件名检索文件”
※入参、返回值请自定义
[抽象类B(接口A的默认实现)]
实现了接口A的功能,方法里包含这样的步骤:
1. 检查路径的合法性
2. 列出路径下的所有文件
3. 对2的结果进行条件过滤 (方法调用)
4. 对3的结果进行排序(方法调用)
5. 返回4的结果
对于 3. 在抽象类 B 中写一个虚实现:只要文件名中包含关键字就作为返回对象
对于 4. 在抽象类 B 中写一个抽象方法,依赖抽象类 B 的子类去实现
[实现类C(继承抽象类B)]
重写上记 3.:只有当文件扩展名与输入的关键字相同时、将该文件作为返回对象
重写上记 4.:按字母顺序正序排列,取前10条
[实现类D(继承抽象类B)]
重写上记 4.:按文件大小倒序排列,返回所有结果
[实现类E(继承抽象类B)]
重写上记 3.:只有当文件扩展名与输入的关键字相同将该文件作为返回对象
重写上记 4.:按字母顺序正序排列,返回所有结果
Project #2:
这是一个 Console App,接受用户的输入(路径、关键字、搜索类型),并返回结果。
在这里调用 Project #1 去完成搜索的操作,要求:
- 主方法所在的类只含有接口A的引用,它并不知道具体要使用哪个实现类去处理用户请求;
- 再写一个工具类(工厂类),它根据主方法传入的搜索类型返回一个实现类
注意返回的类型仍然是接口A,保证主方法只面向接口
- 将用户输入包装到一个类中(类似于 Java Bean),并使用 Property (自动 setter getter)
进阶要求 #1
Project #2的工厂类里,现在仍然需要手动 new 一个接口A的实现类返回给调用方,
更进一步,使用反射+配置文件的方式使工厂类也不引用实现类,也就让 Project #2 完全面向接口编程。
配置文件的格式:[搜索类型]:[实现类全名(如edu.csharp.filesearch.impl.Impl1)],文件可以有多行
进阶要求 #2
将 Console App 换成图形界面。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值