Declaring Variables You must first declare a variable before you can use it! Declaring involves: –...

19
Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory Specifying what kind of data it will contain (its type) Give it a name (its identifier) Optionally give it an initial value Note: A program may declare as many variables as it needs • Example of Java declarations: Statement to: Declare an integer variable: int grade; Statement to: Declare an integer variable with a value: int count = 5; Statement to: Declare two integer variables: int grade, count = 5; • Questions: What are the identifiers, initial value, and type in the above examples? efinition: A variable is a place in memory that can hold a va tant Note: Equal does NOT mean equal, it means assi

Transcript of Declaring Variables You must first declare a variable before you can use it! Declaring involves: –...

Page 1: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Declaring Variables

• You must first declare a variable before you can use it!• Declaring involves:

– Establishing the variable’s spot in memory– Specifying what kind of data it will contain (its type)– Give it a name (its identifier)– Optionally give it an initial value

• Note: A program may declare as many variables as it needs• Example of Java declarations:

– Statement to: Declare an integer variable: int grade;– Statement to: Declare an integer variable with a value: int count = 5;– Statement to: Declare two integer variables: int grade, count = 5;

• Questions: What are the identifiers, initial value, and type in the above examples?

Definition: A variable is a place in memory that can hold a value

Important Note: Equal does NOT mean equal, it means assign

Page 2: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Primitive Variable types (not objects)• There are many data types in Java• There is a reserved word for each• Examples: Integers, Fractions, String, boolean, and character• Integer variables

– byte i = 100; (a byte variable holds values from -128 to 127)– int x = 32768; (an int variable holds values to billions)– long total = 111111; (a long variable holds up to quintillians)

• Fraction variables– float percentage; (float variables are accurate to six digits)– double distance; (double variables are accurate to fifteen digits)

• Boolean variables: boolean isBig = true; or boolean isBig = false;• String variables are a sequences of letters

– String name = “bill”; (Enclose your strings with double quotes)• Character variable: char c = ‘3’; // A single letter

Definition: A type specifies a kind of data

Question: Why all the types?Answer: Different variable types are stored differently in memory

Page 3: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Reference Data Types (objects)• String (The most used non-primitive data type)• Definition: A string is a sequence of characters• Examples

– A String literal: "abcdef"– Declare/initialize a string: String s = new String("abcdef");– Convenient way: String s = "abcdef“;

• Reference variables contain methods and properties– s.length(); // returns the length of the string– s.charAt(0); // returns the first character of the string– s.toUpperCase(); // returns withall letters as upper case– s.substring(3,8); // returns substring from position 3 to (not

including) 8

• Important Note: Character positions count from zero, not from one

Page 4: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Literals

• Definition: A literal is a constant that we do not have to declare.

• Examples: – String literal: “abcdef”– Integer literal: -10– Fraction literal: 32.75– Character literal: ‘t’– Boolean literal: true

Page 5: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Expressions and Casting

• Expression: – A sequence of operations and operators– Example: x + y / 3 + (4 + z)/a

• Java is fussy about expressions with different types of data

• Casting Example: – z becomes 0: int x = 5, y = 8; float z = x/y;– z becomes 0.625: int x=5, y=8; float z = (float)x/y

Definition: To cast means to access a variable as if it were a different type

Page 6: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Widening and Narrowing• It is legal to store a primitive (non-object) variable

type of a smaller range to one of a wider range (widening)– Example: ling x = 3; int y = 2; x = y;– Example: double z = 3; int y = 2; z = y;

• Attempting to store a primitive variable of a wider range into one of a smaller range causes a compile error (narrowing)– Example: long x = 3; int y = 2; y = x;– Example: double z = 3; int y = 2; y = z;– One must cast to eliminate the error: y = (int)z;

Page 7: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Identifier names

• Rules– All identifiers start with an alphabetic letter or underscore– Subsequent letters of an identifier can be alphabetic

letters, underscores, or numeric digits (No Spaces)– Identifiers cannot be a Java reserved word

• Conventions followed by most programmers– Keep the identifiers relatively short– Identifiers should be easy to remember– Naming conventions

• Variables: start lower case, and first letter of subequent words should be upper case (ex: salesTotal)

• Classes: First letter of every word upper clase (ex: MilesPerGal)• Symbolic constants: public final int MAX = 100;

Definition: An identifier is the name we give to a variable

Note: the final modifier means that the variable cannot be altered .

Page 8: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Programming conventions • It is important to keep your programs readable• Most programmers will

– Indent blocks of instructions by several spaces– Add comments to the top with name, date, programmer name, source

file name, purpose, modification purpose and date– Add comments to the top of each method to include its purpose and

for automatic documentation generation• Example:

/** main method calculate miles per gallon * @param args command line arguments (unused) */public static void main(String[] args){ String data = “I’m indented”; System.out.println(data);}

Page 9: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Concatenation• Definition: concatenation is gluing strings together.

– String s = “abc” + “def” puts “abcdef” in s– Numbers and Strings are different

• 33 + 44 yields 77• “33” + “44” yields “3344”• “33” / “44” generates an error

– String s = “abc ” + 33 puts “abc 33” in s because Java makes the 33 into a string and then does concatenation

– What does the following print?x = 32.95; System.out.println(“you earned $” + x + “dollars”);

