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

Variable Name Rules

• Should start with a lowercase letter – Not a number World 1world; // results in a syntax error • Uppercase the first letter of each word – To make it easy to read World myWorld; // works fine • No spaces allowed in the name World my world; // results in a syntax error • Can’t use any of the reserved words Class class; // results in a syntax error Georgia Institute of Technology

Object and Primitive Variables

• Primitive variables allocate space based on their size – The contents of the space is set to the variable’s value • Object type variables cause space allocation for a reference to an object – 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.

str int a = 3 a String str =“Hi”;

“Hi” 3

reference Georgia Institute of Technology

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 reference 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 • Variable names – Variables start with a lowercase letter (not a number) – A variable name can’t be any of the reserved words – Variable names can’t have spaces in them • Primitive variables reserve space based on the type – And store the value in the space – Object variables reserve space for a reference to an object • A way to find the space the object is in • An object can be garbage collected if there is no reference to it Georgia Institute of Technology