Top Banner
Data Types, Variables, and Arithmetic Java Methods Java Methods A & AB A & AB Object-Oriented Programming and Data Structures Maria Litvin Gary Litvin Copyright © 2006 by Maria Litvin, Gary Litvin, and Skylight Publishing. All rights reserved. int chapter = 6;
32

Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

Jan 06, 2018

Download

Documents

Caroline Gray

6-3 Variables A variable is a “named container” that holds a value. q = q; means:  1. Read the current value of q  2. Subtract it from 100  3. Move the result back into q count 5 mov ax,q mov bx,100 sub bx,ax mov q,bx
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

Data Types, Variables, and Arithmetic

Java MethodsJava MethodsA & ABA & AB

Object-Oriented Programmingand Data Structures

Maria Litvin ● Gary Litvin

Copyright © 2006 by Maria Litvin, Gary Litvin, and Skylight Publishing. All rights reserved.

int chapter = 6;

Page 2: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-2

Objectives:• Discuss primitive data types• Learn how to declare fields and local

variables• Learn about arithmetic operators, compound

assignment operators, and increment / decrement operators

• Discuss common mistakes in arithmetic

Page 3: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-3

Variables• A variable is a “named container”

that holds a value.• q = 100 - q;

means: 1. Read the current value of q 2. Subtract it from 100 3. Move the result back into q

count5

mov ax,qmov bx,100sub bx,axmov q,bx

Page 4: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-4

Variables (cont’d)• Variables can be of different data types: int,

char, double, boolean, etc.• Variables can hold objects; then the type is

the class of the object.• The programmer gives names to variables.• Names of variables usually start with a

lowercase letter.

Page 5: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-5

Variables (cont’d)• A variable must be declared before it can

be used:

int count;

double x, y;

JButton go;

Walker amy;

String firstName;

Type

Name(s)

Page 6: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-6

Variables (cont’d)• The assignment operator = sets the

variable’s value:

count = 5;x = 0;go = new JButton("Go");firstName = args[0];

Page 7: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-7

Variables (cont’d)• A variable can be initialized in its

declaration:

int count = 5;JButton go = new JButton("Go");String firstName = args[0];

Page 8: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-8

Variables: Scope• Each variable has a scope —

the area in the source code where it is “visible.”

• If you use a variable outside its scope, the compiler reports a syntax error.

• Variables can have the same name when their scopes do not overlap.

{ int k = ...; ...}

for (int k = ...){ ...}

Page 9: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-9

Fields• Fields are declared outside all

constructors and methods.• Fields are usually grouped together,

either at the top or at the bottom of the class.

• The scope of a field is the whole class.

Page 10: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-10

Fields (cont’d)public class SomeClass{

}

Fields

Constructors and methods

Scope

public class SomeClass{

}Fields

Constructors and methodsScope

Or:

Page 11: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-11

Local Variables• Local variables are declared inside a

constructor or a method.• Local variables lose their values and are

destroyed once the constructor or the method is exited.

• The scope of a local variable is from its declaration down to the closing brace of the block in which it is declared.

Page 12: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-12

Local Variables (cont’d)public class SomeClass{ ... public SomeType SomeMethod (...) {

{

} } ...}

ScopeLocal variable declared

Local variable declared

Page 13: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-13

Variables (cont’d)• Use local variables whenever appropriate;

never use fields where local variables should be used.

• Give prominent names to fields, so that they are different from local variables.

• Use the same name for local variables that are used in similar ways in different methods (for example, x, y for coordinates, count for a counter, i, k for indices, etc.).

Page 14: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-14

Variables (cont’d)• Common mistakes:

