cs 115 object oriented programming i lecture 2 george koutsogiannakis copyright: fall 2014...

52
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 2 GEORGE KOUTSOGIANNAKIS Copyright: Fall 2014 --Illinois Institute of Technology- George Koutsogiannakis 1

Post on 19-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

CS 115

OBJECT ORIENTED PROGRAMMING ILECTURE 2

GEORGE KOUTSOGIANNAKISCopyright: Fall 2014 --Illinois Institute of Technology-George Koutsogiannakis

1

NOTE

• MAKE SURE THAT YOU HAVE YOUR TEXT WITH YOU IN EVERY LECTURE!!

2

• Hardware– Central Processing Unit– Memory and Storage Devices

• Operating Systems• Application Software• Computer Networks and the Internet

Basic Computer Concepts

3

Typical Computer Hardware• CPU– executes the instructions of the program

• Hard disk and CD-ROM– store instructions and data so program can be loaded into

memory and executed• Main memory– stores the program instructions and data while executing

• Keyboard and mouse– used for data input

• Monitor– used to display output from a program

• Other accessories, such as a printer

4

A Typical Design of a Personal Computer

5

Central Processing Unit (CPU)• Arithmetic Logic Unit– performs integer arithmetic and logical operations

• Floating-point Unit– performs floating-point operations

• Hardware registers– store data and memory addresses

• Instruction Pointer– keeps track of next instruction to execute

• Examples of CPUs: – Intel Core 2 Duo™, AMD Turion™ 64, Sun Microsystems

SPARC, Hewlett-Packard PA-RISC, IBM POWER processor

6

CPU Instructions

• Move data from one location to another• Perform a calculation• Compare data• Change the sequence of instructions to

execute (the flow of control)

7

Memory or Storage Devices

• Memory consists of cells that hold one bit.• A bit's value can be 0 or 1• A byte is 8 binary digits (bits)• Storage capacity is expressed as:– Kilobytes (1,024 bytes)– Megabytes (1,048,576 bytes)– Gigabytes (1,073,741,824 bytes

8

Operating System (OS) Software• OS boots when computer is turned on, and runs

continuously• Controls the peripheral devices (disks, keyboard, mouse,

etc.)• Supports multitasking (multiple programs executing

simultaneously)• Allocates memory to each program• Prevents one program from damaging another program• Controls the file system. Hard drive storage/file opening for

writing/ file opening for reading/closing of files/allocating resources needed for file operations.

• OS Examples: Microsoft Windows, Linux

9

Application Software

• Written to perform specific tasks• Runs "on top of" the operating system• Examples: word processor, spreadsheet,

database management system, games, Internet browser, etc.

10

Data Representation • Computer data is stored in the form of binary numbers.• Binary Numbers

– Expressed in base 2 system• (two values are: 0 and 1)

• Hexadecimal Numbers– Base-16 system used as shorthand for representing binary

numbers• The Unicode Character Set

– Used to represent characters. Every character is represented by a coded number.

– You can find out more about the coded numbers by going to web site: http://www.unicode.org/standard/WhatIsUnicode.html

11

Binary Equivalents of Decimal Numbers

Decimal Binary Equivalent 0 0000

1 00012 0010

3 00114 0100

5 01016 01107 01118 1000

12

Powers of 2

Decimal Decimal20 1 28 25621 2 29 51222 4 210 1,02423 8 211 2,04824 16 212 4,09625 32 213 8,19226 64 214 16,38427 128 215 32,768

13

Decimal (base 10) numbers

A decimal number can be represented as the sum of powers of 10 (the base) with coefficients in the base 10 digits (0 - 9)

For example:2485 = 2000 + 400 + 80 + 52485 = 2 * 1000 + 4 * 100 + 8 * 10 + 5 * 12485 = 2 * 103 + 4 * 102 + 8 * 101+ 5 * 100

14

Converting From Decimal to Binary• Just as a decimal number can be represented as a sum of

powers of 10 (the base) with coefficients in the base 10 alphabet (0 to 9) we can change the representation:

• A number can also be represented as the sum of powers of 2 (the base of the binary system) with coefficients in the base 2 digits (0 and 1).

• Since we change the base to 2 instead of 10 we will call that representation of the number: a binary number

• To make the conversion from a base of 10 top a base of 2 we need an algorithm to do that.

• We can also start with a base of 2 representation of a number (a binary number) and then convert it back to a base of 10 (make it a decimal number).

15

BINARY TO DECIMAL CONVERSION-Example

• Convert the binary number 100110 to decimal where the extreme right is the Least Significant binary number:

• 1*25+0*24+0*23+1*22+1*21+0*20

• 32+0+0+4+2=0=38• 3*101+8*100

16

DECIMAL TO BINARY CONVERSION-Example

