Chapter 2 Overview Using Primitive Data Types Using Classes Anatomy of a Program Will use...

Post on 19-Dec-2015

216 views 1 download

Tags:

transcript

Chapter 2 Overview

Using Primitive Data Types Using Classes Anatomy of a Program Will use JOptionPane and Math classes

Data Types Tells compiler what type of data is

stored in each memory cell. Data Type represents a particular

kind of information. Some come with Java

Primitive Data Types are not stored as objects

The String class is a data type which stores Objects

Some are defined by Programmers

Variables Variables serve 2 purposes

Reference objects Store values in memory

Declaration Statement Defines a variable name and its

associated data type.

Data Types Java has 8 built-in primitive data

types We will be using 4 of these

int double char boolean

As noted before, these primitive data types are not stored as objects

Example declarations int kids = 2; double bankBalance = 500.45; char firstLetter = ‘a’; boolean married = true;

Literals Example of declaration (with initialization)

int kids = 2;the variable is kidsthe primitive type is intthe initial value is the literal 2

What are the literals in the declarations below? double bankBalance = 500.45; char firstLetter = ‘a’; boolean married = true;

Values stored Table page 37 of text

int double char boolean

Syntax Display Form:

typeName variableName [ = value ]; Everything inside of [] is optional.

You need to be comfortable reading this syntax display, it will help you learn the Java language (and it’s good practice for learning the syntax of other languages).

Primitive Type int Positive or negative whole numbers. No sign is assumed to be positive Can perform math functions on these

Add, subtract, multiply, divide Do not use commas when writing

numbers in Java 1,000

1000

Primitive type double Real number Has integer part Has fractional part Can express via scientific notation

1.23 x 105

In Java as 1.23e5 1.23e+5

Primitive Type boolean Has only 2 possible values

true false

Used to represent conditional values

Will use more later in the semester

Primitive type char Represents a single character value

letter, digit, special character All character literals are enclosed in

‘’ why??

Can you add ‘5’ + ‘6’ ? How about special characters that

are not on keyboard See table page 39.

Data types enable Error Detection Java is a strongly typed language

Unlike C++ Can not add 2 boolean values Can not store a boolean in a

character Some you can, for instance an integer

into a double

Section 2.2 Processing Numeric Data Arithmetic Operators:

+ Addition 5 + 2 is 75.0 + 2.0 is 7.0

- Subtraction 5 – 2 is 35.0 – 2.0 is 3.0

* Multiplication

5 * 2 is 105.0 * 2.0 is 10.0

/ Division 5.0 / 2.0 is 2.55 / 2 is 2

% Remainder 5 % 2 is 1

Division Integer division is very different

than with real numbers. If both numbers are integers then

integer division is performed. If one or both numbers are reals

then real number division is performed.

Assignment Statement Form: variable = expression; Example: x = y + z; Read x is assigned the value of y +

z. See Example 2.2 Page 42 See Example 2.3 Page 43

Result of mixed type If one or more operands are double,

result is double. If both operands are int, result is int. Mixed type assignment statements.

Result is calculated, then assigned. int can be assigned to a double

See example 2.4 page 44

Type Casting Can use this to create one type

from another. double x = 7.8; int m; m = (int) x;

Can also be used for doubles (double) m;

Operator Precedence My Dear Aunt Sally x = 4 + 3 * 2

is it 10 or 14? Uses 2 rules to decide

Parentheses rule Operator precedence rule Left associative rule (equal then left to

right) We will consistently use fully

parenthesized equations.

Examples Review the examples on pages 46

–47 Must be able to convert math

formulas into Java syntax See examples page 48

Look at code on Page 49 running in JBuilder

Section 2.3 Introduction to Methods Methods of a class determine

operations that can be performed by the class.

The previous code example (Page 49) contains 2 methods main() println()

Methods are called to do some task.

Calling (activate) methods Call methods for multiple reasons

Change state of object. Calculate a result Retrieve a data item stored in an

object Get data from the user Display the results of an operation

Returning results Methods that:

calculate result retrieve a data item these are said to “return a result”

The main method is automatically called by the operating system. It is the initial method to run, you then write the code in that method to perform your work.

