Samples from Chapter 2

Download Report

Transcript Samples from Chapter 2

Simple Programs from Chapter 2
Putting the Building Blocks All
Together
(corresponds with Chapter 2)
Programming Style and
Documentation

Comments


Indentation and Spacing


Proper indenting makes the code reflect the actual logic of the
program.
Block Styles


Comments are very important. You should comment your code
in order to provide explanations of what the program is doing
Placement of the { and } braces
Naming conventions


Use descriptive names for classes, methods, and variables
By convention, class names begin with uppercase, method and
variable names begin with lowercase, and constants are all
uppercase.
Comments




// for single line
/* */ for multiple lines
Comment at top of source file to identify
the author and the purpose of the
program
Comment to describe classes, methods,
and sections of code (steps of the
algorithm)
Comments help readers understand the program code!
Indentation and Spacing



Statements within blocks should be
indented
Statements that are executed within
control structures should be indented
If a statement continues from one line to
the next, the subsequent line(s) should be
indented.
Block Styles

Choices:

Next-line:
void myMethod()
{
---------
}

End-of-line:
void myMethod(){
---------
}
Either way is fine
Naming Conventions

Variables and method names:

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.
Naming Conventions, cont.

Class names:


Capitalize the first letter of each
word in the name. For example,
the class name
TestComputeArea.
Constants:

Capitalize all letters in constants.
For example, the constant PI.
Chapter 2 Examples






ComputeArea (Listing 2.1, p27)
TestScanner (Listing 2.6, p45)
ComputeLoan (Listing 2.7, p46)
ComputeChange (Listing 2.8, p48)
ShowCurrentTime (Listing 2.9, p50)
ComputeLoanUsingInputDialog (Listing 2.10,
p57)
Putting it all together: Listing 2.1
(available from Liang Code Samples)
Putting it all together: Listing 2.1
Variable declarations
Assignment of
literal value into
variable
Arithmetic expression and
assignment
Output with concatenated data values.
A method Call
The System
class…this The name
contains
(identifier)
static
of the
member
member
variable
variable
(out).
The member
variable (out)
is an instance
of another
class (called
PrintStream)
PrintStream has a
non-static
(instancespecific) method
called println
System.out.println("The area for the circle of radius "
+ radius + " is " + area);
The arguments passed to the
println method
This method does not return a value
no assignment
About the System Class
Part of the Java Class Library
 Useful for standard input (keyboard)
and output (screen) in console-based
applications
 More details from Sun’s Java
documentation site:


http://java.sun.com/javase/6/docs/api/
Java documentation from
Sun’s Java site
Putting it all together: Listing 2.1
A package is a collection of
classes. In practice, a package
is equivalent to a directory
(folder). To indicate that a
class is in a package, you
must:
1) Place the .java file in the
appropriate folder, and
2) Write a package statement
with the appropriate package
name as the first line of code
in the .java file.
The ch02 package consists of all
the classes (ComputeArea,
ComputeChange,
ComputeMortgage,
InputDialogDemo,
MyInput,
ShowCurrentTime,
ShowRuntimeErrors,
ShowSyntaxErrors,
TestMyInput).
Listing 2.10 ComputeLoanUsingInputDialog
Listing 2.10 ComputeLoanUsingInputDialog
If you are using a class
that is not in your own
package, or in the package
java.lang, you must import
that class.
Listing 2.10 ComputeLoanUsingInputDialog
Input from user and convert to
appropriate data type.
User Input via JOptionPane Object

JOptionPane is a class in the Java class
library that can display an input dialog for
obtaining user input or show message
dialogs for display to the user.

Two methods:
showInputDialog – for user input
 showMessageDialog – for displaying a message to
the user

The JOptionPane
class…this
contains static
methods for
displaying
various types of
dialogs
The JOptionPane
class’s
ShowInputDialog
method displays a
dialog with
parameters
controlling the
look.
String annualInterestRateString = JOptionPane.showInputDialog(
"Enter yearly interest rate, for example 8.25:");
After the user enters a
value and clicks OK, the
value is returned as a
String. Here, we assign
that value into a String
variable
String annualInterestRateString = JOptionPane.showInputDialog(
"Enter yearly interest rate, for example 8.25:");
In this case, the variable nnualInterestRateString
will contain the string “5.8”.
Listing 2.10 ComputeLoanUsingInputDialog
Simple arithmetic
expressions and
assignments. NOTE:
variables are declared and
initialized in one statement.
Listing 2.10 ComputeLoanUsingInputDialog
Note the use of the cast
operator. This use is a clever
way to make sure that the
displayed output has no
more than two decimal
places.
Anatomy of an arithmetic statement involving
casting
(assume that monthlyPayment had been calculated as 1525.875)
152587.5
(1)
152587 (2)
Casting from double to int truncates
Assign into
variable
monthlyPayment
(4)
1525.87 (3)
Listing 2.10 ComputeLoanUsingInputDialog
A more complex arithmetic
expression and
assignment. Here the
expression includes:
1. Parentheses to
override normal
operator precedence.
2. Calling another method
and passing arguments
Anatomy of a Complex Arithmetic Expression
8) Assign results to monthlyPayment
1) Declare the variable
7) Do the multiplication and division
2) Perform
calculation
3) Perform
calculation
4) Call the Math.pow method passing the
results of (2) and (3) as arguments.
5) Divide the result of (4) into the number 1
6) Subtract the result of (5) from the number 1
About the Math Class



Part of the Java Class Library
Contains methods for performing basic
numeric operations such as
exponentiation, logarithm, square root,
and trigonometric functions.
More details from Sun’s Java
documentation site:

http://java.sun.com/j2se/1.5.0/docs/api
Java documentation from
Sun’s Java site
The Scanner Class
Another way to do User Input
1. Create a Scanner object
Scanner scanner = new Scanner(System.in);
2. Use the methods next(), nextByte(), nextShort(),
nextInt(), nextLong(), nextFloat(), nextDouble(), or
nextBoolean() to obtain to a string, byte, short, int, long,
float, double, or boolean value. For example,
System.out.print("Enter a double value: ");
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
Listing 2.6 TestScanner
Listing 2.6 TestScanner
If you are using a class
that is not in your own
package, or in the package
java.lang, you must import
that class.
Listing 2.6 TestScanner
Creating an instance of the
Scanner class, associating it with
the standard input stream
(System.in), and assigning a
reference to that instance into the
variable called input.
Listing 2.6 TestScanner
Input from user via
scanner, by calling
the input method
that reads user
input for the
appropriate data
type.
How Scanner-based User I/O looks in NetBeans
System.out.print and
System.out.println sends
standard output to Output
window, and the Scanner reads
from the same window
Summary:
User Input/Output Options

Standard I/O Streams



GUI (popup dialogs)



Input: Scanner class and methods
Output: System.out.print (or println)
Input: JOptionPane.ShowInputDialog
Output: JOptionPane.ShowMessageDialog
Many more GUI options…we’ll study later
in semester