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 visualisation 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.
- Objects and classes
- Understanding class definitions
- Object interaction
- Grouping objects
- Functional Processing of Collections (Advanced)
- More-sophisticated behavior
- Fixed-size collections – arrays
- Designing classes
- Well-behaved objects
- Improving structure with inheritance
- More about inheritance
- Further abstraction techniques
- Building graphical user interfaces
- Handling errors
- Designing applications
- A case study
- Working with a BlueJ project
- Java data types
- Operators
- Java control structures
- Running Java without BlueJ
- Using the debugger
- Unit unit-testing tools
- Teamwork tools
- Javadoc
- Program style guide
- Important library classes
- Repeated topics allow students to build a more advanced understanding of challenging concepts.
- Discussion of numerous programming projects and exercises present a goal and a problem, allowing your students to analyse the problem and determine its solution.
- Projects designed as open-ended problems allow further improvement as the student progresses.
- Hooks are used aspointers to raise a topic, allowing your students to explore it in further detail.
- Chapter Questions suggest discussion material related to the topic.
- Chapters progress with increasing complexity, beginning with introductory chapters, and continuing with more advanced content.
Introduces Java 8 in functional programming, the fastest adopted new Java language ever.
- The functional approach is integrated with previous editions’ “old-style” techniques, emphasizing that functional constructs are most prominent when working with collections of objects using the traditional approach of loops and explicit iteration, and reinforcing the importance of mastering both.
- Functionally oriented material is presented at strategic points throughout the text where it can relate to problems addressed by specific constructs.
- Chapters and sections covering new material are clearly marked as “advanced”, and structured in a manner that they can be safely skipped upon first reading.
- Chapter 5 presents the first advanced section (a section that can be skipped if time is short) and introduces functional programming constructs. The functional constructs present an alternative to the imperative collection processing discussed in Chapter 4. The same problems can be solved without these techniques, but functional constructs open some more elegant ways to achieve our goals. This chapter gives an introduction to the functional approach in general, and introduces a few of Java’s language constructs.
- Chapter 7 concentrates on one specific – but very special – type of collection: arrays. Arrays processing and the associated types of loops are discussed in detail.
Produktdetaljer
Biografisk notat
David J. Barnes is a Senior Lecturer in Computer Science at the University of Kent, in Canterbury, England, and mainly teaches introductory, object-oriented Programming at both undergraduate and postgraduate levels.
In addition to computing education and his rich, practical experience in a wide range of programming languages, his main research also includes the area of Software Engineering.
Michael Kölling is a Professor in the Department of Informatics at King's College London, UK. He holds a Ph.D. in Computer Science from Sydney University and has worked in Australia, Denmark, and the UK.
He is the lead developer of BlueJ and Greenfoot, two educational programming environments, and his research areas of interest include object-oriented systems, programming languages, software tools, and computing education.