Chapter2
- 2.2 Writing a simple program
- 2.3 Reading input form Console
- 2.4 Identifiers
- 2.5 variables
- 2.6
- 2.7 Named constants
- 2.8 Naming Conventions
- 2.9
- 2.10
- 2.11 Evaluating Expressions and Operator Precedence
- 2.12 Case Study: Displaying the Current Time
- 2.13 Augmented Assignment Operators
- 2.14 Increment and Decrement Operators
- 2.15 Numeric Type Conversions
- 2.16 Software Development Process
- 2.17 Case Study: Counting Monetary Units
- 学习体会:
2.2 Writing a simple program
Algorithms can be described in natural languages or in pseudocode (natural language mixed with some programming code).
ComputeArea
public class ComputeArea {
public static void main(String[] args) {
double radius; // Declare radius
double area; // Declare area
// Assign a radius
radius = 20; // radius is now 20
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
concatenate strings
The plus sign (+) has two meanings: one for addition and the other for concatenating (combining) strings.
2.3 Reading input form Console
How to
- Console input is not directly supported in Java, but you can use the Scanner class to create an object to read input from System.in,as follows:
Scanner input = new Scanner(System.in);
The syntax new Scanner(System.in) creates an object of the Scanner type. The syntax Scanner input declares that input is a variable whose type is Scanner. The whole line Scanner input = new Scanner(System.in) creates a Scanner object and assigns its reference to the variable input.
- An object may invoke its methods. To invoke a method on an object is to ask the object to perform a task. You can invoke the nextDouble() method to read a double value as follows:
double radius = input.nextDouble();
specific import && wildcard import
The Scanner class is in the java.util package. It is imported in line 1. There are two types of import statements: specific import and wildcard import. The specific import specifies a single class in the import statement. For example, the following statement imports Scanner from the package java.util.
import java.util.Scanner;
The wildcard import imports all the classes in a package by using the asterisk as the
wildcard. For example, the following statement imports all the classes from the package
java.util.
import java.uitl.*;
no performance difference
2.4 Identifiers
identifier naming rules
- An identifier is a sequence of characters that consists 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 for a list of reserved words.)
- An identifier cannot be true, false, or null.
- An identifier can be of any length.
Do not name identifiers with the $ character. By convention, the $ character should be
used only in mechanically generated source code.
For example, numberOfStudents is better than numStuds, numOfStuds, or numOfStudents.
These names also provide a generic tone to the code snippets.
2.5 variables
Variables are used to represent values that may be changed in the program.
2.6
assignment statement
In Java, an assignment statement is essentially an expression that evaluates to the value
to be assigned to the variable on the left side of the assignment operator. For this reason, an
assignment statement is also known as an assignment expression. For example, the following
statement is correct:
System.out.println(x = 1);
which is equivalent to
x = 1;
System.out.println(x);
2.7 Named constants
Declare a constant
final double PI = 3.14159; // Declare a constant
2.8 Naming Conventions
- Use lowercase for variables and methods. If a name consists of several words, concatenate them into one, making the first word lowercase and capitalizing the first letter of each subsequent word—for example, the variables radius and area and the method print.
- Capitalize the first letter of each word in a class name—for example, the class names
ComputeArea and System. - Capitalize every letter in a constant, and use underscores between words—for example, the constants PI and MAX_VALUE.
2.9
math.pow(2,3);//2的三次方
2.10
2.10.1 Integer literals
By default, an integer literal is a decimal integer number. To denote a binary integer literal, use a leading 0b or 0B (zero B), to denote an octal integer literal, use a leading 0 (zero), and to denote a hexadecimal integer literal, use a leading 0x or 0X (zero X).
For example,
System.out.println(0B1111); // Displays 15
System.out.println(07777); // Displays 4095
System.out.println(0XFFFF); // Displays 65535
2.10.2 Floating-Point Literals
A float value has 7 to 8 number of significant digits and a double value has 15 to 17 number
of significant digits.
2.10.3 Scientific Notation
why called floating-point?
- The float and double types are used to represent numbers with a decimal point.
Why are they called floating-point numbers? These numbers are stored in scientific notation internally. When a number such as 50.534 is converted into scientific notation,
such as 5.0534E+1, its decimal point is moved (i.e., floated) to a new position.
underscores in numbers
- To improve readability, Java allows you to use underscores between two digits in a
number literal. For example, the following literals are correct.
long ssn = 232_45_4519;
long creditCardNumber = 2324_4545_4519_3415L;
However, 45_ or _45 is incorrect. The underscore must be placed between two digits
2.11 Evaluating Expressions and Operator Precedence
Java expressions are evaluated in the same way as arithmetic expressions.
2.12 Case Study: Displaying the Current Time
You can invoke System.currentTimeMillis() to return the current time.
The currentTimeMillis method in the System class returns the current time in milliseconds elapsed since midnight, January 1, 1970 GMT. This time is known as the UNIX epoch. The epoch is the point when time starts, and 1970 was the year when the UNIX operating system was formally introduced.
You can use this method to obtain the current time, and then compute the current second,
minute, and hour as follows.
- Obtain the total milliseconds since midnight, January 1, 1970, in totalMilliseconds by invoking System.currentTimeMillis() (e.g., 1203183068328 milliseconds).
- Obtain the total seconds totalSeconds by dividing totalMilliseconds by 1000 (e.g., 1203183068328 milliseconds / 1000 = 1203183068 seconds).
- Compute the current second from totalSeconds % 60 (e.g., 1203183068 seconds % 60 = 8, which is the current second).
- Obtain the total minutes totalMinutes by dividing totalSeconds by 60 (e.g., 1203183068 seconds / 60 = 20053051 minutes).
- Compute the current minute from totalMinutes % 60 (e.g., 20053051 minutes % 60 = 31, which is the current minute).
- Obtain the total hours totalHours by dividing totalMinutes by 60 (e.g., 20053051 minutes / 60 = 334217 hours).
- Compute the current hour from totalHours % 24 (e.g., 334217 hours % 24 = 17,which is the current hour)
2.13 Augmented Assignment Operators
The operators +, -, *, /, and % can be combined with the assignment operator to form
augmented operators.
2.14 Increment and Decrement Operators
The increment operator (++) and decrement operator (––) are for incrementing and
decrementing a variable by 1.
i++ postincrement
i-- postdecrement
++i preincrement
–i predecrement
2.15 Numeric Type Conversions
Floating-point numbers can be converted into integers using explicit casting
2.16 Software Development Process
The software development life cycle is a multistage process that includes requirements specification, analysis, design, implementation, testing, deployment, and maintenance.
Developing a software product is an engineering process. Software products, no matter how large or how small, have the same life cycle: requirements specification, analysis, design, implementation, testing, deployment, and maintenance, as shown in Figure 2.3.
At any stage of the software development life cycle, it may be necessary to go back to a previous stage to correct errors or deal with other issues that might prevent the software from functioning as expected
system design
System design is to design a process for obtaining the output from the input. This phase
involves the use of many levels of abstraction to break down the problem into manageable
components and design strategies for implementing each component. You can view each
component as a subsystem that performs a specific function of the system. The essence of
system analysis and design is input, process, and output (IPO).
java.lang
math包
2.17 Case Study: Counting Monetary Units
This section presents a program that breaks a large amount of money into smaller
units
学习体会:
前两章好理解,之前收藏了背包九讲,难理解,可以交替着看。