ebook img

Learn Java The Hard Way PDF

189 Pages·2013·1.074 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Learn Java The Hard Way

Learn Java the Hard Way Graham Mitchell Version 20130720.004 Copyright 2013 Graham Mitchell. All rights reserved. Version 20130720.004 10 09 08 07 06 05 XYZABC 04 03 02 01 Preface I have been teaching beginners how to code for over fifteen years. More than 2,000 students have taken  my classes and left knowing how to write simple programs that work. Some learned how to do only a  little and others gained incredible skill over the course of just a few years. I believe that nearly anyone can teach a child prodigy how to code. “I taught my 9­year­old daughter to  code, and she made her first Android app six weeks later!” If you are the child prodigy, this book is not  written for you. I have also come to believe that there is no substitute for writing small programs. So that’s what you will do in this book. You will type in small programs and run them. “The best way to learn is to do.” – P.R. Halmos Contents ● Preface: Learning by Doing ● Introduction: The Challenge of Java as a First Language ● Exercise 0: The Setup ● Exercise 1: An Important Message ● Exercise 2: More Printing ● Exercise 3: Printing Choices ● Exercise 4: Escape Sequences and Comments ● Exercise 5: Saving Information in Variables ● Exercise 6: Mathematical Operations ● Exercise 7: Getting Input from a Human ● Exercise 8: Storing the Human’s Responses ● Exercise 9: Calculations with User Input ● Exercise 10: Variables Only Hold Values ● Exercise 11: Variable Modification Shortcuts ● Exercise 12: Boolean Expressions (True or False) ● Exercise 13: Comparing Strings ● Exercise 14: Compound Boolean Expressions (And, Or, Not) ● Exercise 15: Making Decisions with If Statements ● Exercise 16: More If Statements ● Exercise 17: Otherwise (If Statements with Else) ● Exercise 18: If Statements with Strings ● Exercise 19: Mutual Exclusion with Chains of If and Else ● Exercise 20: More Chains of Ifs and Else ● Exercise 21: Nested If Statements ● Exercise 22: Making Decisions with a Big Switch ● Exercise 23: More String Comparisons ● Exercise 24: Choosing Numbers Randomly ● Exercise 25: More Complex Random Numbers ● Exercise 26: Repeating Yourself using a While Loop ● Exercise 27: A Number­Guessing Game ● Exercise 28: Infinite Loops ● Exercise 29: Using Loops for Error­Checking ● Exercise 30: Do­While Loops ● Exercise 31: Adding Values One at a Time ● Exercise 32: Adding Values for a Dice Game ● Exercise 33: The Dice Game Called ‘Pig’ ● Exercise 34: Calling a Function ● Exercise 35: Calling Functions to Draw a Flag ● Exercise 36: Displaying Dice with Functions ● Exercise 37: Returning a Value from a Function ● Exercise 38: Areas of Shapes ● Exercise 39: Thirty Days Revisited with Javadoc ● Exercise 40: Importing Standard Libraries ● Exercise 41: Programs that Write to Files ● Exercise 42: Getting Data from a File ● Exercise 43: Saving a High Score ● Exercise 44: Counting with a For Loop ● Exercise 45: Caesar Cipher (Looping Through a String) ● Exercise 46: Nested For Loops ● Exercise 47: Generating and Filtering Values ● Exercise 48: Arrays ­ Many Values in a Single Variable ● Exercise 49: Finding Things in an Array ● Exercise 50: Saying Something Is NOT in an Array ● Exercise 51: Arrays Without Foreach Loops ● Exercise 52: Lowest Temperature ● Exercise 53: Mailing Addresses (Records) ● Exercise 54: Records from a File ● Exercise 55: An Array of Records ● Exercise 56: Array of Records from a File (Temperatures Revisited) ● Exercise 57: A Deck of Playing Cards ● Exercise 58: Final Project ­ Text Adventure Game Introduction: Java Java is not a language for beginners. I am convinced that most “beginner” Java books only work on  people who already know how to code or who are prodigies. I can teach you Java, even if you have never programmed before and even if you are not a genius. But I  am going to have to cheat a bit. What I will teach you is Java. But it is not all of Java. I have to leave parts out because you’re not ready  for them. If you think you are ready for the more complex parts of Java, then 1) you’re wrong, and 2)  buy a different book. There are a great many books on the market that will throw all the complexity Java has to offer, faster than you can handle it. In particular, I have one huge omission: I am going to avoid the topic of Object­Oriented Programming  (OOP). I’m pretty sure that uncomfortable beginners can’t learn how to code well and also learn  object­oriented programming at the same time. I have almost never seen it work. I plan to write a follow­up book that will cover Object­Oriented Programming and the more complex  parts of Java. But you should finish this book first. I have been teaching students to program for many  many years, and I have never had a student come visit me from college and say “I wish you had spent  less time on the fundamentals.” What You Will Learn ● How to install the Java compiler and a text editor to write programs with. ● How to create, compile and run your first Java program. ● Variables and getting input from the user and from files. ● Making decisions with if statements ● Loops ● Arrays ● Records In the final chapter you’ll write a not­so­simple text­based adventure game with levels loaded from text  files. You should also be able to write a text­based card game like Hearts or Spades. What You Will Not Learn ● Graphics ● Object­oriented programming ● How to make an Android app I like graphics, and they’re not hard in Java compared to, say, C++, but I can’t cover everything and  teach the basics well, so something had to go. Object­oriented programming has no place in an introductory book, in my opinion. Android apps are pretty complex, and if you’re a beginner, an app is way beyond your ability. Nothing  in this book will hurt your chances of making an app, though, and the kinder, gentler pace may keep you going when other books would frustrate you into quitting. Also, I hope to write two more books after this one. My second book will cover graphics and  object­oriented programming in Java. My third book will cover making a simple Android app, assuming you have finished working through the first two books. How to Read This Book Although I have provided a zipfile containing the source code for all the exercises in the book, you  should type them in. For each exercise, type in the code. Yourself, by hand. How are you going to learn otherwise? None of  my former students ever became great at programming by merely reading others’ code. Work the study drills, if there are any. Do the challenge assignments, if provided. And by the end you  will be able to code, at least a little. License Some chapters of this book are made available free to read online but you are not allowed to make  copies for others. Unless otherwise stated, all content is copyright 2013 Graham Mitchell. Exercise 0: The Setup This exercise has no code but do not skip it. It will help you to get a decent text editor installed and to  install the Java Development Kit (JDK). If you do not do both of these things, you will not be able to do  any of the other exercises in the book. You should follow these instructions as exactly as possible. Warning! This exercise requires you to do things in a terminal window (also called a  “shell”, “console” or “command prompt”. If you have no experience with a  terminal window, then you might need to go learn that first. Zed Shaw’s excellent Command Line Crash Course is at  http://cli.learncodethehardway.org/book/ and will teach you how to use  PowerShell on Windows or the Terminal on OS X or “bash” on Linux. Mac OS X To complete this exercise, complete the following tasks: 1. Go to http://www.barebones.com/products/textwrangler/ with your web browser. Download the  TextWrangler text editor and install it. 2. Put TextWrangler in your dock so you can reach it easily. 3. Find a program called “Terminal”. (Search for it if you have to.) 4. Put your Terminal in your dock as well. 5. Launch the Terminal. 6. In the Terminal program, type javac ­version and press RETURN. You should see a  response like javac 1.7.0_04. It is okay if the number after javac is not exactly the same  as long as it is 1.6 or greater. If you get an error message, however, you may need to install the  JDK. 7. After this, you should be back at a prompt. 8. Learn how to create a folder (make a directory) from the Terminal. Make a directory so that you  can put all your code from this book in it. 9. Learn how to change into this new directory from the Terminal. Change into it. 10.Use your text editor (TextWrangler) to create a file called test.txt and save it into the  directory you just created. 11.Go back to the Terminal using only the keyboard to switch windows. 12.Back in Terminal, see if you can list the contents of the directory to see your newly created file. OS X: What You Should See I don’t currently have access to a Mac, so here is Zed following the steps above on his computer in  Terminal. Your computer would be different, so see if you can figure out all the differences between  what he did and what you should do. Last login: Fri Jul 19 00:56:54 on ttys001 ~ $ javac ­version javac 1.6.22 ~ $ mkdir javacode ~ $ cd javacode javacode $ ls # ... Use TextWrangler here to edit test.txt.... javacode $ ls test.txt javacode $ Windows 1. Go to http://notepad­plus­plus.org/ with your web browser, get the Notepad++ text editor, and  install it. You do not need to be an administrator to do this. 2. Make sure you can get to Notepad++ easily by putting it on your desktop and/or in Quick  Launch. Both options are available during setup. 3. Run PowerShell from the Start menu. Search for it and you can just hit Enter to run it. 4. Make a shortcut to PowerShell on your desktop and/or Quick Launch for your convenience. 5. Go to http://www.oracle.com/technetwork/java/javase/downloads/ with your web browser. A) Click the big “Java” button on the left near the top to download the Java Platform (JDK)  7u25. Clicking this will take you to a different page. B) On this page you will have to accept the license agreement and then choose the “Windows  x86” version near the bottom of the list. Download the file. C) Once downloaded, run jdk­7u25­windows­i586.exe to install it. After you click  “Next >” the very first time you will see a screen that says Install to: C:\Program  Files (x86)\Java\jdk1.7.0_25\ or something similar. Make a note of this  location; you will need it soon. 6. Once the JDK is installed you will need to find out the exact name of the folder where it was  installed. Look on the C: drive inside the Program Files folder or the C:\Program  Files (x86) folder if you have one. You are looking for a folder called Java. Inside that is  a folder called jdk1.7.0_25 that has a folder called bin inside it. The folder name must have  jdk1.7 in it; jre7 is not the same. Make sure there’s a bin folder. 7. Once you are in this folder, you can left­click up in the folder location and it will change to  something that looks like C:\Program Files (x86)\Java\jdk1.7.0_25\bin. You  can write this down or highlight and right­click to copy it to the clipboard. 8. Once the JDK is installed and you know this location open up your terminal window  (PowerShell). In PowerShell, type this: [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Program Files (x86)\Java\jdk1.7.0_25\bin", "User") Put it all on one line, though. If you copied the folder location to the clipboard, then you can type everything up to the $env:Path;  and then right­click in the PowerShell window and it should paste the folder name for you. Then you  can just finish the line by typing ", "User") and pressing ENTER. If you get an error, you typed  something incorrectly. You can press the up arrow to get it back and the left and right arrows to find and fix your mistake, then press ENTER again. 1. Once the setEnvironmentVariable command completes without giving you an error,  close the PowerShell window by typing exit at the prompt. If you don’t close it the change you just made won’t take effect. 2. Launch PowerShell again. 3. Type javac ­version at the prompt. You should see a response like javac 1.7.0_25.  Congratulations! If you got that to work, the rest of this book ought to be relatively easy. 4. After this, you should be back at a blinking PowerShell prompt. 5. Learn how to create a folder (make a directory) from the terminal window (PowerShell). Make a  directory so that you can put all your code from this book in it. 6. Learn how to change into this new directory from the prompt. Change into it. 7. Use your text editor (Notepad++) to create a file called test.txt and save it into the directory

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.