Object-orientation, abstraction, and data structures using Scala / Mark C. Lewis, Lisa L. Lacher.

Saved in:
Bibliographic Details
Online Access: Full Text (via EBSCO)
Main Authors: Lewis, Mark C. (Mark Christopher), 1974- (Author), Lacher, Lisa L. (Author)
Format: Electronic eBook
Language:English
Published: Boca Raton : Chapman & Hall/CRC, 2017.
Edition:2nd edition.
Series:Chapman & Hall/CRC textbooks in computing.
Subjects:
Table of Contents:
  • Cover; Half Title; Title Page; Copyright Page; Contents; List of Figures; List of Tables; Preface; 1 Scala Language Basics; 1.1 First Application; 1.2 Comments; 1.3 Variables and Types; 1.4 Statements and Expressions; 1.4.1 Lambda Expressions/Closures; 1.5 Control Structures; 1.5.1 Conditionals; 1.5.2 Loops; 1.5.3 Error Handling; 1.6 Declarations and Scope; 1.7 Essential Libraries; 1.7.1 Standard Input and import Statements; 1.7.2 Basic Collections; 1.7.2.1 Array and List; 1.7.2.2 Creating Collections Using fill; 1.7.2.3 Creating Collections Using tabulate; 1.7.2.4 Creating Arrays Using new.
  • 1.7.2.5 Creating Lists Using Cons1.7.2.6 Range; 1.7.2.7 Methods; 1.7.2.8 Higher-Order Methods; 1.7.3 The Option Type; 1.7.4 Text Files; 1.8 Other Language Features; 1.8.1 Unfinished Code; 1.8.2 Named Arguments; 1.8.3 Default Parameter Values; 1.8.4 Curried Functions/Methods; 1.8.5 Pass-by-Name; 1.9 The Read, Evaluate, Print Loop (REPL); 1.10 Putting It Together; 1.11 End of Chapter Material; 1.11.1 Summary of Concepts; 1.11.2 Exercises; 2 Basics of Object-Orientation and Software Development; 2.1 The Meaning of Object-Orientation; 2.2 What Are classes?; 2.3 Software Development Stages.
  • 2.4 Analysis2.5 Design; 2.6 Bank Example; 2.6.1 Bank Analysis; 2.6.2 Bank Design; 2.6.3 Bank Implementation; 2.6.4 Making an Application; 2.7 Making Packages; 2.8 End of Chapter Material; 2.8.1 Summary of Concepts; 2.8.2 Exercises; 2.8.3 Projects; 3 Details of Object-Orientation in Scala; 3.1 The 2D Vector classes; 3.1.1 this Keyword; 3.2 Special Methods and Symbolic Names; 3.2.1 Scala Naming Rules/Symbolic Names; 3.2.1.1 Precedence and Associativity; 3.2.2 Unary Operators; 3.2.3 Property Assignment Methods; 3.2.4 The apply Method; 3.2.5 The update Method; 3.3 object Declarations.
  • 3.3.1 Companion Objects3.4 Final Versions of 2D Vectors; 3.5 case classes; 3.6 Encapsulation/Separating Interface from Implementation; 3.7 Revisiting the API; 3.8 import Options; 3.9 End of Chapter Material; 3.9.1 Summary of Concepts; 3.9.2 Exercises; 3.9.3 Projects; 4 Abstraction and Polymorphism; 4.1 Polymorphism; 4.2 Inclusion Polymorphism (Inheritance and Subtyping); 4.2.1 Inheritance in the Scala Type System; 4.2.2 Inheritance in Scala Code; 4.2.3 private Visibility and Inheritance; 4.2.4 protected Visibility; 4.2.5 Calling Methods on the Supertype; 4.2.6 Abstract Classes; 4.2.7 traits.
  • 4.2.8 final4.2.9 Method Resolution; 4.2.10 Inheriting from Function Types; 4.2.11 Enumerations; 4.3 Parametric Polymorphism; 4.3.1 Parametric Types; 4.3.2 Parametric Functions and Methods; 4.3.2.1 Parametric Sorts; 4.3.3 Type Bounds; 4.3.3.1 Type Bounds and Sorting; 4.4 End of Chapter Material; 4.4.1 Summary of Concepts; 4.4.2 Exercises; 4.4.3 Projects; 5 GUIs and Graphics; 5.1 Project Analysis; 5.2 ScalaFX; 5.3 Drawing Program Layout; 5.3.1 Menus; 5.3.2 Panes; 5.3.3 Controls; 5.4 Drawing Program Design; 5.5 Interactivity; 5.5.1 Properties, Observables, and Bindings; 5.6 Graphics.