The tips focus on the truly tough stuff-proven techniques learnt through experience. By uniquely combining the concepts and practical applications of three important programming languages, C++, Java and C#, the author provides a comprehensive coverage of the domain including the semantics. Browse through it for your last-minute preparation for cracking IT interviews successfully. About The Author: S G Ganesh is an expert in object oriented programming and compiler design. Table of Contents An Introduction to Object Oriented Programming CLASS DESIGN Tip 1: Provide Consistent and Intuitive Class Interface Tip 2: Provide Common Properties of Classes in a Base Class Tip 3: Do Not Expose Implementation Details in the Public Interface of the Class Tip 4: Consider Providing Helper Classes While Designing Large Classes Tip 5: Keep the Data Members Private Tip 6: Provide Lowest Possible Access to Methods Tip 7: Strive for Loose Coupling Between Classes Tip 8: Beware of Order of Initialization Problems Tip 9: Write Unit Tests for Classes Tip 10: Avoid Low-level Code OBJECT CREATION AND HANDLING Tip 11: Avoid Calling Virtual Functions in Constructors Tip 12: Consider Providing Factory Methods Tip 13: Make Constructor Private if there are Only Static Members in the Class Tip 14: Avoid Creating Unnecessary Temporary Objects Tip 15: Prefer Creating Immutable Objects Tip 16: Consider Creating and Using Null Objects Tip 17: Provide Special Objects With Read Only Access in the Class Itself OVERLOADING Tip 18: Overload Functio
Ganesh Samarthyam has 11+ years of working experience in IT industry. He is a consultant in the US based startup Zinemind. He has authored/co-authored of a few books (and research papers & patents), including the best selling “OCPJP 7” certification book published by Apress in 2013. He worked for Siemens (Corporate Research and Technologies, Bangalore) for the last 6+ years on software engineering consultancy, training and applied research. Before Siemens, he worked in Hewlett-Packard’s C++ compiler team, Bangalore for 4.5 years. Served as member of ANSI/ISO C++ standardization committee (JTC1/SC22/WG21) from 2005 to 2007 representing HP. He has Oracle’s OCPJP 7 certification and IEEE’s CSDP(Certified Software Development Professional) and SECI (Software Engineering Certified Instructor) certifications. He has conducted many SCP, CSDA, and CSDP trainings representing IEEE. He is one of the five course material contributors to IEEE’s SWEBOK Certificate Program (SCP). He writes “The Joy of Programming” column in “Linux for You” magazine.