完成第二章的内容

This commit is contained in:
2023-03-04 15:52:20 +08:00
parent f2a40a910e
commit 1fe20bde9f
11 changed files with 994 additions and 337 deletions
+55 -54
View File
@@ -2,7 +2,6 @@ Java基础(第二章)
## 1. 如何打印输出
**这一章中,我们使用面向过程(C语言的方式)来了解Java的基本语法。虽然说是和面向对象无关,但是我们需要一个函数入口(main)函数,这个函数上一章讲过,有固定的格式,且这个函数必须定义在一个Public类中。**
### 1.1. ComputeArea.java
@@ -11,21 +10,21 @@ Java基础(第二章)
ComputeArea.java
```java {.line-numbers}
```java
public class ComputeArea {
public static void main(String[] args) {
double radius = 0.0; // Declare radius
double area; // Declare area
public static void main(String[] args) {
double radius = 0.0; // Declare radius
double area; // Declare area
// Assign a radius
radius = 20.0; // New value is radius
// Assign a radius
radius = 20.0; // New value is radius
// Compute area
area = radius * radius * 3.14159;
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " + radius + " is " + area);
}
// Display results
System.out.println("The area for the circle of radius " + radius + " is " + area);
}
}
```
@@ -51,15 +50,15 @@ public class ComputeArea {
再总结一下我们学的的:
1. main函数的固定写法;
2. main函数必须在一给public类中定义;
3. 字符串的表示和连接;
4. 如何使用打印函数。
1. main函数的固定写法;
2. main函数必须在一给public类中定义;
3. 字符串的表示和连接;
4. 如何使用打印函数。
### 1.2. 问题
1. main函数前面的static是什么意思?
2. main函数的参数 String\[\] args 是什么意思?
1. main函数前面的static是什么意思?
2. main函数的参数 String\[\] args 是什么意思?
后面回讲到上述两个问题,你可以先研究一下。
@@ -71,18 +70,18 @@ C使用scanf函数配合一套字符串规则实现各种数据类型的输入
### 2.1. ComputeAreaWithConsoleInput.java
```java {.line-numbers}
```java
import java.util.Scanner; // Scanner is in the java.util package
public class ComputeAreaWithConsoleInput {
public static void main(String[] args) {
// Create a Scanner object
Scanner input = new Scanner(System.in);
// Prompt the user to enter a radius
System.out.print("Enter a number for radius: ");
double radius = input.nextDouble();
// Compute area
double area = radius * radius * 3.14159;
// Display result
@@ -91,6 +90,7 @@ public class ComputeAreaWithConsoleInput {
}
}
```
注意第一行的 import ..... 这个语句,这是把Scanner所在的包引入进来,相当于C的include语句。如果不写第一行,Eclipse会在地6行的 Scanner位置错误(红色下划线),这是只需要把鼠标移动到 Scanner 上面,会出现quike fix 的建议,如下图。这时只需要点击:Import 'Scanner' (java.util) 就可以了,Eclipse会自动加上import语句。
![](img/20230303153514.png)
@@ -113,14 +113,13 @@ public class ComputeAreaWithConsoleInput {
## 3. 标识符、变量、常量
### 3.1. 与C语言一致的
1. Identifiers:标识符
2. Variables:变量
3. Declaring Variables:变量声明
4. Assignment Statements:赋值语句
5. Declaring and Initializing in One Step:变量声明与赋值用一行语句
1. Identifiers:标识符
2. Variables:变量
3. Declaring Variables:变量声明
4. Assignment Statements:赋值语句
5. Declaring and Initializing in One Step:变量声明与赋值用一行语句
上面这些和C保持一致,我们只看看常量的声明。
@@ -132,7 +131,7 @@ final datatype CONSTANTNAME = VALUE;  
例如:
```java {.line-numbers}
```java
final int PI = 3.14;
final String ERROR="ERROR";
```
@@ -141,23 +140,23 @@ final String ERROR="ERROR";
其实只要是符合标识符的规则就是合法的变量名、常量名、函数名、类名;但是为了阅读方便,大家有个对命名大小写的共识,一般是这样:
1. 常量:全部大写;
2. 变量:首字母小写;
3. 类名(接口名):首字母大写,如果有多个单词,每个单词的首字母大写;
4. 函数名:首字母小写。
1. 常量:全部大写;
2. 变量:首字母小写;
3. 类名(接口名):首字母大写,如果有多个单词,每个单词的首字母大写;
4. 函数名:首字母小写。
## 4. 基本数据类型
### 4.1. 数值类型
| 类型 | 存储大小(bit) | 说明 |
|--------|-----------|----|
| byte | 8 | |
| short | 16 | |
| int | 32 | |
| long | 64 | |
| float | 32 | |
| double | 64 |
| 类型 | 存储大小(bit) | 说明 |
| ------ | --------- | --- |
| byte | 8 | |
| short | 16 | |
| int | 32 | |
| long | 64 | |
| float | 32 | |
| double | 64 | |
C语言中有uint、ulong等带u开头的整形类型,Java中有吗?
@@ -175,14 +174,15 @@ Scanner对象有相应读取这些数据类型的函数,请自己尝试一下
字面量的含义是语句中直接写入整形数值或者是浮点数值的时候,这个数值表达的数据类型或者是赋值规则。例如:
```java {.line-numbers}
byte a = 100;
byte b = 200;
int c = 300;
int d = 5000;
float e = 33.3;
double f = 33.3;
```java
byte a = 100;
byte b = 200;
int c = 300;
int d = 5000;
float e = 33.3;
double f = 33.3;
```
上述代码中,第二行代码是非法的;第五行代码也是非法的;为什么?
规则:
@@ -190,9 +190,10 @@ Scanner对象有相应读取这些数据类型的函数,请自己尝试一下
1. 对于整形赋值,只要字面量表达的数值不超过变量类型的取值范围就是合法的;
2. 对于带小数的字面量,缺省的类型是double,因此如果赋值给float的类型的变量会出错,正确的做法是在字面量后面加上F。
```java {.line-numbers}
```java
float e = 33.3F;
```
科学计数法:例如:1.23456e-2
### 4.4. 扩展赋值语法:Augmented Assignment Operators
@@ -215,9 +216,9 @@ float e = 33.3F;
## 5. 本章重点
1. 如何打印输出:有很多同名的打印函数(函数重载overload);printprintlnprintf函数;与C有什么区别;
2. 字符串与其他类型连接通过+号;
3. 如何读取键盘输入,以及赋值。注意不同的类型使用不同的函数;
4. 如何判断是否还有没有读取的数据(hasNext函数XXX);
5. 基本数据类型:全部都是小写,以后会学习对应大写的包装类型;都是有符号的;
6. 如何声明常量(final);7. 类型转换以及规则。
1. 如何打印输出:有很多同名的打印函数(函数重载overload);printprintlnprintf函数;与C有什么区别;
2. 字符串与其他类型连接通过+号;
3. 如何读取键盘输入,以及赋值。注意不同的类型使用不同的函数;
4. 如何判断是否还有没有读取的数据(hasNext函数XXX);
5. 基本数据类型:全部都是小写,以后会学习对应大写的包装类型;都是有符号的;
6. 如何声明常量(final);7. 类型转换以及规则。