Note: Assign means do what is on the right of the equal sign and store in the variable on the left

Page 10: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Escape Sequences ( or Characters)

• Definition: An escape sequence is two letters starting with a backslash (\) that has special meaning to Java

• Purpose: To represent characters that are not able to easily be displayed in a program

• Examples:– System.out.println(“don’t worry\tbe happy”);– System.out.println(“first line\nsecond line”);– System.out.println(“He said, \”hi\””);– System.out.println(“\fclear screen or new page”);

Page 11: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Numbering systems• Binary: each digit is 2 times the previous• Octal: each digit is 8 times the previous• Decimal: each digit is 10 times the previous• Hexadecimal: each digit is 16 times the previous• Problems:

– Convert 110 to decimal if it is binary, octal, or hexadecimal.

– Convert: If FCA is a hexadecimal number, convert it to binary

Page 12: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Scope and Life

• Scope: – Where in a program can a variable

can be accessed– A variable’s scope is from its

declaration to the end of the block

• Life: – When memory for a variable is

assigned for that variable– Variables live within the block

where they are declared.

• Programming conventions: – limit scope as much as possible– This convention will result in

less errors and make programs easier to maintain

Example{ // Outer block

// Next instruction failsSystem.out.println(outer);

int outer = 1;{ // inner block

int inner = 2; // The next is OK System.out.println

(outer+inner);} // End of outer block

// Next instruction failsSystem.out.println(inner);// Next instruction is OK.System.out.println(outer);

} // End of outer block

Block: the instructions within braces { }

Page 13: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Formatting Outputimport java.text.NumberFormat; import java.text.DecimalFormat;

public class FormatTest { public static void main(String[] args) { System.out.print("Input args: " + args[0] + "/"); System.out.println(args[1]);

System.out.println(); // Skip a line System.out.println("input args:" + args[0] + "/" + args[1] + "\n");

double v0 = Double.parseDouble(args[0]), v1 = Double.parseDouble(args[1]); System.out.printf("%-7s = %8.2f/%5.2f\n\n", "Printf", v0, v1);

NumberFormat currency = NumberFormat.getCurrencyInstance(); System.out.println( "Currency: " + currency.format(v0) + "/" + currency.format(v1) + "\n");

DecimalFormat dec = new DecimalFormat("###0.0##"); DecimalFormat pct = new DecimalFormat("0.##%"); System.out.println( "Decimal: " + dec.format(v0) + "/" + pct.format(v1)); }} // End of FormatTest class

Page 14: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Formatting Strings for Output

public class FormatExample{ public static void main(String[] args) { String str = String.format("Cost: $%7.2f\n",35.23); str += String.format("Cost: $%-7.2f\n",35.23); str += String.format("Cost: $%.2f\n",35.23); str += String.format("Integer: $%4d\n",100); str += String.format("Left Justified:%-10s\n","Dan"); str += String.format("Right Justified:%10s\n","Dan"); str += String.format("All %.2f %d %-10s\n", 35.23, 100, "Dan"); JOptionPane.showMessageDialog(null, str); }}

Page 15: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Input from Keyboard

// Import the correct packageImport java.util.Scanner

// Instantiate a an object from the Scanner classScanner sc = new Scanner(System.in);

// Input the appropriate kind of dataint intData = sc.nextInt();Long longData = sc.nextLong();Double doubleData = sc.nextDouble();String stringData = sc.nextLine();

From command line – Not for GUI point and click systems

Page 16: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Inputting Data: More GUI Friendly

• On the class web-site there is a java class called IO– Download by right clicking on the hyperlink– Store it in your lab folder so it can be used– Compile the .java file to make it useable

• We can use methods in this class to do input• Examples:

– int data = IO.readInt(“Enter a grade: ”);– String str = IO.readString(“Enter your name: ”);– double value = IO.readDouble(“Enter sales total:” );

Page 17: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Putting it all togetherimport javax.swing.*;

public class Average

{ public static final int NUM = 3;

public static void main(String[] args)

{ int x = IO.readInt(“enter first: ”);

int y = IO.readInt(“enter second: ”);

int z = IO.readInt(“enter third: ”);

double average = ((double)x + y + z)/NUM;

JOptionPane.showMessageDialog

(null, “The average is “ + average);

} // End of main() method

} // End of Average class

Page 18: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

What prints?int x = 3;

int y = x + 4;

x = x + 2;

x = x/2;

int z = x + 2;

String s = "abc";

System.out.println(s+x + y + z);

Remember: instructions execute one by one, in order

Page 19: Declaring Variables You must first declare a variable before you can use it! Declaring involves: – Establishing the variable’s spot in memory – Specifying.

Review• What is a data type? What is its purpose? Give some examples?• What does it mean to cast?• What is precision? Give some examples?• What is the difference between a variable and an identifier?• What is a symbolic constant? Why are they desirable?• Can you declare a double and int in the same statement? Why or why

not?• How would you describe hexadecimal to someone without a clue?• What is the difference between the scope and life of a variable?• How are {} used in Java? How is ; used in Java? How is [] used?• What does static mean? How about public and private?• What is an escape sequence?• What is concatenation?• What are the programming conventions for naming variables, for

indenting, and for commenting?