Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Head first Java - Java programming book, Study notes of Java Programming

Head first Java - Java programming book

Typology: Study notes

2016/2017

Uploaded on 10/10/2017

priyanka110587
priyanka110587 🇮🇳

4.8

(10)

2 documents

1 / 442

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download Head first Java - Java programming book and more Study notes Java Programming in PDF only on Docsity!

Praise for other Head First books

“Kathy and Bert’s Head First Java transforms the printed page into the closest thing to a GUI you’ve ever

seen. In a wry, hip manner, the authors make learning Java an engaging ‘what’re they gonna do next?’

experience.”

— Warren Keuffel, Software Development Magazine

“Beyond the engaging style that drags you forward from know-nothing into exalted Java warrior status, Head

First Java covers a huge amount of practical matters that other texts leave as the dreaded ‘exercise for the

reader....’ It’s clever, wry, hip and practical—there aren’t a lot of textbooks that can make that claim and live

up to it while also teaching you about object serialization and network launch protocols.”

— Dr. Dan Russell, Director of User Sciences and Experience Research

IBM Almaden Research Center (and teaches Artificial Intelligence at

Stanford University)

“It’s fast, irreverent, fun, and engaging. Be careful—you might actually learn something!”

— Ken Arnold, former Senior Engineer at Sun Microsystems

Coauthor (with James Gosling, creator of Java), The Java Programming

Language

“I feel like a thousand pounds of books have just been lifted off of my head.”

— Ward Cunningham, inventor of the Wiki and founder of the Hillside Group

“Just the right tone for the geeked-out, casual-cool guru coder in all of us. The right reference for practi-

cal development strategies—gets my brain going without having to slog through a bunch of tired, stale

professor-speak.”

— Travis Kalanick, Founder of Scour and Red Swoosh

Member of the MIT TR

“There are books you buy, books you keep, books you keep on your desk, and thanks to O’Reilly and the

Head First crew, there is the penultimate category, Head First books. They’re the ones that are dog-eared,

mangled, and carried everywhere. Head First SQL is at the top of my stack. Heck, even the PDF I have

for review is tattered and torn.”

— Bill Sawyer, ATG Curriculum Manager, Oracle

“This book’s admirable clarity, humor and substantial doses of clever make it the sort of book that helps

even non-programmers think well about problem-solving.”

— Cory Doctorow, co-editor of Boing Boing

Author, Down and Out in the Magic Kingdom

and Someone Comes to Town, Someone Leaves Town

Praise for other Head First books

“I received the book yesterday and started to read it... and I couldn’t stop. This is definitely très ‘cool.’ It

is fun, but they cover a lot of ground and they are right to the point. I’m really impressed.”

— Erich Gamma, IBM Distinguished Engineer, and co-author of Design Patterns

“One of the funniest and smartest books on software design I’ve ever read.”

— Aaron LaBerge, VP Technology, ESPN.com

“What used to be a long trial and error learning process has now been reduced neatly into an engaging

paperback.”

— Mike Davidson, CEO, Newsvine, Inc.

“Elegant design is at the core of every chapter here, each concept conveyed with equal doses of

pragmatism and wit.”

— Ken Goldstein, Executive Vice President, Disney Online

“I ♥ Head First HTML with CSS & XHTML —it teaches you everything you need to learn in a ‘fun coated’

format.”

— Sally Applin, UI Designer and Artist

“Usually when reading through a book or article on design patterns, I’d have to occasionally stick myself

in the eye with something just to make sure I was paying attention. Not with this book. Odd as it may

sound, this book makes learning about design patterns fun.

“While other books on design patterns are saying ‘Buehler… Buehler… Buehler…’ this book is on the

float belting out ‘Shake it up, baby!’”

— Eric Wuehler

“I literally love this book. In fact, I kissed this book in front of my wife.”

— Satish Kumar

Beijing • Cambridge • Farnham • Kln • Sebastopol • Taipei • Tokyo

Head First Programming

Wouldn‛t it be dreamy if there were an introductory programming book that didn‛t make you wish you were anywhere other than stuck in front of your computer writing code? I guess it‛s just a fantasy... Paul Barry David Griffiths

Head First Programming by Paul Barry and David Griffiths

Copyright © 2009 O’Reilly Media, Inc. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly Media books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles ( safari.oreilly.com ). For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com.

Series Creators: Kathy Sierra, Bert Bates

Series Editor: Brett D. McLaughlin

Editor: Brian Sawyer

Cover Designers: Steve Fehler

Production Editor: Scott DeLugan

Proofreader: Colleen Toporek

Indexer: Angela Howard

Page Viewers: David: Dawn; Paul: Deirdre, Joseph, Aaron, and Aideen

Printing History:

