Java® For Dummies®, 7th Edition Published by: John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, www.wiley.com Copyright © 2017 by John Wiley & Sons, Inc., Hoboken, New Jersey Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without the prior written permission of the Publisher. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions. Trademarks: Wiley, For Dummies, the Dummies Man logo, Dummies.com, Making Everything Easier, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and may not be used without written permission. Java is a registered trademark of Oracle America, Inc. Android is a registered trademark of Google, Inc. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc. is not associated with any product or vendor mentioned in this book. LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ. For general information on our other products and services, please contact our Customer Care Department within the U.S. at 877-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002. For technical support, please visit https://hub.wiley.com/community/support/dummies. Wiley publishes in a variety of print and electronic formats and by print-on- demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at http://booksupport.wiley.com. For more information about Wiley products, visit www.wiley.com. Library of Congress Control Number: 2017932837 ISBN: 978-1-119-23555-2; 978-1-119-23558-3 (ebk); 978-1-119-23557-6 (ebk) Java® For Dummies® To view this book's Cheat Sheet, simply go to www.dummies.com and search for “Java For Dummies Cheat Sheet” in the Search box. Table of Contents Cover Introduction How to Use This Book Conventions Used in This Book What You Don’t Have to Read Foolish Assumptions How This Book Is Organized Icons Used in This Book Beyond the Book Where to Go from Here Part 1: Getting Started with Java Chapter 1: All about Java What You Can Do with Java Why You Should Use Java Getting Perspective: Where Java Fits In Object-Oriented Programming (OOP) What’s Next? Chapter 2: All about Software Quick-Start Instructions What You Install on Your Computer Chapter 3: Using the Basic Building Blocks Speaking the Java Language Checking Out Java Code for the First Time Understanding a Simple Java Program And Now, a Few Comments Part 2: Writing Your Own Java Programs Chapter 4: Making the Most of Variables and Their Values Varying a Variable Experimenting with JShell What Happened to All the Cool Visual Effects? The Atoms: Java’s Primitive Types The Molecules and Compounds: Reference Types An Import Declaration Creating New Values by Applying Operators Chapter 5: Controlling Program Flow with Decision- Making Statements Making Decisions (Java if Statements) Using Blocks in JShell Forming Conditions with Comparisons and Logical Operators Building a Nest Choosing among Many Alternatives (Java switch Statements) Chapter 6: Controlling Program Flow with Loops Repeating Instructions Over and Over Again (Java while Statements) Repeating a Certain Number of Times (Java for Statements) Repeating until You Get What You Want (Java do Statements) Part 3: Working with the Big Picture: Object-Oriented Programming Chapter 7: Thinking in Terms of Classes and Objects Defining a Class (What It Means to Be an Account) Defining a Method within a Class (Displaying an Account) Sending Values to and from Methods (Calculating Interest) Making Numbers Look Good Hiding Details with Accessor Methods Barry’s Own GUI Class Chapter 8: Saving Time and Money: Reusing Existing Code Defining a Class (What It Means to Be an Employee) Working with Disk Files (a Brief Detour) Defining Subclasses (What It Means to Be a Full-Time or Part-Time Employee) Using Subclasses Overriding Existing Methods (Changing the Payments for Some Employees) Chapter 9: Constructing New Objects Defining Constructors (What It Means to Be a Temperature) More Subclasses (Doing Something about the Weather) A Constructor That Does More Part 4: Smart Java Techniques Chapter 10: Putting Variables and Methods Where They Belong Defining a Class (What It Means to Be a Baseball Player) Making Static (Finding the Team Average) Experiments with Variables Passing Parameters Chapter 11: Using Arrays to Juggle Values Getting Your Ducks All in a Row Arrays of Objects Command Line Arguments Chapter 12: Using Collections and Streams (When Arrays Aren’t Good Enough) Understanding the Limitations of Arrays Collection Classes to the Rescue Functional Programming Chapter 13: Looking Good When Things Take Unexpected Turns Handling Exceptions Handle an Exception or Pass the Buck Finishing the Job with a finally Clause A try Statement with Resources Chapter 14: Sharing Names among the Parts of a Java Program Access Modifiers Classes, Access, and Multipart Programs Sneaking Away from the Original Code Protected Access Access Modifiers for Java Classes Chapter 15: Fancy Reference Types Java’s Types The Java Interface Abstract Classes Relax! You’re Not Seeing Double! Chapter 16: Responding to Keystrokes and Mouse Clicks Go On … Click That Button Responding to Things Other Than Button Clicks Creating Inner Classes Chapter 17: Using Java Database Connectivity Creating a Database and a Table Putting Data in the Table Retrieving Data Destroying Data Part 5: The Part of Tens Chapter 18: Ten Ways to Avoid Mistakes Putting Capital Letters Where They Belong Breaking Out of a switch Statement Comparing Values with a Double Equal Sign Adding Components to a GUI Adding Listeners to Handle Events Defining the Required Constructors Fixing Non-Static References Staying within Bounds in an Array Anticipating Null Pointers Helping Java Find Its Files Chapter 19: Ten Websites for Java This Book’s Website The Horse’s Mouth Finding News, Reviews, and Sample Code Got a Technical Question? About the Author Connect with Dummies End User License Agreement Introduction Java is good stuff. I’ve been using it for years. I like Java because it’s orderly. Almost everything follows simple rules. The rules can seem intimidating at times, but this book is here to help you figure them out. So, if you want to use Java and you want an alternative to the traditional techie, soft-cover book, sit down, relax, and start reading Java For Dummies, 7th Edition.