Download Primitive Data Types and Operations

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.