• To convert 38 back to the binary we keep dividing by two and keep the remainder:

• 38/2=19 remainder is 0 (LSB: least significant binary)• 19/2=9 remainder is 1• 9/2=4 remainder is 1• 4/2=2 remainder is 0• 2/2=1 remainder is 0• ½=0 remainder is 1 (MSB : most significant binary)

17

DECIMAL TO BINARY CONVERSION-Example

• Therefore the binary number is from MSB to LSM:100110

• Notice that the representation is left to right where the MSB is on the left.

1*25+0*24+0*23+1*22+1*21+0*20

18

Hexadecimal Numbers

• Base-16 number system (16 digits)• Uses digits 0 - 9 and letters A – F for

remainder digits.• One hexadecimal digit can express values

from 0 to 15 – For example: C represents 12

• Thus, one hexadecimal digit can represent 4 bits in a binary system.

19

Hexadecimal - Binary Equivalents

Hex Binary Decimal Hex Binary Decimal

0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 A 1010 10 3 0011 3 B 1011 11 4 0100 4 C 1100 12 5 0101 5 D 1101 13 6 0110 6 E 1110 14 7 0111 7 F 1111 15

20

The Unicode Character Set

• Each character is stored as 16-bits• Maximum number of characters that can be

represented: 65,536 (216) • ASCII character set (used by many

programming languages) stores each character as 7 bits (maximum number of characters is 128)

• For compatibility, first 128 characters of Unicode set represent the ASCII characters

21

Some Unicode Characters

Character Decimal Value Hex Value * 42 002A

1 49 0031 2 50 0032 A 65 0041 B 66 0042 a 97 0061 b 98 0062 } 125 007D

22

Unicode system

• Every key on the computer’s keyboard translates to a Unicode value.

• The computer system understands what you typed from that translated Unicode value.

• Keep in mind that there are other symbols that are not necessarily on the keyboard but they have a Unicode value.

23

Programming Languages

• Machine language• Assembly language• High-level languages

24

High-Level Languages

• Examples: Fortran, Perl, COBOL, C++, Java• Highly symbolic• Portable among CPU architectures• Languages can be designed for specific uses:– Perl: Internet applications– Fortran: scientific applications– COBOL: business applications

25

A Java Program

• We write programming instructions on a text editor using English words specific to the programming language (called keywords) and other English words that represent categories data (called identifiers). This is called the source code file

• The source code (Programming instructions) gets translated by a compiler to coded instructions (coded binary numbers-sequences of 1s and 0s). The compiler produces a file called the bytecodes file.

• The bytecodes file needs to be interpreted by the Java Interpreter in order for the instructions to be executed by the machine (the interpreter actually converts the coded java instrcutions into machine instructions).

26

High-Level Languages

• Compiled- Some languages need only to compile the source code.– Compiler converts source code (instructions and data) into

machine language directly, then program is executed– C language is such a language

• Interpreted- Some languages (like Java) need also the interpeter.– Interpreter converts instructions into machine language at

run time as instructions are executed – Usually executes more slowly than compiled program– Java needs both compilation and interpretation.

27

Java

• Therefore, Java uses a Combination of compiler and interpreter

• Compiler converts source code into byte codes (an instruction set for a virtual, machine-independent processor). The instructions are intended for something called the JVM (Java Virtual Machine).

• At run time, the Java Virtual Machine (JVM) interprets the byte codes and converts them into the machine language for the platform (CPU type and Operating System type)on which the program is running.

28

The Java Language• Created by Sun Microsystems in 1995• Syntax is based on C++• Object-oriented. This term will be explained

farther into the course.• Supports Internet applications• Provides an extensive library of prewritten

classes• Is portable among platforms because of the JVM

concept. The JVM is , however, specific to the platform.

• Has built-in networking29

Programming Basics

• Programming is translating a problem into ordered steps consisting of operations a computer can perform:– Input– Perform calculations– Compare values– Move data– Output

• The order of execution of instructions is called flow of control

30

Four Types of Flow of Control

• Sequential Processing– Execute instructions in order

• Method Call– Jump to code in method, then return

• Selection– Choose code to execute based on data value

• Looping or Iteration– Repeat operations for multiple data values

31

Sequential Processing

• The pseudocode for calculating the sum of two numbers would look like this:read first number

read second number

set total to (first number + second number)

output total

32

Parts of a Java Program

• The class (every Java program is inside a class)• A class can have methods. A method is that

chunk of programming instructions usually dedicated to a specific task (for example some specific calculation)

• Instance variables of the class. Those are specific data that the class needs to use.

33

What is a Class

• A class is an artificial (conceptual) representation of the overall task that our Java program is supposed to accomplish. – We arbitrarily assign a name to that classi.e.