November 2009: First Edition.

The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. The Head First series designations, Head First Programming , and related trade dress are trademarks of O’Reilly Media, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps.

While every precaution has been taken in the preparation of this book, the publisher and the authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

No surfers or snakes were harmed in the making of this book.

ISBN: 978-0-596-80237-

[C]

TM This book uses RepKover™, a durable and flexible lay-flat binding.

Aideen (future singer/songwriter)

Paul

Deirdre (super mom)

Aaron and Joseph (real-life surfer dudes)

Dawn (without whom the book would never have been finished)

viii

the authors

Authors of Head First Programming

Paul Barry recently worked out that he has

been programming for close to a quarter century, a

fact that came as a bit of a shock. In that time, Paul

has programmed in lots of different programming

languages, lived and worked in two countries on two

continents, got married, had three kids (well... his wife

Deirdre actually had them , but Paul did play his part),

completed a B.Sc. and M.Sc. in Computing, written

two other books, written a bunch of technical articles

for Linux Journal , and managed not to lose his hair... a

situation that, sadly, may in fact be changing.

When Paul first saw Head First HTML with CSS &

XHTML, he loved it so much he knew immediately that

the Head First approach would be a great way to teach

programming. He is only too delighted, together with

David, to create this book in an attempt to prove his

hunch correct.

Paul’s day job is working as a lecturer at The Institute

of Technology, Carlow in Ireland. As part of the

Department of Computing & Networking, Paul gets

to spend his day exploring, learning, and teaching

cool programming technologies, which is his idea of

fun (and further proof that Paul probably needs to get

out more). Paul hopes his students think the stuff he

teaches is fun, too.

Paul Barry

David Griffiths

David Griffiths began programming at age 12,

when he saw a documentary on the work of Seymour

Papert. At age 15, he wrote an implementation of

Papert’s computer language LOGO. After studying

Pure Mathematics at University, he began writing code

for computers and magazine articles for humans. He’s

worked as an agile coach, a developer, and a garage

attendant, but not in that order. He can write code in

over 10 languages and prose in just one, and when not

writing, coding, or coaching, he spends much of his

spare time travelling with his lovely wife—and fellow

Head First author—Dawn.

Before writing Head First Programming , he wrote another

book called Head First Rails , which is an excellent read

and would make a thoughtful gift for any close friend or

family member.

You can follow him on Twitter at:

http://twitter.com/dgriffiths

table of contents

ix

Table of Contents (Summary)

Table of Contents (the real thing)

Your brain on Programming. Here you are trying to learn something,

while here your brain is doing you a favor by making sure the learning doesn’t stick. Your brain’s thinking, “Better leave room for more important things, like which wild animals to avoid and whether naked snowboarding is a bad idea.” So how do you trick your brain into thinking that your life depends on knowing Programming?

Intro

Who is this book for? xxiv

We know what you’re thinking xxv

Metacognition xxvii

Bend your brain into submission xxix

Read me xxx

The technical review team xxxii

Acknowledgments xxxiii

Intro xxiii 1 Starting to Code: Finding Your Way 1 2 Textual Data: Every String Has Its Place 37 3 Functions: Let’s Get Organized 77 4 Data Files and Arrays: Sort It Out 113 5 Hashes and Databases: Putting Data in Its Place 145 6 Modular Programming: Keeping Things Straight 177 7 Building a Graphical User Interface: Going All Gooey 215 8 GUIs and Data: Data Entry Widgets 257 8 1/2 Exceptions and Message Boxes: Get the Message? 293 9 Graphical Interface Elements: Selecting the Right Tool 313 10 Custom Widgets and Classes: With an Object in Mind 349 i Leftovers: The Top Ten Things (We Didn’t Cover) 385

table of contents

xi

Every string has its place

Imagine trying to communicate without words.

All programs process data, and one of the most important types of data is text. In this chapter, you’ll work through the basics of textual data. You’ll automatically search text and get back exactly what you’re looking for. Along the way, you’ll pick up key programming concepts such as methods and how you can use them to bend your data to your will. And finally, you’ll instantly power up your programs with the help of library code.

textual data

Your new gig at Starbuzz Coffee 38 Here’s the current Starbuzz code 39 The cost is embedded in the HTML 41 A string is a series of characters 41 Find characters inside the text 42 But how do you get at more than one character? 43 The String Exposed 48 Beans’R’Us is rewarding loyal customers 50 Searching is complex 52 Python data is smart 54 Strings and numbers are different 64 The program has overloaded the Beans’R’Us Server 67 Time... if only you had more of it 68 You’re already using library code 69 Order is restored 74 Your Programming Toolbox 75

table of contents

xii

