{"product_id":"beginning-java-objects-9781484290590","title":"Beginning Java Objects","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eAs a programming language, Java's object-oriented nature is key to creating powerful, reusable code and applications that are easy to maintain and extend.That being said, many people learn Java syntax without truly  understanding its object-oriented roots, setting them up to fail to harness  all of the power of Java. This book is  your key to learning both!This new third edition of Beginning Java Objects: From Concepts to Codediscusses Java syntax, object principles, and how to properly structure the requirements of an application around an object architecture. It is unique in that it uses a single case study of a Student Registration System throughout the book, carrying the reader from object concepts, to object modeling, to building actual code for a full-blown application. A new chapter covers a technology-neutral discussion of the principles of building a three-tier architecture using Java, introducing the notion of model layer  presentation layer  data layer separation.   Coding e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003ePart I:  The ABCs of ObjectsChapter 1:  Abstraction and ModelingChapter Goal:  Introducing the mechanism of abstraction as a natural way for humans to interpret the world, and how this relates to object modeling in the software realm.Subtopics:\u003cbr\u003e•\tSimplification through abstraction•\tGeneralization through abstraction•\tReusing abstractions\u003cbr\u003eChapter 2:  Some Java BasicsChapter Goal:  Provide the reader with an immediate introduction to Java language fundamentals so that object concepts can be illustrated using Java code examples as soon as we begin introducing them in chapter 3.Subtopics:\u003cbr\u003e•\tStrengths of the Java language•\tPrimitive Java types•\tThe anatomy of a Java program•\tMechanics of compiling and running a Java program•\tJava’s block structured nature•\tElements of Java programming style\u003cbr\u003eChapter 3:  Objects and ClassesChapter Goal:  Explain the basic building blocks of an OO application – classes as mini-abstractions aka templates for creating object instances.Subtopics:\u003cbr\u003e•\tAdvantages of an OO approach to software development over a non-OO approach•\tHow classes are used to specify a type of object’s data •\tHow objects are created (instantiated) at run time•\tThe use of reference variables to refer to objects symbolically\u003cbr\u003eChapter 4:  Object InteractionsChapter Goal:  Explain how object behaviors are defined as methods within classes, and how objects collaborate by invoking one another’s methods to accomplish the overall mission of the system.Subtopics:\u003cbr\u003e•\tHow methods are used to specify an object’s behaviors•\tThe anatomy of a Java method•\tHow objects send messages to one another to accomplish collaboration•\tHow classes use public and private visibility to publicize what services a type of object can perform while hiding both the logic for how the service is accomplished and the internal data structure needed to support the service•\tThe use of constructors to instantiate the state of an object when first instantiated \u003cbr\u003eChapter 5:  Relationships Between ObjectsChapter Goal:  Explains the notion of a structural relationship between two objects, wherein the data structures of the classes to which they belong are designed to maintain lasting relationships between objects once instantiated.  The two main approaches to accomplishing this are (a) encoding associations between two classes of objects as reference variables within their data structures, (b) having one class inherit and extend the capabilities of another.Subtopics:\u003cbr\u003e•\tTypes of structural relationships maintained by objects:  associations, aggregations, inheritance•\tThe inheritance mechanism, and guidelines for what we can and cannot achieve when deriving new classes via inheritance•\tRevisiting constructors regarding some complexities that must be understood when inheritance is involved\u003cbr\u003eChapter 6:  Collections of ObjectsChapter Goal:  Introduce a special category of objects (classes) known as collections, to be used for efficiently managing an indefinite number of objects of the same type.Subtopics:\u003cbr\u003e•\tThe properties of three generic collection types:  ordered lists, sets, and dictionaries•\tThe specifics of several different commonly-used built-in Java collection types•\tThe concept of Java packages as logical groupings of classes, and the use of import statements•\tThe power of collections in modeling very sophisticated real-world scenarios•\tDesign techniques for programmer-defined collection types\u003cbr\u003eChapter 7:  Some Final Object ConceptsChapter Goal:  Covers several key but often misunderstood advanced language features that are essential to taking full advantage of Java’s object-oriented nature:  polymorphism (how a single line of code representing a method invocation can exhibit a variety of different behaviors at run time); abstract methods, classes, and interfaces; and static features (data\/methods belonging to an entire class of objects versus objects individually).Subtopics:\u003cbr\u003e•\tThe runtime mechanism of polymorphism•\tAbstract classes and methods•\tThe incredible power of interfaces in streamlining Java code•\tStatic features\u003cbr\u003ePart II:  Object Modeling 101Chapter 8:  The Object Modeling Process in a NutshellChapter Goal:  A high-level overview of how to approach the requirements of a system so as to structure it from the ground up to take advantage of all of the strengths of an OO language like Java.Subtopics:\u003cbr\u003e•\tThe goals of and philosophy begin object modeling•\tFlexibility in terms of selecting or devising a modeling methodology•\tThe pros and cons of using object modeling software tools\u003cbr\u003eChapter 9:  Formalizing Requirements Through Use CasesChapter Goal:  Explains the importance of developing use cases when establishing requirements for an application, to ensure that (a) all categories of intended user are identified, (b) all of the services that each user category will expect the system to provide, and (c) what their expectations are of the desired outcome for each of the service types.Subtopics:\u003cbr\u003e•\tIntroduction to use cases•\tThe notion of actors •\tInvolving users in defining use cases•\tApproaches to documenting\/diagramming use cases\u003cbr\u003eChapter 10:  Modeling the Data Aspects of the SystemChapter Goal:  Illustrate the process by which the types of classes, their respective data structures, and their interrelationships can be discovered and rendered graphically using UML notation.Subtopics:\u003cbr\u003e•\tTechnique for identifying the appropriate classes and their respective attributes•\tTechnique for determining the structural relationships that exist among these classes•\tHow to graphically portray this information in proper UML notation\u003cbr\u003eChapter 11:  Modeling the Behavioral Aspects of the SystemChapter Goal:  Revisiting the evolving object model of chapter 10 to reflect the services\/behaviors\/methods required of each identified class to ensure that the overall requirements of the application will be satisfied.Subtopics:\u003cbr\u003e•\tHow the behaviors (method execution) of an object affects its state (data)•\tDeveloping scenarios for how use cases (defined in chapter 9) might play out•\tCreating sequence diagrams based on scenarios•\tUsing sequence diagrams to determine methods\u003cbr\u003eChapter 12:  Wrapping Up Our Modeling EffortsChapter Goal:  This chapter focuses on ways to test a model before coding begins, as well as Subtopics:\u003cbr\u003e•\tTesting the model•\tRevisiting requirements and adapting the model as necessary•\tReusing models in the form of design patterns \u003cbr\u003ePart III:  Translating an Object Blueprint into Java CodeChapter 13:  A Few More Key Java Details (retitled from 2nd edition)Chapter Goal:  Covering a variety of important Java topics that were not essential to illustrating the object concepts of Part I per se, but which are nonetheless key to a rounding out a beginning level Java programmer’s facility with the language.  I plan on eliminating a few sections from this chapter if I determine that any of the topics covered are *not* essential to understanding the Student Registration System (SRS) code of chapter 14.Subtopics:\u003cbr\u003e•\tJava application architecture, revisited•\tNature and purpose of Java Archive (JAR) files•\tJava documentation comments•\tObject nature of Strings•\tJava enums (enumerations)•\tObject self-referencing via the “this” keyword•\tThe nature of run-time exceptions, how to handle them, and how to define and use custom exception types•\tImportant features of the built-in Object class•\tTechniques for command line input•\tRemove:  discussion of inner classes (no longer needed since we are eliminating the chapter on the Swing API)•\tRemove:  narrative regarding Java version 5 language enhancements\u003cbr\u003eChapter 14:  Transforming Your Model into Java CodeChapter Goal:  In this chapter, I pull together all that we’ve covered in Part I of the book to render the UML model created in Part II of the book into a complete, fully functioning model layer for the Student Registration System.  This code can be run from the command line, and will be downloadable from the Apress website.Subtopics:  How to code …\u003cbr\u003e•\t… associations of varying multiplicities (one-to-one, one-to-many, many-to-many)•\t… inheritance relationships•\t… association classes•\t… reflexive associations•\t… abstract classes•\t… metadata•\t… static attributes and methods\u003cbr\u003eChapter 15:  Three Tier Architectures:  Considerations for Adding a User Interface and Data Layer to Your ApplicationChapter Goal:  Conceptually introduce the notion of model – presentation layer – data layer separation, using pseudocode examples to illustrate how these layers interact with the model layer code of chapter 14.Subtopics:\u003cbr\u003e•\tOverview of the power of model – presentation layer – data layer separation •\tConcept of operations for the Student Registration System user interface•\tDetailed walk-through of pseudocode illustrating (a) how the data layer is used to validate and persist model layer logic, (b) how the user interface\/presentation layer is used to receive data and operational requests from a user","brand":"APress","offers":[{"title":"Default Title","offer_id":49409125679447,"sku":"9781484290590","price":59.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484290590.jpg?v=1730505532","url":"https:\/\/bookcurl.com\/products\/beginning-java-objects-9781484290590","provider":"Book Curl","version":"1.0","type":"link"}