A Modern Approach to Functional Programming
Objects First with Java: A Practical Introduction is an introduction to object-oriented programming for beginners. The main focus of the book is general object-oriented and programming concepts from a software engineering perspective.
The first chapters are written for students with no programming experience with later chapters being more suitable for advanced or professional programmers. The Java programming language and BlueJ-the Java development environment - are the two tools used throughout the book. BlueJ's clear visualization of classes and objects means that students can immediately appreciate the differences between them and gain a much better understanding of the nature of an object than they would from simply reading source code. Unlike traditional textbooks, the chapters are not ordered by language features but by software development concepts.
The Sixth Edition goes beyond just adding the new language constructs of Java 8. The book's exploration of this new language demonstrates a renaissance of functional ideas in modern programming. While functional programming isn't new in principle, it's seen a boost in popularity based on the current computer hardware available and the changing nature of projects programmers wish to tackle. Functional language constructs make it possible to efficiently automate currency, make use of multiple cores without much effort on the side of the programmer, are both more elegant and readable, and offer great potential in solving the issue of parallel hardware. Functional programming has become an essential part of the field, and Objects First with Java gives students a basic understanding of an area they'll need to master in order to succeed in the future.
Part 1: Foundations of object orientation 1. Objects and classes 2. Understanding class definitions 3. Object interaction 4. Grouping objects 5. Functional Processing of Collections (Advanced) 6. More-sophisticated behavior 7. Fixed-size collections - arrays 8. Designing classes 9. Well-behaved objects Part 2: Application structures 10. Improving structure with inheritance 11. More about inheritance 12. Further abstraction techniques 13. Building graphical user interfaces 14. Handling errors 15. Designing applications 16. A case study Appendices A Working with a BlueJ project B Java data types C Operators D Java control structures E Running Java without BlueJ F Using the debugger G Unit unit-testing tools H Teamwork tools I Javadoc J Program style guide K Important library classes