public class CalculateMyExpensesDon’t worry right now as to what public means.The name of the class in the example is CalculateMyExpenses and

obviously it signifies that my program is intended to calculate expenses.

The name is arbitrarily chosen.

34

Topics to be studied

• The next few slides present the highlights of the topics that will be discussed in more detail as the course progresses.

35

What is a Class

• Note: This is a first look at a what a class means to a Java program. We will come back to that to give more extensive definitions later on in the course!!!

• Therefore our Java program always starts by defining a class name!!

• The overall task that the program has to accomplish can be subdivided into smaller tasks.

36

Methods

• Each of the smaller tasks, within the overall task that our program (class) has to accomplish , can be represented by a group of programming instructions that can accomplish that task. That group of instructions for that task constitutes what is called a “method” in Java.

• One of the programming instructions within the group of instructions that a method has, can be an instruction that calls another method to execute its instructions (perform its task).– That is called a “method call” type of instruction.

37

Method Call

• Calling the method executes the method• Methods can take arguments (data to use) and

return values (return data as a result of the method’s execution)

• Here is pseudocode for calculating the square root of an integer:

read an integer call the square root method, passing the integer and receiving the square root

output the square root

38

Method Signature• Here is an example of a method signature:

public return_type method_name (type1 name_of_type1, type2 name of type2)

Note: by the term signature we mean the way we have to write the method (the syntax that we have to use)– public indicates that the method can be called by any members of

any class.– Followed that is the data type that the method returns to whoever

called iti.e. int, String etc.

it could be void also in which case the method does not return anything to the caller.

– Followed the data type is the name of the method– Inside the parenthesis we find the arguments that method takes

39

Method Arguments

• Arguments are the data types and their values that a caller of that method has to pass to the method.– Notice that there is no requirement to pass

arguments to a method. It could be empty of arguments.

• A method can call another method from within its code.

40

Examplepublic class FirstProgram

5 {

6 public static void main( String [] args )

7 {

8 System.out.println( "Programming is not "

9 + " a spectator sport!" );

10 System.exit( 0 );

11 }

12 }

Question:• Identify the methods their return values their arguments and any method

calls made in this program.

41

Selection

• The pseudo code for determining if a number is positive or negative is:

read a numberif the number is greater than or equal to 0 write "Number is positive."

else write "Number is negative."

42

Looping• The pseudocode for finding the sum of a set of

numbers is:

set total to 0 read a number while there was a number to read, add number to total read the next number

write total

43

Identifiers - Symbolic Names

• Identifiers are used to name classes, variables, and methods

• Identifier Rules:– Must start with a "Java letter"

• A - Z, a - z, _, $, and Unicode letters– Can contain essentially any number of Java letters and

digits, but no spaces– Case sensitive!!

• Number1 and number1 are different– Cannot be keywords or reserved words

44

Program Building Blocks

The Statement– Performs some action– Terminates with a semicolon (;)– Can span multiple lines

Example: System.out.println( “Programming is ” + “not a spectator sport” );

45

Building Blocks - The Block

The Block– 0, 1, or more statements– Begins and ends with curly braces { }– Can be used anywhere a statement is allowed

Example:public static void main( String [] args ){ System.out.println( “Hello” );}

46

Building Blocks - White Space• Space, tab, newline are white space characters• At least one white space character is required

between a keyword and identifier• Any amount of white space characters are

permitted between identifiers, keywords, operators, and literals

Examples: int a 1 + 2 public static void main( String [] args)

47

Data Types, Variables, and Constants

• For all data, assign a name (identifier) and a data type

• Data type tells compiler:– How much memory to allocate– How to store the data– The types of operations you will perform on the data

• Compiler monitors use of data– Java is a strongly typed language

• Java eight primitive data types byte, short, int, long, float, double, char, boolean

48

Examples

Are these identifiers valid? taxRate

Yes.char

No. char is a keywordintNumber

Yes, The keyword int is embedded, but the identifier is not identical to a keyword.

2008Taxrate No. The identifier starts with a digit

49

Declaring Variables

• Variables hold one value at a time, but that value can change

Syntax: dataType identifier; or dataType identifier1, identifier2, …;• Naming convention for variable names:– first letter is lowercase – embedded words begin with uppercase letter

50

Integer Types - Whole NumbersType Size Minimum Value Maximum Value in Bytesbyte 1 -128 127short 2 -32,768 32,767int 4 -2, 147, 483, 648 2, 147, 483, 647long 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807

Example declarations: int testGrade; int numPlayers, highScore, diceRoll; short xCoordinate, yCoordinate; byte ageInYears; long cityPopulation;

51

Text Study Guide

• Chapter 1Pages 1-32• Chapter 2Pages 41-46

52