0% found this document useful (0 votes)
9 views

javanotes

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

javanotes

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Contents

Preface xiii

1 The Mental Landscape 1


1.1 Machine Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Asynchronous Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 The Java Virtual Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Building Blocks of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Object-oriented Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 The Modern User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 The Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Quiz on Chapter 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Names and Things 19


2.1 The Basic Java Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Variables and Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Types and Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Variables in Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Objects and Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1 Built-in Subroutines and Functions . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2 Operations on Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.3 Introduction to Enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 Text Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 A First Text Input Example . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 Text Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.3 TextIO Input Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.4 Formatted Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.5 Introduction to File I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5 Details of Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.1 Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.5.2 Increment and Decrement . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.5.3 Relational Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.5.4 Boolean Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.5 Conditional Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.6 Assignment Operators and Type-Casts . . . . . . . . . . . . . . . . . . . . 48
2.5.7 Type Conversion of Strings . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.8 Precedence Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.6 Programming Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

iii
iv CONTENTS

2.6.1 Java Development Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


2.6.2 Command Line Environment . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6.3 IDEs and Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.6.4 The Problem of Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Exercises for Chapter 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Quiz on Chapter 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3 Control 61
3.1 Blocks, Loops, and Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.1 Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.2 The Basic While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.3 The Basic If Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2 Algorithm Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.1 Pseudocode and Stepwise Refinement . . . . . . . . . . . . . . . . . . . . 66
3.2.2 The 3N+1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.3 Coding, Testing, Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.3 while and do..while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.3.1 The while Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.2 The do..while Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.3.3 break and continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4 The for Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.1 For Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.4.2 Example: Counting Divisors . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.4.3 Nested for Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.4.4 Enums and for-each Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.5 The if Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.1 The Dangling else Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.2 The if...else if Construction . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.3 If Statement Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.5.4 The Empty Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6 The switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6.1 The Basic switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6.2 Menus and switch Statements . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.6.3 Enums in switch Statements . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.6.4 Definite Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7 Exceptions and try..catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.1 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.2 try..catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.7.3 Exceptions in TextIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.8 GUI Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Exercises for Chapter 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Quiz on Chapter 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4 Subroutines 117
4.1 Black Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.2 Static Subroutines and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2.1 Subroutine Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2.2 Calling Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy