java fundamentals - university of arizona · java fundamentals asserting java chapter 2:...

25
Java Fundamentals Asserting Java Chapter 2: Introduction to Computer Science ©Rick Mercer

Upload: ledien

Post on 12-May-2018

243 views

Category:

Documents


1 download

TRANSCRIPT

Java Fundamentals

Asserting Java

Chapter 2: Introduction to Computer Science

©Rick Mercer

Outline

Distinguish the syntactical parts of a program

• Tokens: special symbols, literals, identifiers,

• Output with System.out.println

• An executable program as a Java class with a

main method

Introduce two of Java's primitive types: int and double

Preview: A Complete Java program import java.util.Scanner;

// Read number from user and then display its squared value

public class ReadItAndSquareIt {

public static void main(String[] args) {

double x;

double result = 0.0;

Scanner keyboard = new Scanner(System.in);

// 1. Input

System.out.print("Enter a number: ");

x = keyboard.nextDouble();

// 2. Process

result = x * x;

// 3. Output

System.out.println(x + " squared = " + result);

}

}

Programs have 4 types of tokens

The Java source code consists of

1) special symbols + < = >= && ||

2) identifiers customerName totalBill n

3) reserved identifiers int while if void

4) literals 123 "A String" true

These tokens build bigger things like variables,

expressions, statements, methods, and classes.

Also, comments exist for humans to read// Document your code if it is unreadable :-(

Overloaded Symbols

Some special symbols are operators and have different things in different contexts

• with two integers, + sums integers

2 + 5 evaluates to the integer 7

• with two floating point literals, + sums to floating point (types make a difference)

2.0 + 5.0 evaluates to 7.0

• with two strings, + concatenates

"2" + "5" evaluates to the new string "25"

Identifiers

An identifier is a collection of certain characters

that could mean a variety of things

There are some identifiers that are Java defines:

sqrt String Integer System in out

We can make up our own new identifiers

test1 lastName dailyNumber MAXIMUM $A_1

Valid identifiers

Identifiers have from 1 to many characters: 'a'..'z', 'A'..'Z', '0'..'9', '_', $

• Identifiers start with letter a1 is legal, 1a is not

• can also start with underscore or dollar sign: _ $

• Java is case sensitive. A and a are different

Which letters represent valid identifiers?a) abc d) $$$ i) a_1

b) m/h e) 25or6to4 j) student Number

c) main f) 1_time k) String

Reserved Identifiers (keywords)

A keyword is an identifier with a pre-defined

meaning that can't be changed it's reserved

double int

Other Java reserved identifiers not a complete list

boolean default for new

break do if private

case double import public

catch else instanceOf return

char extends int void

class float long while

Literals -- Java has 6

Floating-point literals1.234 -12.5 1.2 3. .4 1e10 0.1e-5

String literals "characters between double quotes" "'10" "_"

Integer literals (Integer.MIN_VALUE and Integer.MIN_VALUE)

-1 0 1 -2147483648 2147483647

Boolean literals (there are only two)true false

Null (there is only this one value)null

Character literals

'A' 'b' '\n' '1' ' '

Comments

• Provide internal documentation to explain program

• Provide external documentation with javadoc

• Helps programmers understand code--including

their own

• There are three type of comments// on one line, or

/*

between slash star and star slash

you can mash lines down real far, or

*/

/**

* javadoc comments for external documentation

* @return The square root of x

*/

public static double sqrt(double x)

General Forms

The book uses general forms to introduce parts of

the Java programming language

General forms provide information to create

syntactically correct programs

• Anything in yellow boldface must be written exactly

as shown (println for example)

• Anything in italic represents something that must be

supplied by the user

• The italicized portions are defined elsewhere

Output Statements

A statement, made up of tokens, is code that causes

something to happen while the program runs

General Forms for three output statementsSystem.out.print( expression );

System.out.println();

System.out.println( expression );

Example Java code that writes text to the consoleSystem.out.print("hello world.");

System.out.println(); // print a blank line

System.out.println("Add new line after this");

General Form: A Java program

// This Java code must be in a file named class-name.java

public class class-name {

public static void main(String[] args) {

statement(s)}

}

// Example Program stored in the file HelloWorld.java

