增加行好

master
高宏宇 3 years ago
parent e0c6d0861c
commit e0c1ea4129

@ -12,7 +12,7 @@
如果从C语言出发需要建立一个结构体来描述圆。
```c
```c {.line-numbers}
struct Circle
{
float x; // X坐标
@ -23,14 +23,14 @@ struct Circle
上面只是定义了一个结构体抽象代表所有圆但是还不存在一个真正的圆的实例具体的对象因此需要定义一个变量其类型是Circle这个结构体。
```c
```c {.line-numbers}
struct Circle c1;
```
如果要改变c1这个圆结构变量的值我们有两种方法首先是直接赋值。
```c
```c {.line-numbers}
struct Circle c1;
c1.x = 0;
c1.y = 1;
@ -41,7 +41,7 @@ struct Circle c1;
另外还可以用函数的方式来改变结构体的值。
```c
```c {.line-numbers}
/**
* 给圆设定初始值
* @param c 圆结构的指针
@ -58,7 +58,7 @@ void setCircle(struct Circle *c, float x, float y, float r) {
另外我们一次性的打印整个圆的数据,这样我们最好需要一个函数。
```c
```c {.line-numbers}
/**
* 打印
* @param c
@ -70,7 +70,7 @@ void printCircle(struct Circle *c) {
把所有代码放在一起:
```c
```c {.line-numbers}
#include <stdio.h>
#include <malloc.h>
@ -125,7 +125,7 @@ int main() {
例如,人这个对象有固有的特性(性别、年龄、身高、体重。。。)这些和圆的坐标和半径对应,都表示一个对象的特性;但是人可以说话,可以运动(动作、行为,相当于函数);而结构体变量的圆不能自己动作,只能依靠外部的函数进行动作。如果圆可以自己动作,例如让圆这个对象自己打印输出,这样不就可以和生活中的对象联系起来了?
```c
```c {.line-numbers}
struct Circle
{
float x; // X坐标
@ -151,7 +151,7 @@ c1.print(); // C语言无法做到
接下来我们使用java来实现上述的功能这里主要是要把相关的函数作为结构体的一个部分。
```c
```c {.line-numbers}
/**
* 定义Circle类
*
@ -211,7 +211,7 @@ public class Circle_Test {
命令行中执行:
```bash
```bash {.line-numbers}
javac Circle_Test.java
```
@ -223,13 +223,13 @@ javac Circle_Test.java
接下来使用命令行
```bash
```bash {.line-numbers}
java Circle_Test
```
运行刚刚编译后的代码,得到结果
```bash
```bash {.line-numbers}
The position x=0, y=1, radius=11.200000!
The position x=1, y=1, radius=3.300000!
```
@ -352,7 +352,7 @@ Eclipse 是一个开放的框架基于Eclipse框架的有很多不同语言
完成后,会打开一个新的类:
```java
```java {.line-numbers}
package first;
public class Hello {
@ -367,7 +367,7 @@ public class Hello {
接下来我们修改这个类框架主要是修改main函数部分结果如下
```java
```java {.line-numbers}
package first;
public class Hello {
@ -429,7 +429,7 @@ Hello.java 这个文件的确在src文件夹中。
我们再来回顾以下上面最简单的Hello world
```java
```java {.line-numbers}
package first;
public class Hello {
@ -468,7 +468,7 @@ public class Hello {
语法错误,编译的时候发现,例如:
```java
```java {.line-numbers}
public class ShowSyntaxErrors {
public static main(String[] args) {
System.out.println("Welcome to Java);
@ -480,7 +480,7 @@ public class ShowSyntaxErrors {
运行时错误运行时产生的错误例如空对象操作、0作为除数、文件不存在等。运行时错误是我们需要特别关注的因为会导致程序的流程异常产生意想不到的结果。例如下面这个例子
```java
```java {.line-numbers}
public class ShowRuntimeErrors {
public static void main(String[] args) {
System.out.println(1 / 0);
@ -494,7 +494,7 @@ public class ShowRuntimeErrors {
逻辑错误,简单说来就是语法没错、也没有运行时错误(异常),但是结果错误了。通常是编程者的算法错了,例如:
```java
```java {.line-numbers}
public class ShowLogicErrors {
public static void main(String[] args) {
System.out.println("Celsius 35 is Fahrenheit degree ");
@ -513,7 +513,7 @@ public class ShowLogicErrors {
代码如下:
```java
```java {.line-numbers}
public class Debug {
public static void main(String[] args) {
@ -528,7 +528,7 @@ public class Debug {
输出结果是:
```
``` {.line-numbers}
0,
0,1,
0,1,2,

@ -71,7 +71,7 @@ C使用scanf函数配合一套字符串规则实现各种数据类型的输入
### 2.1. ComputeAreaWithConsoleInput.java
```java
```java {.line-numbers}
import java.util.Scanner; // Scanner is in the java.util package
public class ComputeAreaWithConsoleInput {
@ -132,7 +132,7 @@ final datatype CONSTANTNAME = VALUE;  
例如:
```java
```java {.line-numbers}
final int PI = 3.14;
final String ERROR="ERROR";
```
@ -175,7 +175,7 @@ Scanner对象有相应读取这些数据类型的函数请自己尝试一下
字面量的含义是语句中直接写入整形数值或者是浮点数值的时候,这个数值表达的数据类型或者是赋值规则。例如:
```java
```java {.line-numbers}
byte a = 100;
byte b = 200;
int c = 300;
@ -190,7 +190,7 @@ Scanner对象有相应读取这些数据类型的函数请自己尝试一下
1. 对于整形赋值,只要字面量表达的数值不超过变量类型的取值范围就是合法的;
2. 对于带小数的字面量缺省的类型是double因此如果赋值给float的类型的变量会出错正确的做法是在字面量后面加上F。
```java
```java {.line-numbers}
float e = 33.3F;
```
科学计数法例如1.23456e-2

@ -40,7 +40,7 @@ Java的布尔类型和C保持一致基本的运算符也和C保持一致。
这个方式在书上没有讲,在考试中可能会遇到这种情况。
```java
```java {.line-numbers}
import java.util.Scanner;
/**

@ -27,7 +27,7 @@
实例:
```java
```java {.line-numbers}
Math.ceil(2.1) returns 3.0
Math.ceil(2.0) returns 2.0
Math.ceil(-2.0) returns 2.0
@ -57,7 +57,7 @@ Math.round(-2.6) returns -3
实例:
```java
```java {.line-numbers}
Math.max(2, 3) returns 3
Math.max(2.5, 3) returns 3.0
Math.min(2.5, 3.6) returns 2.5
@ -78,14 +78,14 @@ char类型是有序的类似整形整形可以使用的运算符都可
### 2.1. char和整形的转换
```java
```java {.line-numbers}
int i = 'a'; // Same as int i = (int)'a';
char c = 97; // Same as char c = (char)97;
```
### 2.2. char的比较
```java
```java {.line-numbers}
if (ch >= 'A' && ch <= 'Z')
System.out.println(ch + " is an uppercase letter");
else if (ch >= 'a' && ch <= 'z')
@ -104,7 +104,7 @@ char c = 97; // Same as char c = (char)97;
字符串与C完全不一样Java中的字符串的类型是 String 。注意以前在Java中出现的类型都是小写开头的这是第一个大写开头的因此这个是一个类的类型而不是普通类型。前面讲到过类是抽象描述类似结构体指针如果来实例化成为可操作的对象需要使用new 操作生成一个对象。这里我们看看字符串是如何生成的。
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
String s1 = new String("Hello");
@ -114,7 +114,7 @@ public class Main {
```
第三行代码是生成一个字符串对象第四行是打印这个字符串。等等这里和Hello world程序好像有所不同对的标准的对象生成应该是按照第三行的方式生成不过因为String在程序中使用得太频繁了因此如果写入字符串的字面量编译器会自动构造一个对象下面的代码也是正确的
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
String s1 = "Hello";
@ -124,7 +124,7 @@ public class Main {
```
或者直接使用字面量作为参数:
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
@ -141,7 +141,7 @@ public class Main {
上述这些函数是在数据库对象上面进行调用的,例如:
```java
```java {.line-numbers}
String sA = "Hello world!";
int len = sA.length();
char c = sA.charAt(1);
@ -154,7 +154,7 @@ public class Main {
字符串连接可以使用算术运算符(+),也可以使用对象函数:
```java
```java {.line-numbers}
String sA = "Hello";
String sB = "World";
System.out.println(sA.concat(" ").concat(sB).concat("!"));
@ -164,7 +164,7 @@ public class Main {
另外,字符串可以和数值类型的变量或者是字面量进行连接:
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
String sA = "Hello";
@ -178,7 +178,7 @@ public class Main {
前面学习了如何从控制台读取数值类型的值,这里我们看看如何读取字符串/字符。
```java
```java {.line-numbers}
import java.util.Scanner;
public class Main {
@ -225,7 +225,7 @@ next() 是以空格区分字符串的,如果我们需要读取一段字符串
这时我们需要使用到相应数值类型的类类型(包装类型),而不是简单的类型了。关于包装类型我们后面会讲到,这里先了解一下。
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
int a = Integer.parseInt("1");
@ -245,14 +245,14 @@ public class Main {
有很多方式,最简单的是加上一个空字符串(没有内容的字符串),例如:
```java
```java {.line-numbers}
String sA = 100 + "";
```
#### 3.2.8. 格式化字符串
格式化字符串如同C语言的printf方法甚至连占位符和格式方法都一模一样。如果要输出一个字符串可以使用 System.out.printf 方法。
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
System.out.printf("Hello, my name is %s, and %d years old.\n", "Danny", 20);
@ -261,7 +261,7 @@ public class Main {
```
当然,如果不想输出字符串,而需要对中间的结果进行格式化应该如何?
```java
```java {.line-numbers}
public class Main {
public static void main(String[] args) {
String a = String.format("Hello, my name is %s, and %d years old.\n", "Danny", 20);

Loading…
Cancel
Save