println method Used to display output in the

console window. Provided for you by java. Is part of the System.out object.

Calling a method Call a method using dot notation:

objectName.methodName(); System.out.println();

We can pass data to methods via the argument list: objectName.methodName(argumentL

ist); Can be single or multiple values See Page 49 println calls

Method arguments are like function arguments In algebra f(x) means function f

with argument x. f(x) is x2 + x + 1

f(0) is 1 (0 + 0 + 1) f(1) is 3 (1 + 1 + 1) f(2) is 7 (4 + 2 + 1)

Can also have f(x, y) (bottom pg 53)

Instance versus class methods Java has 2 different types of methods

instance class

println is an instance method, it belongs to an instance of System.out

Class methods belong to a class, not an instance of the class Math.sqrt(15.0) is class method. Use name of class (Math) rather than

instance name.

Section 2.4 the String Class Strings are a sequence of characters. Used to store, names, addresses,

……. String is not a primitive data type in

Java One powerful feature of object

orientation is the ability to create your own data types.

The String Class Working with objects is similar but

slightly different than primitive data types.

Declare string variables: String name; String flower;

These can reference a String object, but have no value

Notice that it is String not string.

Creating String objects Use Constructors to create String

object name = new String(“Dustin”); name = new String(“Rose”);

The new operator creates a new instance of the string object. This is called an instantiation. Object is an instance of a class

Constructor The new operator calls the

constructor for the object. The constructor is a special method

with the same name as the class. Gets called automatically when

create an new instance of the class. We pass an argument to the

constructor method (“Dustin”)

Class instantiation Form: variableName = new

className(arguments); Example: flower = new

String(“rose”); Can declare variable and

instantiate it at the same time: String flower = new String(“rose”);

Reference Variable Primitive data type storage

locations contain the value of the data type.

A reference variable storage location contains an address of where the object is stored.

See Page 57 top

Strings Properties Strings slightly different than

classes you create. Can create string via:

String flower = “Rose”; Can use + with String

(concatenation) name + “ “ + flower

concatenates 3 strings together

Concatenate Strings with Primitive Types System.out.println(“First number is

“ + num1); Concatenates one string and one

double See examples Page 59-60

String Methods See table String Methods Page 60

length charAt subString indexOf

See examples pages 60 - 61

subString() method Gets a portion of a string

One argument gets from that position to end of String

Two arguments gets from first position for the length in second argument.

See examples page 62-63

Storing result of method call Method must return a value int posBlank = text.indexOf(“ “);

first blank in string text if Mickey Mantle returns 6

String firstName = text.subString(0, posBlank) pulls out first name

See example page 64

Display results of method call System.out.printLn(“The First

blank is at position “ + text.indexOf(“ “));

Section 2.5 Input/Output Will be using the following 2

approaches to Input/Output JOptionPane printLn()

Packages Packages are created for you to

reuse existing code. Contain many useful functions A large number of packages exist to

extend the functionality of Java Strong feature of Java

import Statement Used to import and use an existing

package. import javax.swing.*; This imports the swing package which

facilitates creating GUIs. This gives access to all classes in swing To only use JOptionPane can do

import javax.swing.JOptionPane;

JOptionPane.showInputDialog() Part of swing package. Always easy input and output.

Input reading in data from user Output presenting results for user

String name = JOptionPane.showInputDialog(“Enter your name”);

Displays dialog box, see page 67 Stores result in name

Examples Input dialog box

See examples on page 67 - 68

Displaying results in Console Window System.out.println(“what ever”); See example page 68 bottom

Display results in dialog box JOptionPane.showMessageDialog(); See example pages 69 - 70

Running code See TwoNumbersDialog in JBuilder

Section 2.6 Problem Solving For each assignment you turn in you

must also turn in Documentation. This documentation revolves around

what is presented in the text book: Problem Analysis Design Implementation Testing

Section 2.7 Anatomy of program Comments 2 types of comments exist:

// means a comment to end of line /* comments in here */ comment

delimiter Used to make program easier to

understand Use to clarify difficult code

Comments for each program At the beginning of the program

include at a minimum Name Date Class Assignment Program purpose

Example

