一个问题,关于编程习惯 大家好,书上说用大量的IF ELSE IF ELSE 不好,不属于面向对象改用什么替换啊 还有有人说linkedlist不长用,让我不要用,真的假的啊,我看到一个计算器里就用了啊帮忙答下啊,特别是第一个问题,我在做个计算器 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if else 的确不是很好,但并不是说就不能用。一般能用 switch 语句代替的都用 switch 语句代替。也可以用面象对象的方法,这里涉及到多种设计模式,初学者就先不要考虑了吧。第二个问题,LinkedList 并不是个坏东西,与 ArrayList 相比,它会占用更多的内存。而且一般情况下效率不会比 ArrayList 高。但是,如果数据量较大而且插入、删除等操作比较频繁的时候,用 LinkedList 会比 ArrayList 明显提高效率。不过对于初学者来说,一个 ArrayList 足够了。写计算器主要是会用到队列或者栈操作,操作量应该不大,用 ArrayList 足够。也可以考虑用 Stack。 我不知道switch比if else好在哪里,性能?数据库和网络资源才是关键面向对象?我见过的开源程序中很多都是大量的使用if else,没看到人家用很多switch也许境界不到吧,懒得注意这些。 在很多情况下if else if这种模式用switch是改写不了的,在JAVA中,switch能接受的参数只有int以下的值但是if else if却可以比较任何东西 switch 也有缺陷,容易把 break;给漏掉,而导致多种case情况的发生。 if else本来就是基本的流程控制语句,跟面向对象没什么关系。所有的面向对象的语言都要用到if else,并不是应用了面向对象的思想,if else就可以被替代了。因此,说if else不面向对象完全是误解。 当然提出if else不面向对象,也是有道理的。这是因为可以用多态解决的问题,都用if else来实现了,这就是if else被批评的原因。但是,这是个别程序员没有面向对象的编程思想导致的,确实不能怪if else语句本身。 不用if else只能当成一个思考问题的原则吧。完全不用是不可能的。但很多部分可以想想是不是可以用其它方式实现。更多使用多态的方法,工厂模式等。那种实现方式更好理解和更好维护。 这和用不用if else没什么关系。流程控制肯定要用拉!我感觉面向对象的就是类包的调用以及模块化的设计思想!!! if else和switch各有个的用处.switch可以做的if else都可以做但是if else可以做的switch就不一定都能做啦~ 非常同意 huhbc() 的说法。楼主提到的“if-else 不符合面向对象原则”,应该不是指“if-else 和 switch 哪个更好”的问题,而是说,本来可以用多态来解决的问题,有人把它写在一个方法里,然后用一个巨大的 if-else 来处理。其实,不只是“面向对象”,即使在“面向过程”的 C 程序里,像这种情况,也应该适当拆解的。 关于netbeans打包生成的问题? 新手问题。。。 网站估价~~~ 求1段代码(在线等...)求高手指点 什么样的情况下才把xml文件作为数据源? 请教正则表达式的如何用? 被逼散分 请问哪位大哥知道Jbuild7的注册文件,谢谢!! java 键盘输入问题 简直就是送分! 利用Font设置文本字体的问题 反射中的方法调用出现问题(invoke方法出了问题)
一般能用 switch 语句代替的都用 switch 语句代替。也可以用面象对象的方法,这里涉及到多种设计模式,初学者就先不要考虑了吧。第二个问题,LinkedList 并不是个坏东西,与 ArrayList 相比,它会占用更多的内存。而且一般情况下效率不会比 ArrayList 高。但是,如果数据量较大而且插入、删除等操作比较频繁的时候,用 LinkedList 会比 ArrayList 明显提高效率。不过对于初学者来说,一个 ArrayList 足够了。写计算器主要是会用到队列或者栈操作,操作量应该不大,用 ArrayList 足够。也可以考虑用 Stack。
面向对象?我见过的开源程序中很多都是大量的使用if else,没看到人家用很多switch
也许境界不到吧,懒得注意这些。
在JAVA中,switch能接受的参数只有int以下的值
但是if else if却可以比较任何东西
当然提出if else不面向对象,也是有道理的。这是因为可以用多态解决的问题,都用if else来实现了,这就是if else被批评的原因。但是,这是个别程序员没有面向对象的编程思想导致的,确实不能怪if else语句本身。
但很多部分可以想想是不是可以用其它方式实现。更多使用多态的方法,工厂模式等。那种实现方式更好理解和更好维护。
我感觉面向对象的就是类包的调用以及模块化的设计思想!!!