一,对象的传递
c++在传递对象的时候,很关注到底是对象(即复制对象),还是引用(即传原对象),以及是否const,除了效率之外,还牵涉到是否可修改,也就是语言的严谨性
但是到了java中,因为语言没有强制要求,很容易出现本该复制的对象,本体却到处乱传,特别是愚蠢的自动生成getter,setter,就是万恶之源,
二,封装
先上例子
public class A{
private int i = 0;
public void a(){
i++;
}
public void b(){
i--;
}
public void c(){
a();
b();
}
}
这代码OK吗?NO!封装要做的是什么?封装就是控制对象field的可见性,所以public field是糟糕的设计.
在例子里,a,b是应该见到i的,所以没错,c没用到i,所以他不应该见到i,应该移出class A
这里有一个面向对象的典型误区,认为一个对象的方法就应该放在对象中,抱着这种想法的话,必然导致对象臃肿
我再次强烈批判愚蠢的自动生成getter,setter,他使得对象毫无封装可言,罪恶直逼public field,而如果getter,setter里做了私活,就违反了最小惊愕原则,所以最好是确实地把该做的活做好,然后换个可读的方法名
三,效率
即使在c++,for循环里选择new对象还是赋值,到底哪个效率高,也是不一定的,要视情况而定.
这本书的内容,与其说是教你怎么写的有效率,不如说其实是教你怎么写的正确,所谓最求效率的写法,实在少有必要,真正重要的是正确的编码和正确的设计
分享到:
相关推荐
本文将深入探讨一位Java程序员学习C++的过程及其心得体会,旨在为那些希望从Java转向C++的朋友们提供一些有价值的建议。 #### Java到C++的学习路径 对于已经熟悉Java的程序员来说,学习C++可能会遇到不少挑战,但...
这本书《C++ for Java Programmers》是为具有一定经验的Java程序员所写,目的是让他们利用现有的面向对象编程知识,快速掌握标准C++的所有重要方面。书中强调了C++与Java之间的差异,并着重介绍了C++的底层C风格细节...
《Effective C++中文版(第3版改善程序与设计的55个具体做法)》不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C++是真正程序员的语言,背后有着精深的...
《Effective C++ 第三版》是Scott Meyers所著的一本经典C++进阶书籍,适合于有一定C++基础的程序员阅读。这本书详细讲解了C++编程中应该遵循的55条具体规则,帮助程序员写出更清晰、正确和高效的代码。第三版中,...
有人说c++程序员可以分成两类,读过effective c++的和没读过的。世界顶级c++大师scott meyers成名之作的第三版的确当得起这样的评价。当您读过这本书之后,就获得了迅速提升自己c++功力的一个契机。.(2-1) 在...
《Effective C++》第三版是一本由Scott Meyers编写的经典C++编程指南,它自出版以来便受到全球成千上万程序员的高度评价。本书之所以能够获得如此广泛的认可,主要是因为它采取了一种实用的方法来教授C++编程,揭示...
- 阅读《C++编程思想》来深入理解C++,然后通过《Effective C++中文版 2nd Edition》和《More Effective C++中文版》学习C++的最佳实践。 3. **精通阶段**: - 掌握STL(Standard Template Library),它是C++的...
《Effective C++2e》是一本深入探讨C++编程实践的经典书籍,由Scott Meyers撰写。这本书主要关注如何编写高效、可靠且易于维护的C++代码。Meyers提出了55个具体的编程准则,旨在帮助程序员更好地理解和利用C++语言的...
有人说c++程序员可以分成两类,读过effective c++的和没读过的。世界顶级c++大师scott meyers成名之作的第三版的确当得起这样的评价。当您读过这本书之后,就获得了迅速提升自己c++功力的一个契机。.(2-2) 在...
### Effective C++:第三版 — 55 种改进程序与设计的具体方法 #### 标题解析 本书的标题——《Effective C++》(有效使用 C++),清晰地表明了其核心目标:帮助读者掌握如何有效地使用 C++ 编程语言。在软件开发...
高质量C++编程通常涉及《Effective C++》和《More Effective C++》等书籍中的最佳实践,如使用const来表明不可变性,使用引用而非指针以减少错误,以及合理地使用构造函数和析构函数来管理对象生命周期。...
总的来说,这个“Java C++ 书籍收藏”可能是一个面向程序员的资源集合,不仅包含了对Java编程有深远影响的《Effective Java》,也可能包括其他关于C++的书籍,这些书籍将帮助读者从基础到进阶全面掌握这两种语言,...
- C++方面:《Effective C++》、《More Effective C++》、《深度探索C++对象模型》等。 - Java方面:《Java核心技术卷》、《Java性能优化权威指南》等。 了解内存分配对于编写高效、健壮的代码至关重要,因为不当的...
3. **《Effective C++》和《More Effective C++》**:这两本书是提高C++编程技能的经典之作,包含了大量实用的编程技巧和最佳实践。 4. **《Thinking in C++》**:作者Bruce Eckel的作品,强调了面向对象的思想和...
在这个阶段,程序员刚刚踏入编程领域,对各种编程语言如C/C++、Java、JavaScript等有初步的了解。这一阶段的重点在于掌握基本的语法和编程逻辑,能够编写简单的程序。 #### 第二境界:实践者 这一阶段的程序员已经...
55 个具体做法》、《More Effective C++:35 个改善编程与设计的有效方法(中文版)》、《C++沉思录》、《C++Templates 中文版》、《深度探索 C++ 对象模型》、《泛型编程与 STL》等书籍可以帮助程序员深入学习C++语言...
【程序员学习表】涵盖了几种主流的编程语言的学习资源,包括C、Java、C#以及C++。以下是对这些编程语言的重要知识点的详细介绍: 1. **C语言**: - **C程序设计语言(第2版·新版)**:由Brian W.Kernighan编写,...