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
Programming and Problem Solving
With Java
Chapter 3
Java Basics
Introduction
Primitive Types
Constants
Input
Conversion between Types
Ethics in Computing
Copyright 1999, James M. Slack
Introduction: Skeleton Programs
Skeleton Program for turtle graphics program
// Comment that describes the program
import turtlegraphics.*;
public class className
{
public static void main(String[] args)
throws TurtleException
{
// Put your Java statements here
}
}
Programming and Problem Solving With Java
2
Introduction: Skeleton Programs
Skeleton Program for non-turtle graphics program
// Comment that describes the program
public class className
{
public static void main(String[] args)
{
// Put your Java statements here
}
}
Programming and Problem Solving With Java
3
Introduction: Keywords
Keyword is reserved -- can’t use for identifier names
Keywords in Java
abstract
boolean
break
byte
byvalue*
case
cast*
catch
char
class
const*
continue
default
do
double
else
extends
false
final
finally
float
for
future*
generic*
goto*
if
implements
import
inner*
instanceof
int
interface
long
native
new
null
operator*
outer*
package
private
protected
public
rest*
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
var*
void
volatile
while
*
Reserved but not used in Java version 1.1.
Programming and Problem Solving With Java
4
Introduction: Identifier Names
Programmer must make up names for new classes,
methods, variables
Rules for forming identifier names
Must start with letter, underscore (_), or dollar sign ($)
Other characters must be letters, digits, underscores, or
dollar signs
No spaces!
No keywords
Programming and Problem Solving With Java
5
Introduction: Identifier Names
Identifiers should also be meaningful to human readers
Part of good programming style
Unacceptable to the
compiler
Acceptable to the compiler
Poor Style
Good Style
Person Class
p3
PersonClass
Person-Class
PC
Person_Class
**WELCOMEMESSAGE**
WELCOMEMESSAGE
WELCOME_MESSAGE
class
Class
AlgebraCourse
12MoreDrawings
D12T
Draw12Triangles
Programming and Problem Solving With Java
6
Introduction: Identifier Names
Many identifiers use more than one word
Examples: SmartTurtle, turnRight
Java conventions
After the first word, begin each word with a capital letter
Class names start with capital letter (SmartTurtle)
Other names start with lower-case letter (turnRight)
Programming and Problem Solving With Java
7
Introduction: The main() Method
The main() method is the one that starts with
public static void main(String[] args) …
Write executable instructions between braces
Executable instruction: makes computer do something
Examples of executable instructions
System.out.println("Hello!");
myTurtle.turnRight(90);
Examples of non-executable instructions
public static void main(String[] args)
import turtlegraphics.*;
Computer starts executing the first statement in
main()
Programming and Problem Solving With Java
8
Introduction: Flow of Control
Write executable statements like a list
Write first instruction you want the computer to do
Then write second, and so on
Sequential execution
Computer executes each instruction in turn, in order they
appear in program
Computer stops after executing last instruction
"Control"
When computer executing instruction, control is at that
instruction
Programming and Problem Solving With Java
9
Introduction: Semicolons
Semicolon required after each executable
instruction
myTurtle.move(100);
myTurtle.turnRight(90);
Free-form input
Compiler ignores indentation, ends of lines (as long as
words & other tokens not split)
Example of valid program
// (This program has poor formatting)
import turtlegraphics.*; public class DrawSimpleDesign {
public static void main(String[] arguments) throws
TurtleException { Turtle myTurtle =
new Turtle(); myTurtle.move(400); myTurtle.turnRight(90);
myTurtle.move(200); } }
Programming and Problem Solving With Java
10
Introduction: Letter Case
Java is case-sensitive
Compiler treats upper and lower case letters
differently
A different from a
B different from b
public static void different from PUBLIC STATIC VOID
Some languages (Pascal) are case-insensitive
Programming and Problem Solving With Java
11
Introduction: Comments
Comment starts with // and continues to end of line
// This program draws a square
myTurtle.move(100); // Position turtle for next figure
Compiler ignores comments
Programmer should include comments
Describe what the program does
Describe (in higher-level terms than the code) how the
program works
Usually unnecessary to comment each line -makes program too wordy
myTurtle.move(100);
// Move 100 units
myTurtle.turnRight(90); // Turn 90 degrees
Programming and Problem Solving With Java
12
Introduction: Streams
Stream
A sequence of characters
Has a reader (consumer of information)
at one end
Has a writer (producer of information) at
the other
Program's input and output are streams
Output stream is the textual output of the program
Input stream is the textual input of the program
Writer
Programming and Problem Solving With Java
Stream
Reader
13
Introduction: System.out Stream
System.out is the standard Java output stream
System is the name of a standard Java class
out is the output stream object in the System class
Refer to this output stream as System.out
Allows displaying text output on the console
System.out.println("Hello!");
println() is method of out stream
Syntax for method use
Hello!
object.method(arguments);
Action of println()
Display message on console
at cursor's position
Programming and Problem Solving With Java
14
Introduction: println() vs. print()
System.out.println()
Displays message, then moves cursor to beginning of
next line
System.out.println("First message");
System.out.println("Second message");
First message
Second message
_
System.out.print()
Cursor
Just displays message (leaves cursor after)
System.out.print("First message");
System.out.print("Second message");
First messageSecond message_
Programming and Problem Solving With Java
Cursor
15
Introduction: Use of print()
Use System.out.print() to display several values on
same line
// Displays the message, because there's a println()
// after the print().
public class DisplayMessage
{
public static void main(String[] args)
{
System.out.print("This");
System.out.print(" will");
System.out.println(" display");
}
}
Programming and Problem Solving With Java
16
Introduction: Use of flush()
Message from System.out.print doesn't display right
away -- stored in buffer
Use System.out.flush() to force display of output
from System.out.print()
System.out.print("Hello!");
System.out.flush();
Hello
Hello!
Buffer
Programming and Problem Solving With Java
17
Introduction: The Output Buffer
Output goes to the output buffer before the screen
System.out.println("Here is");
System.out.print("a small");
System.out.print(" test");
System.out.flush();
Here is
_
a small test_
Here
a
small
is test
Buffer
Programming and Problem Solving With Java
18
Displaying String Literals
Display string literals between quotes
System.out.println("This is a string literal");
Three ways display a long string literal
Let the literal go past the edge of the editor screen
System.out.println("This is a very very very very very ver
Break the string into two strings, use print() on first,
println() on second
System.out.print("This is a very very very very very ");
System.out.println("very very very long message");
Use concatenation
System.out.println("This is a very very very very very "
+ "very very very long message");
Programming and Problem Solving With Java
19
Introduction: Escape Sequences
Can't display double quote " directly
This statement doesn't compile
System.out.println("She said, "Hi!"");
Compiler can't find end of the string
Use escape character \ before " in string
System.out.println("She said, \"Hi!\"");
Other escape sequences
\b Backspace
\\ Backslash
\a Bell
\n End of line
\t Tab
Programming and Problem Solving With Java
20
Primitive Types
Type is a kind of information
Must define the type of information in a program
Three common types of information
Textual
Numeric
Multimedia
Two kinds of numeric types
Integer: whole numbers (4, 99, -123)
Floating point (4.35, -33.4, 3.0)
Programming and Problem Solving With Java
21
Primitive Type: Integers
Display integer
System.out.println(123);
Display result of integer arithmetic
System.out.println(123 + 456);
Display a message with an integer
123
579
The answer is 123
The sum is 123456
The sum is 579
System.out.println("The answer is " + 123);
Display a message with integer arithmetic (wrong)
System.out.println("The sum is " + 123 + 456);
Compiler treats + as concatenation!
Display a message with integer arithmetic (correct)
System.out.println("The sum is " + (123 + 456));
Programming and Problem Solving With Java
22
Primitive Types: Integer Operators
Operation
Symbol
Example
Result
Addition
+
26 + 10
36
Subtraction
-
26 - 1
25
Multiplication
*
26 * 10
260
Division
/
26 / 10
2
Modulus
(remainder)
%
26 % 10
6
Programming and Problem Solving With Java
23
Primitive Types: Integer Operators
Operator precedence: order of execution of
operators
Example
System.out.println(30 + 10 / 2);
Possible interpretations
30 10
20
2
and
Precedence Level
Operation
High
()
Medium
*, /, %
Low
+, -
Programming and Problem Solving With Java
30
10
35
2
24
Primitive Types: Integer Operators
Evaluation of some sample expressions
Expression
How Java Evaluates
Result
30 + 10 / 2
30 + (10 / 2)
35
25 + 16 - 10
(25 + 16) - 10
31
80 - 60 + 10
(80 - 60) + 10
30
50 - 10 * 3
50 - (10 * 3)
20
70 / 10 * 3
(70 / 10) * 3
21
15 * 2 / 3
(15 * 2) / 3
10
Programming and Problem Solving With Java
25
Primitive Types: Integer Types
Integer
Type
Size
Smallest Value
Largest Value
127
128
byte
1 byte
(8 bits)
short
2 bytes
(16 bits)
32,768
32,767
int
4 bytes
(32 bits)
2,147,483,648
2,147,483,647
long
8 bytes
(64 bits)
9,223,372,036,854,775,808
9,223,372,036,854,775,807
Programming and Problem Solving With Java
26
Primitive Types: Floating Point
Floating-point number has
Decimal point, or
Exponent, or both
Examples
5.0, 12.34, 0.0, -45.8, 12.
Scientific notation
5.6 x 1027
= 5,600,000,000,000,000,000,000,000,000.0
In Java
5.6E27
Programming and Problem Solving With Java
27
Primitive Types: Floating Point
Display floating point number
System.out.println(18.7856);
Display a message, too
18.7856
F.P. # is 18.7856
F.P. # is 1.23457e008
System.out.println("F.P. # is " + 18.7856);
Display a large floating point number
System.out.println("F.P. # is " + 123456789.0);
Large number display rule
If more than 6 digits
display in scientific notation
Else
display in conventional notation
Programming and Problem Solving With Java
28
Primitive Types: Floating Point
Java Statement
Display
System.out.println(0.000123456);
0.000123456
System.out.println(0.0001234567);
0.000123457
System.out.println(0.12345);
0.12345
System.out.println(0.123456);
0.123456
System.out.println(0.1234567);
0.123457
System.out.println(123.45);
123.45
System.out.println(1234.56);
1234.56
System.out.println(12345.67);
12345.7
System.out.println(1234.5);
1234.5
System.out.println(12345.6);
12345.6
System.out.println(123456.7);
123457
System.out.println(12345.0);
12345
System.out.println(123456.0);
123456
System.out.println(1234567.0);
1.23457e+006
System.out.println(123.00);
123
System.out.println(123.40);
123.4
Programming and Problem Solving With Java
29
Primitive Types: Floating Point
Floating Point Operators
Operation
Symbol
Example
Result
Addition
+
5.4 + 2.0
7.4
Subtraction
-
5.4 - 2.0
3.4
Multiplication
*
5.4 * 2.0
10.8
Division
/
5.4 / 2.0
2.7
Programming and Problem Solving With Java
30
Primitive Types: Floating Point
Floating point precedence
Precedence Level
Operation
High
()
Medium
*, /
Low
+, -
Programming and Problem Solving With Java
31
Primitive Types: Floating Point
Floating point types
Floating-point Type
Size
float
4 bytes (32 bits)
double
8 bytes (64 bits)
Float point ranges
Floating-point Type
Smallest Value
Largest Value
float
1.40129846432481707e-45
3.40282346638528860e+38
double
4.94065645841246544e-324
1.79769313486231570e+308
Programming and Problem Solving With Java
32
Primitive Types: Integer vs floating
Use integers for counting
Programming and Problem Solving With Java
Use floating-point numbers
for measuring
33
Using Strings
String is a sequence of characters
Literal value: "This is a string"
Java strings
Not primitive (built-in) type
Standard class
String operations
Many operations: length, substring, search, etc.
Example
// Display the length of a string literal
public class FindLength
{
public static void main(String[] args)
{
System.out.println("This is a string literal".length());
}
}
Programming and Problem Solving With Java
34
Variables
Variable: named location in memory
Can hold one value
437
intNum
(integer variable)
Programming and Problem Solving With Java
6.72
floatNum
(floating-point
variable)
35
Variables
Each variable like a
calculator memory
Holds one value
Can retrieve value many
times
Storing a new value erases
old
Differences from calculator
memory
Can have many variables
Variable can be one of many
types
Each variable has a name
Programming and Problem Solving With Java
36
Variables
Kinds of variables
Local
Instance
Class (static)
Variable,
schmariable
Variable definitions
int count;
int sum, limit;
Example
public class IllustrateVariables
{
String anInstanceVariable;
static int aStaticVariable;
public static void main(String[] args)
{
int aLocalVariable;
}
}
Programming and Problem Solving With Java
37
Variables: Parameters
Parameters are like local variables
Difference: initial value of parameter passed in
class SmartTurtle
{
// drawSquare: Draws a square of the given size
public void drawSquare(int size)
{
for (int i = 1; i <= 4; i++)
{
this.move(size);
this.turnRight(90);
}
}
…
}
Parameter size
Local variable i
Counting variable of for statement is local variable
Scope restricted to for statement
Programming and Problem Solving With Java
38
Variables: Assignment
Assignment operator =
Stores value in a variable
Read as "becomes", not "equals"
Examples
int count;
count = 25;
count = sum;
count = sum + 15;
count = count + 1;
Syntax
Variable = Expression
Variable
Programming and Problem Solving With Java
= Expression
39
Variables: Initialization
Initialization symbol =
Optional
Gives variable its first value
Examples
int count = 0;
double weight = 10.2;
String firstName = "John", lastName = "Smith";
Only one variable initialized per value
int first, second, third = 25;
Uninitialized variables don't have a value
int count;
System.out.println(count); // Wrong
Compiler output
Test.java:7: Variable count may not have been initialized.
System.out.println(count); // Wrong
Programming and Problem Solving With Java
40
Variables: Assign vs Initialize
Assignment & initialization use same symbol
Different operations
// Demonstrates assignment and initialization
public class StringDemonstration
{
public static void main(String[] args)
{
String firstName = "Linda";
// Initialize firstName
String lastName;
// No initial value
String name;
// No initial value
lastName = "Smith";
// Assign to lastName
name = firstName;
// Assign to name
name = name + " " + lastName; // Assign to name again
System.out.println("Name is " + name);
}
}
Programming and Problem Solving With Java
Name is Linda Smith
41
Variables: Assign & Initialize
Assignment and initialization are operators
Not statements or commands
Part of expression
Precedence
Very low precedence Level
= inside expressions
x = y = 0;
Same as
x = (y = 0);
Both x and y get 0
Operation
Associativity
High
()
Medium
*, /, %
left
Low
+, -
left
Very low
=
right
Associativity
Two of same operators in expression
Tells which the computer executes first
Programming and Problem Solving With Java
42
Variables: Increment & Decrement
Can use assignment to increment
count = count + 1;
Or use increment operator
count++;
++count;
// Postfix version
// Prefix version
Difference between post- and prePostfix: increment after evaluating expression
int x = 0, y = 1;
x = y++;
// y is 2, x is 1
Prefix: increment before evaluating expression
int x = 0, y = 1;
x = ++y;
// y is 2, x is 2
Also post- and prefix decrement operators -count--;
--count;
Programming and Problem Solving With Java
43
Variables: Displaying Values
// Displays the average of four floating
// point numbers
public class DisplayAverage
{
public static void main(String[] args)
{
double firstNum = 10.0;
double secondNum = 12.3;
double thirdNum = 15.4;
double fourthNum = 18.9;
double average;
average = (firstNum + secondNum + thirdNum + fourthNum)
/ 4;
System.out.println("The average is " + average);
}
}
Programming and Problem Solving With Java
44
Constants
Constant is like a variable
Has name
Has value
Constant is unlike a variable
Value can't change
Defining
Must define as a class (static) variable
Defined in the class, outside of any method
static final double TARGET_SALES = 350000.0;
Makes program more readable
System.out.println("Widget have sold "
+ (sales / TARGET_SALES * 100)
+ " percent of target sales");
Programming and Problem Solving With Java
45
Constants: Uses
Give meaning to meaningless literal value
static final double TARGET_SALES = 350000.0;
Makes program easier to read
Convention: ALL_CAPITAL_LETTERS for constants
Values that occur several times in a program
Names of companies, departments, etc.
static final String BANK_NAME = "First National Bank";
static final String BRANCH_NAME = "Springfield Branch";
Makes it easier to update the program
How about constants for 0 and 1?
static final int ONE = 1;
…
count = count + ONE;
No more readable than using literal value 1
Programming and Problem Solving With Java
46
Constants: Numeric Limits
Predefined constants for largest and smallest
numbers
System.out.println("Range
+ " to
System.out.println("Range
+ " to
System.out.println("Range
+ " to
System.out.println("Range
+ " to
Output
Range
Range
Range
Range
of
of
of
of
int:
long:
float:
double:
Programming and Problem Solving With Java
of int:
" + Integer.MIN_VALUE
" + Integer.MAX_VALUE);
of long:
" + Long.MIN_VALUE
" + Long.MAX_VALUE);
of float: " + Float.MIN_VALUE
" + Float.MAX_VALUE);
of double: " + Double.MIN_VALUE
" + Double.MAX_VALUE);
-2147483648 to 2147483647
-9223372036854775808 to 9223372036854775807
1.4013e-045 to 3.40282e+038
2.22507e-308 to 1.79769e+308
47
Input
Many programs require input from user
Input devices
Keyboard
Mouse
Stylus
Scanner
Keyboard input is complex in Java
Will use Keyboard class for now
Will learn other techniques later
Programming and Problem Solving With Java
48
Input: Keyboard Class
import Keyboard;
public class DemonstrateKeyboardInput
{
public static void main(String[] args)
throws java.io.IOException
{
int height, width;
Enter height of rectangle: 4
Enter width of rectangle: 3
The area of the rectangle is 12
System.out.print("Enter height of rectangle: ");
System.out.flush();
height = Keyboard.readInt();
System.out.print("Enter width of rectangle: ");
System.out.flush();
width = Keyboard.readInt();
System.out.println("The area of the rectangle is "
+ (width * height));
}
}
Programming and Problem Solving With Java
49
Input: Keyboard Class
Methods in Keyboard class
readInt()
readByte()
readShort()
readLong()
readFloat()
readDouble()
readString()
When control reaches Keyboard method
Computer waits for user to enter value
Method returns value user typed
Programming and Problem Solving With Java
50
Input: Prompting
Prompting message
Put before input method
Tells user what to type
System.out.print() vs. System.out.println()
print() message appears on same line as input
System.out.print("Enter first number: ");
System.out.flush();
firstNum = Keyboard.readDouble();
Enter first number: 24
printlln() message on line above input
System.out.println("Enter second number:");
secondNum = Keyboard.readDouble();
Enter second number:
18
Programming and Problem Solving With Java
51
Input: Keyboard Method Prompts
Prompt message with System.out.print()
System.out.print("Enter first number: ");
System.out.flush();
firstNum = Keyboard.readDouble();
Prompt message with Keyboard.readxxx()
Combine prompt with input method
firstNum = Keyboard.readDouble("Enter first number: ");
For numeric types, can force limits
age = Keyboard.readInt("Enter age: ", 0, 100);
For String, can force minimum and maximum length
// Force user to enter at least 5 characters
name = Keyboard.readString("Enter name: ", 5);
// Force user to enter between 5 and 10 characters
password = Keyboard.readString("Enter password: ", 5, 10);
Programming and Problem Solving With Java
52
Input Example: Safe Heart Rate
Safe heart rate for exercise, based on age
Maximum heart rate: 220 - age
Safe heart rate: 60% to 85% of maximum
Sample run
*** Exercise Heart Rate Target ***
Enter your name: John
Enter your age in years: 25
Maximum safe heart rate for John, age 25, is 195.
You will get a good workout at a rate between 117 and
165.75.
Programming and Problem Solving With Java
53
Input Example: Safe Heart Rate
Algorithm
Display the program's title
Ask the user to type his or her age
Maximum heart rate is 220 minus age
Minimum workout rate is 0.6 times
maximum heart rate
Maximum workout rate is 0.85 times
maximum heart rate
Display the results
Programming and Problem Solving With Java
54
Input Example: Safe Heart Rate
// This program finds the maximum heart rate, minimum
// workout heart rate, and maximum workout heart rate, based on the
// user's age.
import Keyboard;
public class SafeHeartRate
{
static final double LOWER_WORKOUT_FACTOR = 0.6;
static final double UPPER_WORKOUT_FACTOR = 0.85;
static final int BASELINE = 220;
public static void main(String[] args)
throws java.io.IOException
{
String name;
int age, maximumRate;
double minimumWorkoutRate, maximumWorkoutRate;
// Display program title
System.out.println("*** Exercise Heart Rate Target ***");
System.out.println();
Programming and Problem Solving With Java
55
Input Example: Safe Heart Rate
// Get user's name
name = Keyboard.readString("Enter your name: ");
// Get user's age
age = Keyboard.readInt("Enter your age in years: ");
// Calculate heart rates
maximumRate = BASELINE - age;
minimumWorkoutRate = maximumRate * LOWER_WORKOUT_FACTOR;
maximumWorkoutRate = maximumRate * UPPER_WORKOUT_FACTOR;
// Display results
System.out.println("Maximum safe heart rate for " + name
+ ", age " + age + ", is " + maximumRate
+ ".");
System.out.println("You will get a good workout at a rate "
+ "between " + minimumWorkoutRate + " and "
+ maximumWorkoutRate + ".");
}
}
Programming and Problem Solving With Java
56
Input Example: Loan Payment
Loan payment, based on amount, rate, length
amount rate
payment
1
1
(1 rate ) months
Sample run
*** Payment on a Loan ***
Enter
Enter
Enter
Enter
the
the
the
the
title of the loan: My Computer Loan
amount of the loan: 1000
interest rate: 0.05
number of months: 24
Results for My Computer Loan
For a loan of 1000, interest rate of 0.05, over 24 months,
the monthly payment is 72.4709.
Programming and Problem Solving With Java
57
Input Example: Loan Payment
Convert payment formula to Java
amount rate
payment
1
1
(1 rate ) months
amount rate
1
1
Math.pow (1 rate, months )
amount rate
1 1 / Math.pow (1 rate, months )
(amount * rate)/(1 1 / Math.pow (1 rate, months ))
Programming and Problem Solving With Java
58
Input Example: Loan Payment
Algorithm
Display the program's title
Get the loan information from the user
Amount of the loan.
Interest rate.
Number of months.
Compute payment
Display the payment
Use floating-point variables
Need to store dollars and cents
Programming and Problem Solving With Java
59
Input Example: Loan Payment
// This program displays the monthly payment on a
// loan, given the amount of the loan, the interest rate, and
// the number of months of the loan
import Keyboard;
public class LoanPayment
{
public static void main(String[] args)
throws java.io.IOException
{
double amount, interestRate, numMonths, payment;
String title;
// Present program title
System.out.println("*** Payment on a Loan ***");
System.out.println();
// Get input
title = Keyboard.readString("Enter the title of the loan: ");
amount = Keyboard.readDouble("Enter the amount of the loan: ");
interestRate = Keyboard.readDouble("Enter the interest rate: ");
numMonths = Keyboard.readDouble("Enter the number of months: ");
Programming and Problem Solving With Java
60
Input Example: Loan Payment
// Find the payment
payment = (amount * interestRate)
/ (1 - (1 / Math.pow(1 + interestRate, numMonths)));
// Display results
System.out.println();
System.out.println("Results for " + title + ":");
System.out.println("For a loan of " + amount
+ ", interest rate of " + interestRate
+ ", over " + numMonths + " months, ");
System.out.println("the monthly payment is " + payment + ".");
}
}
Programming and Problem Solving With Java
61
Type Conversion: Implicit
Automatic promotion from "narrow" to "wide" range
byte
short
int
long
float
double
Example
double d = 4.2 * 2;
Programming and Problem Solving With Java
62
Type Conversion: Implicit
double x = 2.5 + 5 / 2 - 1.25;
double x
=
2.5
+
5
/
2
-
1.25
Evaluate
5 / 2 as 2
Promote
2 to 2.0
Evaluate
2.5 + 2.0 as 4.5
Evaluate
4.5 - 1.25 as 3.25
Initialize x to
3.25
Programming and Problem Solving With Java
63
Type Conversion: Explicit
Programmer can control conversion
Cast: type name in parentheses
int intNum = (int) 123.45;
double doubleNum = 123.45;
(short) applies to
doubleNum only
System.out.println((short) doubleNum + 3);
System.out.println((short) (doubleNum + 3));
Conversion to integer type makes
program more efficient
Floating-point operations usually slower
Programming and Problem Solving With Java
(short) applies to
doubleNum + 3
64
Type Conversion: Explicit
Converting floating-point to integer
Cast: truncates digits to right of decimal
Math.ceil(): closest integer greater or equal
Math.floor(): closest integer less or equal
Math.round(): closest integer
Example: -1.6 and 1.6
ceil
ceil
floor
floor
round
-2.0
round
-1.0
-1.6
Programming and Problem Solving With Java
0.0
2.0
1.0
1.6
65
Type Conversion: Explicit
Converting other types to String
String.valueOf() converts any type to String
Example
// Demonstrates conversion of an integer to a String
public class IntToString
{
public static void main(String[] args)
{
int number = 123456;
String numberString = String.valueOf(Math.abs(number));
System.out.println("The number " + number + " has "
+ numberString.length() + " digits");
}
}
Programming and Problem Solving With Java
66
Type Conversion: Explicit
Easier way to convert to String
Concatenate empty string to value
Example
// Demonstrates another way to convert an integer
// to a String
public class IntToString2
{
public static void main(String[] args)
{
int number = 123456;
String numberString = "" + Math.abs(number);
System.out.println("The number " + number + " has "
+ numberString.length() + " digits");
}
}
Programming and Problem Solving With Java
67
Ethics in Computing
Ethics: Rules and standards a society agrees to live
by
Laws
Customs
Moral codes
Varies by cultures and societies
Most professions have rules of conduct
Ethical rules in computing
Association of Computing Machinery (ACM)
Data Processing Management Association (DPMA)
Institute for Electronic and Electrical Engineers (IEEE)
Programming and Problem Solving With Java
68
Ethics in Computing
Punishment may result if rules not followed
Break laws Jail, fines, etc.
Ignore professional ethics Professional censure
Positive reputation results from following laws and
professional ethics
Person of trust and integrity
Person who deals fairly and responsibly
Steady, long-term rise in prestige,
responsbility, income
Professional should set example
for others to follow
Programming and Problem Solving With Java
69
Ethics in Computing
: Software Piracy
Piracy: copying commercial software without permission
Theft -- against the law
Hacking
Hacking: using someone else's
computer without permission
Computer Fraud and Abuse Act
(US) makes hacking illegal
Electronic Communications Privacy Act (US)
makes interception of electronic communcation illegal
Most other countries and US states have similar laws
Programming and Problem Solving With Java
70
Ethics in Computing
Viruses
Virus: attaches to a program, then spreads when
program runs
May do damage: destroy files, delete files, …
Easy to write, but is a crime
Good practice to use virus protection
Plagiarism
Plagiarism: submitting work of someone else as your
own
Easy to do without meaning to
Should credit work done by others
Programming and Problem Solving With Java
71
Ethics in Computing
Programming and Problem Solving With Java
72
Additional Features of Java
Compound assignment operators
Operator
Example
Equivalent to
+=
x += 3;
x = x + 3;
-=
x -= 7;
x = x - 7;
*=
x *= 2;
x = x * 2;
/=
x /= 9;
x = x / 9;
%=
x %= 3;
x = x % 3;
Programming and Problem Solving With Java
73