/* John Wright 9/1/03 Minor Assignment 1

Computer Science I This program will yada yada yada

yada yada */

Class Definitions The class with the main method

in it is the starting class for an Application.

Classes have the form:1. A header declaration2. The class body

a. The data field declarations of the classb. The method definitions of the class

public class PigLatinApp {…}

Syntax diagram Form: [visibility] class class-name {…} public class PigLatinApp {…}

Body typically lists data declarations first, then methods.

We will discuss visibility in more detail as we progress through the book.

Visibility For the time being:

Make all methods public Make all data fields private Leave class visibility blank

Method main() This is a “special” method that is

called by the operating system for applications.

method header{method body

{

Method headers Contains a lot of information public static void main(String[] args) public = visibility static = not applied to object (only 1

copy) void = returns no value main = method name String[] args = parameter list

Body of main First line in main

String word = JOptionPane.showInputDialog(“Enter a word starting with a consonant”);

This brings up the initial dialog box prompting the user to enter a word.

The value they enter is then passed back to the program and into the variable word via the method call.

Continue We then “glue” together the output

via this statement:String message = word + “ is “ +

word.subtring(1) + word.charAt(0) + “ay” + “ in pig Latin”

Then display this in an output dialog box.

Program Style and Conventions The syntax of the language is

dictated by the designers of Java Each organization typically has a

set of programming conventions. Conventions are not enforced by

the compiler, rather they are used for readability.

Conventions You must follow programming

conventions in your programs. We will follow those from the text. See options for braces in text book

on page 80. I use option 1, but either is

acceptable, just be consistent.

Line breaks White space is ignored by the compiler. Use white space to make you programs

more readable. Only one java statement per line

int x = 5; double y = 5.3;

Compiler does not care

Java Keywords Also called reserve words These can not be used in

identifiers. See list on page 81 Complete list in Appendix B

Identifiers Is the name of a:

data field or variable method class object

There are rules for valid identifier names.

Identifiers Java is case sensitive!!!!

Fred and fred are 2 different identifiers Rules

1. must begin with letter, underscore or dollar sign. Start all with letter

2. must consist of letters, digits, underscore, dollar signs

3. Java reserve word can not be identifier4. Can be any length

Identifier naming conventions Classes

Use nouns Start with capitol letter Each new word is capitalized SavingsAccount PiggyBank

Identifier naming conventions Variables

Start with lower case Use Nouns Each new Word is Capitalized userName pizzaPie

Identifier naming conventions Methods

Start with lower case letter. Use verb and prepositional phrases Each new word is Capitalized showInputDialog performOutput

Identifier naming conventions Contants

Use all capitols Separate words with underscore RETIREMENT_AGE FEDERAL_TAX_RATE

Section 2.8 Class Math The class Math is a library of

methods to perform various math functions.

For instance Square Root. double y = Math.sqrt(x); You pass it a value in x It returns a value that you are

storing in y

Math is different You do not need to instantiate the

class Math in order to use it. Review example 2.28 and 2.29 on

page 85.

Methods in Class Math This class has many essential

methods already programmed for your use.

See table in page 87 for some of the methods that are a part of the math library.

Examples Square Root 2.30 page 88 Random 2.31 page 88 Run and look at Section_2_8_1 in

JBuilder

Other Methods These methods return whole

numbers: floor() whole number below real ceil() whole number above real rint() integer returned via rounding

Section 2.9 common errors Debugging is removing of errors

from you program. It is the rare program that runs

correctly the first time you try. You must become good at

eliminating errors from your program.

Syntax errors Syntax errors are caused by

improperly formed Java statements. See table of common errors Page 93. Incorrect data types Incorrect use of quotations marks Errors in use of comments Errors in use of methods

System errors Application class and the file it is

stored in must have the same name.

JBuilder does this for you Class path errors.

Compiler can not find the appropriate file

Run-time errors Occur when the program is running

Divide by zero Data being input into wrong variable Arithmetic overflow, value to large to

fit into variable

Logic Errors Errors in the design of your program Program is not doing what you

expected it to do. Can use println() and

showMessageDialog() to discover how your program is running.

Logic errors can be the hardest to locate