Variables-Mod4.ppt: uploaded 1 April 2016 at 4:01 pm

Download Report

Transcript Variables-Mod4.ppt: uploaded 1 April 2016 at 4:01 pm

Declaring Variables – Mod 4
Barb Ericson
Georgia Institute of Technology
August 2005
Georgia Institute of Technology
Learning Goals
• Understand at a conceptual level
– Declaring variables: what is allowed and what
isn’t
– When variables can be garbage collected
– How to change the value of a variable
– The difference between primitive and object
variables
Georgia Institute of Technology
Working with Variables
• You must declare a
variable before you
can use it
• Declare a variable
once and only once
– You will get an error if
you declare it more
than once
• You can reuse
variables
– That you have
declared
Georgia Institute of Technology
Declaring Variables
• To declare a variable
– Specify the type and a name
String name;
World world1;
Turtle turtle1;
int x;
– You can also assign a value to the variable
when you declare it
String fullName = “Susan Dorda”;
World world1 = new World();
Turtle turtle1 = new Turtle(world1);
int x = 0;
Georgia Institute of Technology
Object and Primitive Variables
• Primitive variables
allocate space based on
their size
int a = 3
a
3
– The contents of the space
is set to the variable’s
value
• Object type variables
cause space allocation
for a reference to an
object
String str =“Hi”;
str
– The contents of the space
is a way to calculate the
address of the object
– Or null if it isn’t referring to
an object yet.
Georgia Institute of Technology
reference
“Hi”
Memory Exercise
• Draw the memory used for the following:
int x = 2;
int y = 7;
int z = x + y;
• Draw the memory used for the following:
String fullName = null;
String firstName = “James”;
String lastName = “Clark”;
fullName = firstName + lastName;
Georgia Institute of Technology
Variables are Temporary
• Hold values until
– Reassigned
int x = 2;
x = 3; // read ‘=‘ as takes on the value of
– DrJava is exited
– The interactions pane is reset
• You can force this by clicking the “Reset” button
• Or by right click and choose “Reset Interactions”
• Happens automatically when you compile
Georgia Institute of Technology
Objects can be Garbage Collected
• When objects that have been created
have no more references to them
– They can be garbage collected
• This means the memory they are using can be
freed and reused
– String name1 = “Bill”;
– String name1 = new String(“Mary”);
– The string object created by “Bill” can be
garbage collected
Georgia Institute of Technology
Variable Practice
• Given the following code
– What is the value of z at each step?
int z = 0;
int x = 3;
int y = 2;
z = x * y;
z = z + x;
z = z – y;
– How many variables where declared?
– How much space do they take?
Georgia Institute of Technology
Variable Practice
• What is the value of str1 at each step?
– String str1 = “Hello World”;
– str1.toLowerCase();
– str1 = str1.toUpperCase();
– str1 = “Goodbye World”;
• How many variables where declared?
• How many objects were created?
– How many can be garbage collected?
Georgia Institute of Technology
Variable Practice
• What is the value of string1 after the following
code has executed?
– String string1 = “HELLO”;
– System.out.println(string1.toLowerCase());
• What type of variable is string1 (primitive or
object)?
– How can you tell?
• What is the value of string2 and string3 after the
following code has executed?
– String string2 = “Mary”;
– String string3 = “Clark”;
– string2 = string2 + string3;
Georgia Institute of Technology
Variable Practice
• Declare variables for each of the following
–
–
–
–
–
–
–
–
–
–
–
The number of kids in a family
The cost of a pair of shoes
The name of a pet
The score of a soccer game
The hourly wage of a worker
The answer to do you want insurance on a purchase
The color of your eyes
Your weight
The distance you drive on a trip
Your test score
The number on a lottery ball
Georgia Institute of Technology
Variable Practice
• Which turtle does turtle1 refer to after the
following code?
World myWorld = new World();
Turtle tommy = new Turtle(myWorld);
Turtle mary = new Turtle(myWorld);
Turtle turtle1 = tommy;
turtle1.forward();
turtle1 = mary;
turtle1.turnLeft();
• Which turtle will go forward?
• Which turtle will turn left?
Georgia Institute of Technology
Variable Practice
• Which of these statements will cause an
error in the interactions pane and why?
World1 world = new World();
World world2 = new World();
World world3 = newWorld();
World world1 = new World1();
World world5 = new World;
World world2 = new World();
World my World = new World();
World earth = new World();
Georgia Institute of Technology
Allowed Types in Java
• The type for a variable declaration can be
– A primitive type: int, double, char, or boolean
– The name of a Class
• in the Java language
– String, JFrame, BufferedImage, etc
• or the name of a class created by you or someone
else
– Picture, Sound, FileChooser
• Class names start with an uppercase
letter!
Georgia Institute of Technology
Summary
• You can declare variables by specifying a
type and a name
– You can also assign a value to the variable
when you declare it
• Primitive variables reserve space based
on the type
– Object variables reserve space for a
reference to an object
• An object can be garbage collected if there
is no reference to it
Georgia Institute of Technology