import java.util.Scanner;

public class HelloWorld {

public static void main(String[] args) {

Scanner keyboard = new Scanner(System.in);

System.out.print("Enter your name: ");

String myName = keyboard.next(); // keyboard input

System.out.println("Hi Rick");

System.out.println("This is " + myName);

}

}

Primitive Numeric Types

Type: A set of values with associated operations

Java has many types, a few for storing numbers

• Stores integers in int variables

• Store floating-point numbers in double variables

A few operations for numeric types

• Assignment Store a new value into a variable

• Arithmetic +, -, * (multiplication), and /

Variables to store numbers

To declare and give initial value:

type identifier = initial-value;

Examplesint creditsA = 4;

double gradeA = 3.67;

String name = "Chris";

int hours = 10;

boolean ready = hours >= 8;

Assignment

We change the values of variables with assignment

operations of this general form

variable-name = expression;

Examples:

double x; // Undefined variables

int j; // can not be evaluated

j = 1;

x = j + 0.23;

Memory before and after

The primitive variables x and j are undefined at first

Variable Initial Assigned

Name Value Value

j ? 1

x ? 1.23

The expression to the right of = must be a value that

the variable can store assignment compatible

x = "oooooh nooooo, you can't do that"; // <-Error

j = x; // <-Error, can't assign a float to an int

? means undefined

Assignment

double bill;

What is value for bill now? _________

bill = 10.00;

bill = bill + (0.06 * bill);

What is value for bill now? ________

Which letters represent valid assignments given these 3

variable initializations?

String s = "abc";

int n = 0;

double x = 0.0;

a) s = n; e) n = 1.0;

b) n = x; f) x = 999;

c) x = n; g) s = "abc" + 1;

d) s = 1; h) n = 1 + 1.5;

Arithmetic Expressions

Arithmetic expressions consist of operators

such as + - / * and operands such as 40, 1.5,

payRate and hoursWorked

Example expression used in an assignment:grossPay = payRate * hoursWorked;

Another example expression:5 / 9 * (fahrenheit - 32);

For the previous expression, Which are the operators?_____ Which are the operands?_____

Arithmetic Expressions

a numeric variable double x = 1.2;

or a numeric constant 100 or 99.5

or expression + expression 1.0 + x

or expression - expression 2.5 - x

or expression * expression 2 * x

or expression / expression x / 2.0

or (expression) (1 + 2.0)

Arithmetic expressions take many forms

Precedence of Arithmetic Operators

Expressions with more than one operator require some sort of precedence rules:* / evaluated in a left to right order- + evaluated in a left to right order in the absence of parentheses

Evaluate 2.0 + 4.0 - 6.0 * 8.0 / 6.0

Use (parentheses) for readability or to intentionally alter an expression:double C, F;

F = 212.0;

C = 5.0 / 9.0 * (F - 32);

What is the current value of C ____?

Math functions

Java’s Math class provides a collection of mathematical and trigonometric functions

Math.sqrt(16.0) returns 4.0

Math.min(-3, -9) returns -0

Math.max(-3.0, -9.0) returns -3.0

Math.abs(4 - 8) returns 4

Math.floor(1.9) returns 1.0

Math.pow(-2.0, 4.0) returns 16.0

int Arithmetic

int variables are similar to double, except they can only store whole numbers (integers)int anInt = 0;

int another = 123;

int noCanDo = 1.99; // ERROR

Division with integers is also different

• Performs quotient remainder whole numbers only

anInt = 9 / 2; // anInt = 4, not 4.5

anInt = anInt / 5; What is anInt now? ___

anInt = 5 / 2; What is anInt now? ___

The integer % operation

The Java % operator returns the remainder

anInt = 9 % 2; // anInt ___1___

anInt = 101 % 2; What is anInt now? ___

anInt = 5 % 11; What is anInt now? ___

anInt = 361 % 60; What is anInt now? ___

int quarter;

quarter = 79 % 50 / 25; What is quarter? ___

quarter = 57 % 50 / 25; What is quarter now? ___

Integer Division, watch out …

What is the current value of celcius _____?

int celcius, fahrenheit;

fahrenheit = 212;

celcius = 5 / 9 * (fahrenheit - 32);