java software solutions foundations of program design sixth edition by lewis & loftus
DESCRIPTION
Chapter 1: Introduction. Java Software Solutions Foundations of Program Design Sixth Edition by Lewis & Loftus. Introduction. This chapter explores the fundamentals of computer processing Read on your own components of a computer how those components interact - PowerPoint PPT PresentationTRANSCRIPT
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Software Solutions Foundations of Program Design
Sixth Edition
by Lewis & Loftus
Chapter 1: Introduction
1-2Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Introduction
• This chapter explores the fundamentals of computer processing– Read on your own
– components of a computer– how those components interact– how computers store and manipulate information– computer networks– the Internet and the World Wide Web– Appendix B (digital representation of numbers)
– In class– programming and programming languages– an introduction to Java– an overview of object-oriented concepts
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Software
• Computer consists of hardware and software
• Software (program) is used to make the computer execute a particular task
• A program is written in a particular language• We will be using Java J2SE 6
1-4Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Software Categories
• Operating System– controls all machine activities– provides the user interface to the computer– manages resources such as the CPU and memory– Windows XP, Unix, Linux, Mac OS
• Application program– generic term for any other kind of software– word processors, missile control systems, games
• Most operating systems and application programs have a graphical user interface (GUI)
1-5Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Program Development
• The mechanics of developing a program include several activities
– writing the program in a specific programming language (such as Java)
– translating the program into a form that the computer can execute
– investigating and fixing various types of errors that can occur
• Software tools can be used to help with all parts of this process
1-6Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Language Levels
• There are four programming language levels:– machine language– assembly language– high-level language– fourth-generation language
• Each type of CPU has its own specific machine language
• The other levels were created to make it easier for a human being to read and write programs
1-7Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Programming Languages
• Each type of CPU executes only a particular machine language
• A program must be translated into machine language before it can be executed
• A compiler is a software tool which translates source code into a specific target language
• Often, that target language is the machine language for a particular CPU type
1-8Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Syntax and Semantics
• The syntax rules of a language define how we can put together symbols, reserved words, and identifiers to make a valid program
– A program that is syntactically correct is not necessarily logically (semantically) correct
• The semantics of a program statement define what that statement means (its purpose or role in a program)
– A program will always do what we tell it to do, not what we meant to tell it to do
1-9Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Syntax
• A programming language specifies the words and symbols that we can use to write a program
• A programming language employs a set of rules that dictate how the words and symbols can be put together to form valid program statements
1-10Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java
• The Java programming language was created by Sun Microsystems, Inc.
• It was introduced in 1995 and it's popularity has grown quickly since
• Java is
– general purpose
– platform-independent
– object-oriented language
– includes an extensive library of classes
1-11Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Translation
• The Java compiler translates Java source code into a special representation called bytecode
• Java bytecode is not the machine language for any traditional CPU
• Another software tool, called an interpreter, translates bytecode into machine language and executes it
• The Java compiler is not tied to any particular machine
– Java is considered to be architecture-neutral
1-12Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Translation
Java sourcecode
Machinecode
Javabytecode
Bytecodeinterpreter
(java)
Bytecodecompiler
Javacompiler(javac)
1-13Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Program Structure
• In the Java programming language:– A program is made up of one or more classes– A class contains one or more methods– A method contains program statements
• These terms will be explored in detail throughout the course
• A Java application always contains a method called main
• See Lincoln.java
1-14Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Program Structure
public class MyProgram
{
}
// comments about the class
class header
class body
Comments can be placed almost anywhere
1-15Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Java Program Structure
public class MyProgram
{
}
// comments about the class
public static void main (String[] args)
{
}
// comments about the method
method headermethod body
1-16Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Comments
• Comments in a program are called inline documentation
• They should be included to explain the purpose of the program and describe processing steps
• They do not affect how a program works
• Java comments can take three forms:// this comment runs to the end of the line
/* this comment runs to the terminating symbol, even across line breaks */
/** this is a javadoc comment */
1-17Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Identifiers
• Identifiers are the words a programmer uses in a program
• An identifier can be made up of letters, digits, the underscore character ( _ ), and the dollar sign
• Identifiers cannot begin with a digit
• Java is case sensitive - Total, total, and TOTAL are different identifiers
• By convention, programmers use different case styles for different types of identifiers, such as
– title case for class names - Lincoln
– upper case for constants - MAXIMUM
1-18Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Identifiers
• Sometimes we choose identifiers ourselves when writing a program (such as Lincoln)
• Sometimes we are using another programmer's code, so we use the identifiers that he or she chose (such as println)
• Often we use special identifiers called reserved words that already have a predefined meaning in the language
• A reserved word cannot be used in any other way
1-19Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Reserved Words
• The Java reserved words:
abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble
elseenumextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceofint
interfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfpsuper
switchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile
1-20Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
White Space
• Spaces, blank lines, and tabs are called white space
• White space is used to separate words and symbols in a program
• Extra white space is ignored
• A valid Java program can be formatted many ways
• Programs should be formatted to enhance readability, using consistent indentation
• See Lincoln2.java
• See Lincoln3.java
1-21Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Errors• A program can have three types of errors
• The compiler will find syntax errors and other basic problems (compile-time errors)
– If compile-time errors exist, an executable version of the program is not created
• A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors)
• A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors)
1-22Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Problem Solving
• The purpose of writing a program is to solve a problem
• Solving a problem consists of multiple activities:
– Understand the problem
– Design a solution
– Consider alternatives and refine the solution
– Implement the solution
– Test the solution
• These activities are not purely linear – they overlap and interact
1-23Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Problem Solving
• The key to designing a solution is breaking it down into manageable pieces
• When writing software, we design separate pieces that are responsible for certain parts of the solution
• An object-oriented approach lends itself to this kind of solution decomposition
• We will dissect our solutions into pieces called objects and classes
1-24Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Object-Oriented Programming
• Java is an object-oriented programming language
• As the term implies, an object is a fundamental entity in a Java program
• Objects can be used effectively to represent real-world entities
• For instance, an object might represent a particular employee in a company
• Each employee object handles the processing and data management related to that employee
1-25Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Objects
• An object has:
– state - descriptive characteristics
– behaviors - what it can do (or what can be done to it)
• The state of a bank account includes its account number and its current balance
• The behaviors associated with a bank account include the ability to make deposits and withdrawals
• Note that the behavior of an object might change its state
1-26Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Classes
• An object is defined by a class
• A class is the blueprint of an object
• The class uses methods to define the behaviors of the object
• The class that contains the main method of a Java program represents the entire program
• A class represents a concept, and an object represents the embodiment of that concept
• Multiple objects can be created from the same class
1-27Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Objects and Classes
Bank Account
A class(the concept)
John’s Bank AccountBalance: $5,257
An object(the realization)
Bill’s Bank AccountBalance: $1,245,069
Mary’s Bank AccountBalance: $16,833
Multiple objectsfrom the same class
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Inheritance
One class can be used to derive another via inheritance
Classes can be organized into hierarchies
1-29Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Storing Information Digitally
1-30Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Analog vs. Digital
• There are two basic ways to store and manage data:
• Analog– continuous, in direct proportion to the data represented– music on a record album - a needle rides on ridges in the
grooves that are directly proportional to the voltages sent to the speaker
• Digital– the information is broken down into pieces, and each piece is
represented separately– music on a compact disc - the disc stores numbers representing
specific voltage levels sampled at specific times
1-31Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Digital Information
• Computers store all information digitally:– numbers– text– graphics and images– video– audio– program instructions
• In some way, all information is digitized - broken down into pieces and represented as numbers
1-32Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Representing Text Digitally
• For example, every character is stored as a number, including spaces, digits, and punctuation
• Corresponding upper and lower case letters are separate characters
H i , H e a t h e r .
72 105 44 32 72 101 97 116 104 101 114 46
1-33Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Binary Numbers
• Once information is digitized, it is represented and stored in memory using the binary number system
• A single binary digit (0 or 1) is called a bit
• Devices that store and move information are cheaper and more reliable if they have to represent only two states
• A single bit can represent two possible states, like a light bulb that is either on (1) or off (0)
• Permutations of bits are used to store values
1-34Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Bit Permutations
1 bit
01
2 bits
00011011
3 bits
000001010011100101110111
4 bits
00000001001000110100010101100111
10001001101010111100110111101111
Each additional bit doubles the number of possible permutations
1-35Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Bit Permutations
• Each permutation can represent a particular item
• There are 2N permutations of N bits
• Therefore, N bits are needed to represent 2N unique items
21 = 2 items
22 = 4 items
23 = 8 items
24 = 16 items
25 = 32 items
1 bit ?
2 bits ?
3 bits ?
4 bits ?
5 bits ?
How manyitems can be
represented by
1-36Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Number Systems
• From Appendix B
• Normally, we use decimal numbers• Computers use base 2
1-37Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Decimal Numbers (aka base-10)
• Decimal numbers are represented using the 10 digits 0-9
• A single digit can represent 10 values• Two digits can represent 100 values• Three digits can represent 1000 different
values• N digits can represent 10N different values
1-38Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Place Values
• Each position in a number has a place value which is the power of 10 to multiply the digit by
8427 = 8 * 103 + 4*102+2*101+7*100
= 8 * 1000 + 4*100+2*10+7*1• Numbers in other bases work similarly
– Multiplier for a position is a power of the base
1-39Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Binary Numbers (aka base 2)
• There are only two binary digits - 0 and 1• The value of each place is a power of 2
1101 = 1*23 + 1*22 + 0*21+1*20
= 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 13• A binary digit is called a bit.• 8 binary digits is called a byte
1-40Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Octal and Hexadecimal Numbers
• In computer science we often use base 8 and base 16 because they are easier to read than very long binary numbers– the conversion between these bases and base
2 is very easy.
• Base 8 (octal) numbers use the digits 0-7• Base 16 (hexadecimal) numbers use 0-9
plus A, B, C, D, E, F
1-41Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Conversions
• Binary to octal (hexadecimal): group digits into sets of 3 (4) and replace each set by the equivalent octal (hexadecimal) digit
• Octal (hexadecimal) to binary: replace each digit by the 3 (4) bits of the binary representation for that digit.
1-42Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Examples
• 1237 = 001 010 011 111• 101 001 000 = 510• 16C = 0001 0110 1100• 1111 0100 1000 1010 = F48A
1-43Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Converting Decimal to Binary
• The position of the highest order bit is the largest power of 2 that is less than or equal to the number.
• The highest order bit is the remainder when the number is divided by 2.
• Each successive bit, is the remainder when the result of the previous bit is divided by 2
• Read the remainders up to get the number