public void someMethod (...){ int x = 0; ... int x = 5; // should be: x = 5; ...

Variable declared twice within the same scope — syntax error

Page 15: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-15

Variables (cont’d)• Common mistakes:

private double radius;...public Circle (...) // constructor{ double radius = 5; ...

Declares a local variable radius; the value of the field radius remains 0.0

Page 16: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-16

Primitive Data Types

• int• double• char• boolean

• byte• short• long• float

Used inJava Methods

Page 17: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-17

Strings• String is not a primitive data type• Strings work like any other objects, with two

exceptions: Strings in double quotes are recognized as literal

constants + and += concatenate strings (or a string and a

number or an object, which is converted into a string)

"Catch " + 22 "Catch 22"

Page 18: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-18

Literal Constants

'A', '+', '\n', '\t'

-99, 2010, 0

0.75, -12.3, 8., .5

“coin.gif", "1776", "y", "\n"

new line

tab

char

int

double

String

Page 19: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-19

Symbolic Constants• Symbolic constants are initialized final

variables:

private final int stepLength = 48;

private static final int BUFFER_SIZE = 1024;

public static final int PIXELS_PER_INCH = 6;

Page 20: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-20

Why Symbolic Constants?• Easy to change the value throughout the

program, if necessary• Easy to change into a variable• More readable, self-documenting code• Additional data type checking by the compiler

Page 21: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-21

Arithmetic• Operators: +, -, /, * , %• The precedence of operators and

parentheses is the same as in algebra• m % n means the remainder when m is

divided by n (for example, 17 % 5 is 2; 2 % 8 is 2)

• % has the same rank as / and *• Same-rank binary operators are performed in

order from left to right

Page 22: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-22

Arithmetic (cont’d)• The type of the result is determined by the

types of the operands, not their values; this rule applies to all intermediate results in expressions.

• If one operand is an int and another is a double, the result is a double; if both operands are ints, the result is an int.

Page 23: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-23

Arithmetic (cont’d)• Caution: if a and b are ints, then a / b is

truncated to an int…17 / 5 gives 3 3 / 4 gives 0

• …even if you assign the result to a double: double ratio = 2 / 3;

The double type of the result doesn’t help: ratio still gets the value 0.0.

Page 24: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-24

Arithmetic (cont’d)• To get the correct double result, use double

constants or the cast operator: double ratio = 2.0 / 3; double ratio = 2 / 3.0;

int m = ..., n = ...; double factor = (double)m / (double)n; double factor = (double)m / n; double r2 = n / 2.0;

Casts

Page 25: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-25

Arithmetic (cont’d)• A cast to int can be useful:

int ptsOnDie = (int)(Math.random() * 6) + 1;

int miles = (int)(km * 1.61 + 0.5);

Returns a double

Converts kilometers to miles, rounded to the nearest integer

Page 26: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-26

Arithmetic (cont’d)• Caution: the range for ints is from -231 to 231-1 (about -2·109 to 2·109)

• Overflow is not detected by the Java compiler or interpreter:

n = 8 10^n = 100000000 n! = 40320n = 9 10^n = 1000000000 n! = 362880n = 10 10^n = 1410065408 n! = 3628800n = 11 10^n = 1215752192 n! = 39916800n = 12 10^n = -727379968 n! = 479001600n = 13 10^n = 1316134912 n! = 1932053504n = 14 10^n = 276447232 n! = 1278945280

Page 27: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-27

Arithmetic (cont’d)• Compound assignment

operators:

a = a + b; a += b;a = a - b; a -= b;a = a * b; a *= b;a = a / b; a /= b;a = a % b; a %= b;

• Increment and decrement operators:

a = a + 1; a++;a = a - 1; a--;

Do not use these in larger expressions

Page 28: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-28

From Numbers to Strings• The easiest way to convert x into a string is to

concatenate x with an empty string: String s = x + "";

• The same rules apply to System.out.print(x)

'A'123-1.13.14Math.PI

"A""123""-1""0.1""3.14""3.141592653589793"

Empty string

Page 29: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-29

From Objects to Strings• The toString method is called:

public class Fraction{ private int num, denom; ... public String toString () { return num + "/" + denom; }}

Fraction f = new Fraction (2, 3);System.out. println (f) ;

Output: 2/3

f.toString() is called automatically

Page 30: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-30

Review:• What is a variable? • What is the type of a variable that holds an

object?• What is meant by the scope of a variable?• What is the scope of a field?• What is the scope of a local variable?

Page 31: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-31

Review (cont’d):• Is it OK to give the same name to variables in

different methods?• Is it OK to give the same name to a field and

to a local variable of the same class?• What is the range for ints?• When is a cast to double used?

Page 32: Data Types, Variables, and Arithmetic Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin ● Gary Litvin Copyright © 2006 by.

6-32

Review (cont’d):• Given

double dF = 68.0;double dC = 5 / 9 * (dF - 32);

what is the value of dC?• When is a cast to int used?• Should compound assignment operators

be avoided?