Starbuzz is out of beans! 78 What does the new program need to do? 79 Don’t duplicate your code... 81 Reuse code with functions 82 Always get things in the right order 84 Return data with the return command 87 Use the Web, Luke 93 The function always sends the same message 94 Use parameters to avoid duplicating functions 96 Someone decided to mess with your code 102 The rest of the program can’t see the password variable 104 When you call a function, the computer creates a fresh list of variables 105 When you leave a function, its variables get thrown away 106 Starbuzz is fully stocked! 110 Your Programming Toolbox 111

Let’s get organized

functions

As programs grow, the code often becomes more complex.

And complex code can be hard to read, and even harder to maintain. One way of managing this complexity is to create functions. Functions are snippets of code that you use as needed from within your program. They allow you to separate out common actions , and this means that they make your code easier to read and easier to maintain. In this chapter, you’ll discover how a little function knowledge can make your coding life a whole lot easier.

table of contents

xiv

Who won the surfing contest? 146 Associate the name with the score 150 Associate a key with a value using a hash 153 Iterate hash data with for 154 The data isn’t sorted 158 When data gets complex 160 Return a data structure from a function 164 Here’s your new board! 168 Meanwhile, down at the studio... 169 The code remains the same; it’s the function that changes 170 TVN’s data is on the money! 174 Your Programming Toolbox 175

Putting data in its place

hashes and databases

Arrays aren’t the only show in town when it comes to data.

Programming languages come with other data-arranging goodies too, and our chosen tool, Python, is no exception. In this chapter, you’ll associate values with names using a data structure commonly called the hash (better known as dictionary to Python-folk). And when it comes to working with stored data , you’ll read data from an external database system as well as from regular text-based files. All the world’s awash with data, so turn the page and start applying your ever- expanding programming skills to some cool data-processing tasks.

table of contents

xv

Keeping things straight

The code that you write will make its way into many programs.

And, although sharing is good, you need to be careful. One programmer might take your code and use it in an unexpected way, while another might change it without even letting you know. You might want to use one function in all your programs and, over time, that function’s code might change to suit your needs. Smart programmers take advantage of modular programming techniques to keep their workload manageable.

modular programming

Head First Health Club is upgrading some systems 178 The program needs to create a transaction file 179 Use strings to format strings 180 The Format String Exposed 186 A late night email ruins your day 187 $50,000... for a donut?! 188 Only the sales from your program were rejected 189 The new bank uses a new format 190 Your coffee bar program still uses the old format 191 Don’t just update your copy 192 So how do you create a module...? 193 The transaction file is working great, too 199 The health club has a new requirement 200 The Starbuzz code 205 The two discount functions have the same name 206 Fully Qualified Names (FQNs) prevent your programs from getting confused 207 The discounts get the customers flooding in 213 Your Programming Toolbox 214

table of contents

xvii

Data entry widgets

GUIs don’t just process events. They also handle data.

Almost all GUI applications need to read user data, and choosing the right widgets can change your interface from data entry hell to user heaven. Widgets can accept plain text, or just present a menu of options. There are lots of different widgets out there, which means there are lots of choices, too. And, of course, making the right choice can make all the difference. It’s time to take your GUI program to the next level.

guis and data

Head-Ex needs a new delivery system 258 They’ve already designed the interface 259 Read data from the GUI 260 The Entry and Text widgets let you enter text data into your GUI 261 Read and write data to text fields 262 Large Text fields are harder to handle 263 One of the Head-Ex deliveries went astray 270 Users can enter anything in the fields 271 Radio buttons force users to choose a valid depot 272 Creating radio buttons in tkinter 273 The radio buttons should work together 275 The radio buttons can share a model 276 The system tells the other widgets when the model changes 277 So how do you use models in tkinter? 278 Head-Ex’s business is expanding 282 There are too many depots on the GUI 283 An OptionMenu lets you have as many options as needed 284 The model stays the same 285 Things are going great at Head-Ex 291 Your Programming Toolbox 292

Look, I don‛t care what you guys do, I‛m gonna stay selected.

Yeah, me too.

Huh, and me.

table of contents

xviii

What’s that smell? 294 Someone changed the file permissions 295 When it couldn’t write to the file, the program threw an exception 296 Catch the exception 297 Watch for exceptions with try/except 298 There’s an issue with the exception handler 302 A message box demands attention 303 Creating message boxes in Python 304 Your Programming Toolbox 311

Get the message?

exceptions and message boxes

Sometimes things just go wrong. You just need to handle it.

There will always be things beyond your control. Networks will fail. Files will disappear. Smart coders learn how to deal with those kinds of errors and make their programs recover gracefully. The best software keeps the user informed about the bad things that happen and what should be done to recover. By learning how to use exceptions and message boxes , you can take your software to the next level of reliability and quality.