Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1 Introduction to Computers and Programming in JAVA: V22.0002 Primitive Data Types and Operations 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 2 Primitive Data Types and Operations • Identifiers, Variables, and Constants • Primitive Data Types – byte, short, int, long, float, double, char, boolean • Expressions • Mathematical Operators • Syntax Errors, Runtime Errors, and Logic Errors 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 3 Reserved words: Certain words have special meaning in Java and cannot be used as identifiers. These words are called reserved words. So far we have seen the following reserved words: public import static void class We will see a complete list of reserved words soon. Use of the words null, true and false is also prohibited. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 4 Lets review Identifiers • • An identifier is a sequence of characters that consist of letters, digits, underscores (_), and dollar signs ($). An identifier must start with: – a letter – an underscore (_) – or a dollar sign ($). It cannot start with a digit. An identifier cannot be a reserved word. – (See Appendix A, “Java Keywords,” for a list of reserved words). An identifier cannot be true, false, or null. • An identifier can be of any length. • • • 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 5 Programming Style and Documentation • • • • Appropriate Comments Naming Conventions Proper Indentation and Spacing Lines Block Styles 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 6 Appropriate Comments Include a comment at the beginning of each program: – to explain what the program does – its key features – its supporting data structures – and any unique techniques it uses. • • • • • Include your name class section instruction date and a brief description at the beginning of the program. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 7 Proper Indentation and Spacing • Indentation – Indent two spaces. • Spacing – Use blank line to separate segments of the code. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 8 Block Styles Use a consistent style for braces. Next-line style public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. End-of-line style 9 Programming Errors • Syntax Errors – Detected by the compiler • Runtime Errors – Causes the program to abort • Logic Errors – Produces incorrect result 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 10 Syntax Errors • Caused when the compiler cannot recognize a statement. • These are violations of the language • The compiler normally issues an error message to help the programmer locate and fix it • Also called compile errors or compile-time errors. • For example, if you forget a semi-colon, you will get a syntax error. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 11 Run-time Errors • These occur once a program is running; typically it will “crash” or simply abort. • The compiler cannot identify these errors at compile time. • For example, a statement which calls for division by zero causes a run-time error: the compiler would not detect it but the program cannot run in this case. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 12 Naming Conventions • Choose meaningful and descriptive names. • For Variables, class names and methods: – Use lowercase. – If the name consists of several words, concatenate all in one, use lowercase for the first word, and capitalize the first letter of each subsequent word in the name. – For example, the variables radius and area, and the method computeArea. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 13 Naming Conventions, cont. • Class names: – Capitalize the first letter of each word in the name. For example, the class name ComputeArea. • Constants: – Capitalize all letters in constants. For example, the constant PI. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 14 Variables 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 15 Memory Concepts • Variables – Every variable has a name, a type, a size and a value • Name corresponds to location in memory – When new value is placed into a variable, it replaces (and destroys) the previous value – Reading variables from memory does not change them 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 16 Bucket Analogy • It is useful to think of a variable as a bucket of data. • The bucket has a unique name, and can only hold certain kinds of data. 200 balance 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. balance is a variable containing the value 200, and can contain only integers. 17 Memory Concepts • Visual Representation – sum = 0; – sum = 3; – sum = 2; sum 0 sum 3 sum 2 – Sum = number1 + number2; after execution of statement 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 18 Arithmetic Op era to r(s) * / % + Fig. 2.17 Op era tio n(s) Multiplication Division Remainder Addition Subtraction Ord er o f eva lua tio n (p rec ed enc e) Evaluated first. If there are several of this type of operator, they are evaluated from left to right. Evaluated next. If there are several of this type of operator, they are evaluated from left to right. Prec ed enc e o f a rithm etic o p era to rs. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 19 Arithmetic • Arithmetic calculations used in most programs – Usage • * for multiplication • / for division • +, • No operator for exponentiation • Integer division truncates remainder 7 / 5 evaluates to 1 – The Remainder operator: % returns the remainder 7 % 5 evaluates to 2 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 20 Arithmetic • Operator precedence – Some arithmetic operators act before others (i.e., multiplication before addition) • Use parenthesis when needed – Example: Find the average of three variables a, b and c • Do not use: a + b + c / 3 • Use: ( a + b + c ) / 3 – Follows PEMDAS • Parentheses, Exponents, Multiplication, Division, Addition, Subtraction (aka “Please excuse my dear Aunt Sally”) 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 21 Variable Declaration • Java is a “strongly typed” language. • Before you use a variable, you must declare it. • Examples: /* Creates an integer variable */ int number; /* Creates a float variable */ float price; /* Creates a character variable */ char letter; 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 22 Declaring Variables int x; // Declare x to be an // integer variable; double radius; // Declare radius to // be a double variable; char a; // Declare a to be a // character variable; 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 23 Data Types: • integers: the simplest data type in Java. They are used to hold positive and negative whole numbers, e.g. 5, 25, -777, 1. • doubles: Used to hold fractional or decimal values, e.g. 3.14, 10.25. • chars: Used to hold individual characters, e.g. ‘c’, ‘e’, ‘1’, ‘\n’ • We will explore each one in detail later this semester as well as some additional primitive data types. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 24 Declaring and Initializing in One Step • int x = 1; • double d = 1.4; • float f = 1.4; 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 25 Numerical Data Types byte 8 bits short 16 bits int 32 bits long 64 bits float 32 bits double 64 bits 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 26 Assignment Statements x = 1; // Assign 1 to x; radius = 1.0; // Assign 1.0 to radius; a = 'A'; // Assign 'A' to a; 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 27 Important Point about Declarations • You must make a declaration immediately following the left brace following the main method. – at the beginning of a function and before any executable statements or else you get a syntax error. { declaration section … statement section … } 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 28 Example 1: Basic Arithmetic /* Illustrates Integer Variables */ public class addition { public static void main(String[] args) { int x, y, z; Variable Declaration // Specify values of x and y x = 2; y = 3; // add x and y and place the result in z variable z = x + y; System.out.println("x has a value of " + x); System.out.println("y has a value of " + y); System.out.println("The sum of x + y is " + z); System.exit(0); } } 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. Assignment Statements 29 Printing Variables • To print a variable, use the System.out.print or System.out.println statement as you would for a string. • • System.out.print (x); • System.out.println (x); • System.out.println ("x: " + x); • Here the “+” symbol is for string concatenation. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 30 Assignment Statements • Assignments statements enable one to initialize variables or perform basic arithmetic. x = 2; y = 3; z = x + y; • Here, we simply initialize x and y and store their sum within the variable z. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 31 Assignment Operator • = • Read the assignment operator as “GETS” not “EQUALS!” • This is an assignment of what’s on the right side of = to a variable on the left • eg sum = integer1 + integer2; – Read this as, “sum gets integer1 + integer2” – integer1 and integer2 are added together and stored in sum 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 32 Assignment Operators • Given the following: x = 2; x = x + 1; System.out.println ("x: " + x); • There are actually several ways to rewrite this more concisely. 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. Short Cut Operator • One option is to use the += operator x = 2; x += 1; // same as x = x + 1; System.out.println ("x: " + x); • There are similar operators for *, -, /.% – – – – x x x x = = = = x x x x * – / % 5 5; 5; 5; is is is is equivalent equivalent equivalent equivalent to to to to x x x x *= -= /= %= 5; 5; 5; 5; • Good Practice: place a space before and after your short cut operators. Increment Operator • A second option is to use an increment operator: x++ Post-Increment Operator ++x Pre-Increment Operator • Both operators will increment x by 1, but they do have subtle differences. Pre v. Post Increment • PostIncrement Operator (x++): – use the current value of x in the expression. Then, increment by 1. • PreIncrement Operator (++x): – Increment x by 1. Then, use the new value of x in the expression. How about a real example? // Preincrementing v. PostIncrementing public class PrePost { public static void main (String[] args) { Post Increment int c = 5; Output: System.out.println (c); System.out.println (c++); 5 System.out.println (c); 5 System.out.println(); c = 5; 6 System.out.println (c); System.out.println (++c); System.out.println (c); 5 6 } } Pre Increment 2000 Prentice Hall, Inc. All rights reserved. 6 Modified by Evan Korth Pre v. Post Decrement • PostDecrement Operator (x--): – use the current value of x in the expression. Then, decrease by 1. • PreDecrement Operator (--x): – Decrease x by 1. Then, use the new value of x in the expression. • Good practice: Place unary operators directly next to their operands, with no intervening spaces. 38 Displaying Text in a Dialog Box • Display – Most Java applications use windows or a dialog box • We have used command window – Class JOptionPane allows us to use dialog boxes • Packages – Set of predefined classes for us to use – Groups of related classes called packages • Group of all packages known as Java class library or Java applications programming interface (Java API) – JOptionPane is in the javax.swing package • Package has classes for using Graphical User Interfaces (GUIs) 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 39 Displaying Text in a Dialog Box • Upcoming program – – – – Application that uses dialog boxes Explanation will come afterwards Demonstrate another way to display output Packages, methods and GUI 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1// // Fig. 2.6: Welcome4.java welcome3.java // Printing multiple lines in a dialog box. 2 // Printing multiple lines in a dialog box 3// import javax.swing.JOptionPane; // import class JOptionPane Java packages 4import javax.swing.JOptionPane; // program uses JOptionPane 5 public class Welcome4 { public class welcome3 { 6 public static void main( String args] ) // main method begins execution of Java application 7 { public static void main( String args[] ) 8 { JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); null, "Welcome\nto\nJava\nProgramming!" ); 10 11 12 System.exit( 0 ); terminate application with window System.exit( 0 );// // terminate the program } } // end method main } // end class welcome3 welcome3.java 1. import declaration 2. Class Welcome4 2.1 main 2.2 showMessageDial og 2.3 System.exit Program Output 2003 Prentice Hall, Inc. All rights reserved. 41 Displaying Text in a Dialog Box – Lines 1-2: comments as before // Java packages 4 – Two groups of packages in Java API – Core packages • Begin with java • Included with Java 2 Software Development Kit – Extension packages • Begin with javax • New Java packages 5 import javax.swing.JOptionPane; // program uses OptionPane – import declarations • Used by compiler to identify and locate classes used in Java programs • Tells compiler to load class JOptionPane from javax.swing package 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 42 2.4 Displaying Text in a Dialog Box – Lines 6-11: Blank line, begin class welcome4 and main 12 13 JOptionPane.showMessageDialog( null, "Welcome\nto\nJava\nProgramming!" ); – Call method showMessageDialog of class JOptionPane • Requires two arguments • Multiple arguments separated by commas (,) • For now, first argument always null • Second argument is string to display – showMessageDialog is a static method of class JOptionPane • static methods called using class name, dot (.) then method name 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 43 2.4 Displaying Text in a Dialog Box – All statements end with ; • A single statement can span multiple lines • Cannot split statement in middle of identifier or string – Executing lines 12 and 13 displays the dialog box • Automatically includes an OK button – Hides or dismisses dialog box • Title bar has string Message 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 44 Displaying Text in a Dialog Box 15 System.exit( 0 ); // terminate application with window – Calls static method exit of class System • Terminates application – Use with any application displaying a GUI • Because method is static, needs class name and dot (.) • Identifiers starting with capital letters usually class names – Argument of 0 means application ended successfully • Non-zero usually means an error occurred – Class System part of package java.lang • No import declaration needed • java.lang automatically imported in every Java program – Lines 17-19: Braces to end welcome3 and main 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved. 45 Memory Concepts • Variable names correspond to locations in the computer’s primary memory. • Every variable has: – a name – a type – and a value. • When a value is placed in a memory location the value replaces the previous value in that location (called destructive read-in) • A variable’s value can just be used and not destroyed (called non-destructive read-out) 2003 Prentice Hall, Inc. Modified for use with this class. All rights reserved.