为了账号安全,请及时绑定邮箱和手机立即绑定

有些东西都会用,但不知道应该用在哪

有些东西都会用,但不知道应该用在哪

不语99 2016-08-30 08:02:32
表示初步掌握封装,继承,多态和接口。但完全不知应该用在哪
查看完整描述

2 回答

?
阿旭_

TA贡献217条经验 获得超353个赞

不用java的这些面象对象的特性,采用过程式开发一个项目,完全可以。问题是。。。非常麻烦。

所学的这些东西都是工具,等到你真的工作的时候就会慢慢体会到,如果不用这些特性,越庞大的项目越难维护。

============================

建议还是找一些小的项目(比如别人写的一个小游戏demo)然后观察代码中哪里用了封装、哪里用了多态、哪里用了接口。如果不用的话自己去写是什么样子的,能实现吗?能的话比这个麻烦还是比这个简单?多动脑思考多敲代码才会慢慢体会得到。

============================

既然你已经初步掌握了这几个特性,那么我出几个题考考你吧。

问题:print是一个方法,那么如下,同一个方法,参数不同(一个字符串,一个整型)都可以打印内容,这是为什么?用了java的什么特性?

System.out.print("ABC");

System.out.print(123);

===================================

以上用了java的静态多态性(方法的重载为静态多态,方法的重写为动态多态[即,运行时才能看知道执行的结果]多发生于子类与父类之间)。

换句话说,这就是两个同名的不同的方法。(如果打开java源码可以看到)。好处很显然,你只要关心要打印什么,具体打印是什么类型不用关心。

我想,如果换做是你要实现这个功能,可能会命名完全不同的两个方法吧。比如:

System.out.printString("ABC");

System.out.printInt(123);

System.out.printBoolean(false);

……

这样不用java多态性的重载方式解决问题,每一个都要去记打印类型对应的方法名,多麻烦。

=======================================

PS:加油哈,good luck!

查看完整回答
3 反对 回复 2016-08-30
已采纳
?
黑女2008

TA贡献75条经验 获得超32个赞

这些将来在你实际开发项目中很常用的,现在不必纠结着个问题。自己掌握怎么用就行。

查看完整回答
反对 回复 2016-08-30
  • 2 回答
  • 0 关注
  • 1404 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信