170 likes | 315 Views
Declaring Variables – Mod 4. Barb Ericson Georgia Institute of Technology August 2005. 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
E N D
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. int a = 3 a 3 String str =“Hi”; str reference “Hi” 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