From 5dc62701470f1423c6f038ad16beaf59445b7185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E5=BB=BA=E7=A8=8B?= <1063126776@qq.com> Date: Fri, 23 Dec 2022 12:45:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...24\347\244\272\347\250\213\345\272\217.md" | 159 ++ ...16\350\277\220\347\256\227\347\254\246.md" | 1974 +---------------- ...\270\216switch\350\257\255\345\217\245.md" | 489 ++++ ...04for.shile.do\345\276\252\347\216\257.md" | 423 ++++ ...67\345\217\212\346\225\260\347\273\204.md" | 499 +++++ ...25\345\217\212\344\275\234\344\270\232.md" | 398 ++++ ...02\346\225\260\344\274\240\351\200\222.md" | 268 +++ ...63\350\277\207\345\276\252\347\216\257.md" | 40 + ...35\350\267\257\350\277\207\347\250\213.md" | 660 ++++++ .../14.7.1.png" | Bin 0 -> 123023 bytes .../14.7.2.png" | Bin 0 -> 141953 bytes 11 files changed, 2943 insertions(+), 1967 deletions(-) create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221124 Java\346\246\202\350\277\260\344\270\216\347\254\254\344\270\200\344\270\252\346\274\224\347\244\272\347\250\213\345\272\217.md" rename "07 \345\206\257\345\273\272\347\250\213/\346\210\221\347\232\204Java\347\254\224\350\256\260.md" => "07 \345\206\257\345\273\272\347\250\213/20221125 Java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\350\277\220\347\256\227\347\254\246.md" (31%) create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221202 Java\347\232\204\346\225\260\346\215\256\350\276\223\345\205\245\344\270\216switch\350\257\255\345\217\245.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221206 Java\347\232\204for.shile.do\345\276\252\347\216\257.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221209 Java\347\232\204Random\351\232\217\346\234\272\346\225\260\344\270\216IDEA\345\274\200\345\217\221\345\267\245\345\205\267\345\217\212\346\225\260\347\273\204.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221215 Java\347\232\204\346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221216 Java\347\232\204\346\226\271\346\263\225\351\207\215\350\275\275\345\217\212\345\217\202\346\225\260\344\274\240\351\200\222.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221220 Java\347\232\204\350\267\263\350\277\207\345\276\252\347\216\257.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221222 \345\255\246\347\224\237\347\256\241\347\220\206\347\263\273\347\273\237\344\275\234\344\270\232\345\256\214\346\225\264\344\273\243\347\240\201\345\217\212\346\200\235\350\267\257\350\277\207\347\250\213.md" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.1.png" create mode 100644 "07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.2.png" diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221124 Java\346\246\202\350\277\260\344\270\216\347\254\254\344\270\200\344\270\252\346\274\224\347\244\272\347\250\213\345\272\217.md" "b/07 \345\206\257\345\273\272\347\250\213/20221124 Java\346\246\202\350\277\260\344\270\216\347\254\254\344\270\200\344\270\252\346\274\224\347\244\272\347\250\213\345\272\217.md" new file mode 100644 index 0000000..480bcf4 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221124 Java\346\246\202\350\277\260\344\270\216\347\254\254\344\270\200\344\270\252\346\274\224\347\244\272\347\250\213\345\272\217.md" @@ -0,0 +1,159 @@ +--- +typora-root-url: Java笔记图片补充 +--- + +# 1. Java概述 + +## 1.1 Java语言发展史 + +语言:人与人交流沟通的表达方式 + +计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 + +Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言 + +Java之父:詹姆斯·高斯林(James Gosling) + +2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/1.1.png) + +## 1.2 Java语言跨平台原理 + +Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。 + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/1.2.png) + +## 1.3 JRE和JDK + +JVM(Java Virtual Machine),Java虚拟机 + +JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API) JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具 + +总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。 + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/1.3.png) + +## 1.4 JDK的下载和安装 + +### 1.4.1 下载 + +通过官方网站获取JDK + +[http://www.oracle.com](http://www.oracle.com/) + +**注意**:针对不同的操作系统,需要下载对应版本的JDK。 + +### 1.4.2 安装 + +傻瓜式安装,下一步即可。但默认的安装路径是在C:\Program Files下,为方便统一管理建议修改安装路径,将与开发相关的软件都安装到一个目录下,例如:E:\develop。 + +**注意**:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。 + +### 1.4.3 JDK的安装目录介绍 + +| 目录名称 | 说明 | +| :------: | :----------------------------------------------------------: | +| bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 | +| conf | 该路径下存放了JDK的相关配置文件。 | +| include | 该路径下存放了一些平台特定的头文件。 | +| jmods | 该路径下存放了JDK的各种模块。 | +| legal | 该路径下存放了JDK各模块的授权文档。 | +| lib | 该路径下存放了JDK工具的一些补充JAR包。 | + +# 2. 第一个演示程序 + +## 2.1 常用DOS命令 + +在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令。 + +1、打开命令行窗口的方式:win + r打开运行窗口,输入cmd,回车。 + +2、常用命令及其作用 + +| 操作 | 说明 | +| :-------------: | :-------------------------------: | +| 盘符名称: | 盘符切换。E:回车,表示切换到E盘。 | +| dir | 查看当前路径下的内容。 | +| cd 目录 | 进入单级目录。cd itterence | +| cd . | 回退到上一级目录。 | +| cd 目录1\目录2… | 进入多级目录。cd itterence\JavaSE | +| cd \ | 回退到盘符目录。 | +| cls | 清屏。 | +| exit | 退出命令提示符窗口。 | + +## 2.2 Path环境变量的配置 + +### 2.2.1 为什么配置环境变量 + +开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。 + +### 2.2.2 配置环境变量步骤 + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/2.2.2.png) + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/2.2.2-2.png) + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/2.2.2-3.png) + +**如果命令提示符窗口是配合环境变量前打开的,需要关闭该窗口,重新打开一个窗口测试** + +## 2.3 HelloWorld案例 + +HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。各种计算机语言都习惯使用该案例作为第一个演示案例。 + +### 2.3.1 Java程序开发运行流程 + +开发Java程序,需要三个步骤:编写程序,编译程序,运行程序。 + +### 2.3.2 HelloWorld案例的编写 + +1、新建文本文档文件,修改名称为HelloWorld.java。 + +2、用记事本打开HelloWorld.java文件,输写程序内容。 + +```java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("HelloWorld"); + } +} +``` + +### 2.3.3 HelloWorld案例的编译和运行 + +存文件,打开命令行窗口,将目录切换至java文件所在目录,编译java文件生成class文件,运行class文件。 + +> 编译:javac 文件名.java +> +> 范例:javac HelloWorld.java +> +> 执行:java 类名 +> +> 范例:java HelloWorld + +## 2.4 HelloWorld案例常见问题(理解) + +### 2.4.1 BUG + +在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。 + +### 2.4.2 BUG的解决 + +1、具备识别BUG的能力:多看 + +2、具备分析BUG的能力:多思考,多查资料 + +3、具备解决BUG的能力:多尝试,多总结 + +### 2.4.3 HelloWorld案例常见问题 + +1、非法字符问题。Java中的符号都是英文格式的。 + +2、大小写问题。Java语言对大小写敏感(区分大小写)。 + +3、在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件。 + +4、编译命令后的java文件名需要带文件后缀.java + +5、运行命令后的class文件名(类名)不带文件后缀.class … \ No newline at end of file diff --git "a/07 \345\206\257\345\273\272\347\250\213/\346\210\221\347\232\204Java\347\254\224\350\256\260.md" "b/07 \345\206\257\345\273\272\347\250\213/20221125 Java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\350\277\220\347\256\227\347\254\246.md" similarity index 31% rename from "07 \345\206\257\345\273\272\347\250\213/\346\210\221\347\232\204Java\347\254\224\350\256\260.md" rename to "07 \345\206\257\345\273\272\347\250\213/20221125 Java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\350\277\220\347\256\227\347\254\246.md" index 4130fab..5329f89 100644 --- "a/07 \345\206\257\345\273\272\347\250\213/\346\210\221\347\232\204Java\347\254\224\350\256\260.md" +++ "b/07 \345\206\257\345\273\272\347\250\213/20221125 Java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\225\344\270\216\350\277\220\347\256\227\347\254\246.md" @@ -1,163 +1,7 @@ --- -typora-root-url: Java笔记图片补充 +typora-root-url: D:\java仓库\java-base\07 冯建程\Java笔记图片补充 --- -# 1. Java概述 - -## 1.1 Java语言发展史 - -语言:人与人交流沟通的表达方式 - -计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 - -Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言 - -Java之父:詹姆斯·高斯林(James Gosling) - -2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com - -![](/1.1.png) - -## 1.2 Java语言跨平台原理 - -Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。 - -![](/1.2.png) - -## 1.3 JRE和JDK - -JVM(Java Virtual Machine),Java虚拟机 - -JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API) JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具 - -总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。 - -![](/1.3.png) - -## 1.4 JDK的下载和安装 - -### 1.4.1 下载 - -通过官方网站获取JDK - -[http://www.oracle.com](http://www.oracle.com/) - -**注意**:针对不同的操作系统,需要下载对应版本的JDK。 - -### 1.4.2 安装 - -傻瓜式安装,下一步即可。但默认的安装路径是在C:\Program Files下,为方便统一管理建议修改安装路径,将与开发相关的软件都安装到一个目录下,例如:E:\develop。 - -**注意**:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。 - -### 1.4.3 JDK的安装目录介绍 - -| 目录名称 | 说明 | -| :------: | :----------------------------------------------------------: | -| bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 | -| conf | 该路径下存放了JDK的相关配置文件。 | -| include | 该路径下存放了一些平台特定的头文件。 | -| jmods | 该路径下存放了JDK的各种模块。 | -| legal | 该路径下存放了JDK各模块的授权文档。 | -| lib | 该路径下存放了JDK工具的一些补充JAR包。 | - -# 2. 第一个演示程序 - -## 2.1 常用DOS命令 - -在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令。 - -1、打开命令行窗口的方式:win + r打开运行窗口,输入cmd,回车。 - -2、常用命令及其作用 - -| 操作 | 说明 | -| :-------------: | :-------------------------------: | -| 盘符名称: | 盘符切换。E:回车,表示切换到E盘。 | -| dir | 查看当前路径下的内容。 | -| cd 目录 | 进入单级目录。cd itterence | -| cd . | 回退到上一级目录。 | -| cd 目录1\目录2… | 进入多级目录。cd itterence\JavaSE | -| cd \ | 回退到盘符目录。 | -| cls | 清屏。 | -| exit | 退出命令提示符窗口。 | - -## 2.2 Path环境变量的配置 - -### 2.2.1 为什么配置环境变量 - -开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。 - -### 2.2.2 配置环境变量步骤 - -![](/2.2.2.png) - -![](/2.2.2-2.png) - -![](/2.2.2-3.png) - -**如果命令提示符窗口是配合环境变量前打开的,需要关闭该窗口,重新打开一个窗口测试** - -## 2.3 HelloWorld案例 - -HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。各种计算机语言都习惯使用该案例作为第一个演示案例。 - -### 2.3.1 Java程序开发运行流程 - -开发Java程序,需要三个步骤:编写程序,编译程序,运行程序。 - -### 2.3.2 HelloWorld案例的编写 - -1、新建文本文档文件,修改名称为HelloWorld.java。 - -2、用记事本打开HelloWorld.java文件,输写程序内容。 - -```java -public class HelloWorld { - public static void main(String[] args) { - System.out.println("HelloWorld"); - } -} -``` - -### 2.3.3 HelloWorld案例的编译和运行 - -存文件,打开命令行窗口,将目录切换至java文件所在目录,编译java文件生成class文件,运行class文件。 - -> 编译:javac 文件名.java -> -> 范例:javac HelloWorld.java -> -> 执行:java 类名 -> -> 范例:java HelloWorld - -## 2.4 HelloWorld案例常见问题(理解) - -### 2.4.1 BUG - -在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。 - -### 2.4.2 BUG的解决 - -1、具备识别BUG的能力:多看 - -2、具备分析BUG的能力:多思考,多查资料 - -3、具备解决BUG的能力:多尝试,多总结 - -### 2.4.3 HelloWorld案例常见问题 - -1、非法字符问题。Java中的符号都是英文格式的。 - -2、大小写问题。Java语言对大小写敏感(区分大小写)。 - -3、在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件。 - -4、编译命令后的java文件名需要带文件后缀.java - -5、运行命令后的class文件名(类名)不带文件后缀.class … - # 3. java基础语法 ## 3.1 注释 @@ -267,11 +111,11 @@ Java中的基本数据类型: 从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。 -![3.5.1变量的定义](/3.5.1变量的定义.png) +![3.5.1变量的定义](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/3.5.1变量的定义.png) 变量的定义格式: -![3.5.1变量的定义格式](/3.5.1变量的定义格式.png) +![3.5.1变量的定义格式](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/3.5.1变量的定义格式.png) > 数据类型 变量名 = 初始化值; // 声明变量并赋值 > int age = 18; @@ -287,7 +131,7 @@ Java中的基本数据类型: 还可以在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。但不建议使用这种方式,降低程序的可读性。 -```java +```Java int a = 10, b = 20; // 定义int类型的变量a和b,中间使用逗号隔开 System.out.println(a); System.out.println(b); @@ -342,7 +186,7 @@ Java中标识符的命名约定: 例如: -```java +```Java double num = 10; // 将int类型的10直接赋值给double类型 System.out.println(num); // 输出10.0 ``` @@ -355,7 +199,7 @@ Java中标识符的命名约定: 例如: -```java +```Java double num1 = 5.5; int num2 = (int) num1; // 将double类型的num1强制转换为int类型 System.out.println(num2); // 输出5(小数位直接舍弃) @@ -368,7 +212,7 @@ System.out.println(num2); // 输出5(小数位直接舍弃) 1. char类型的数据转换为int类型是按照码表中对应的int值进行计算的。比如在ASCII码表中,'a’对应97 ```java - int a = 'a'; +int a = 'a'; System.out.println(a); // 将输出97 ``` @@ -624,7 +468,6 @@ System.out.println((i > j) | (i< k)); //false | true,输出true System.out.println((i < j) | (i< k)); //true | true,输出true System.out.println("--------"); - //^ “异或”,相同为false,不同为true System.out.println((i > j) ^ (i > k)); //false ^ false,输出false System.out.println((i < j) ^ (i > k)); //true ^ false,输出true @@ -720,1806 +563,3 @@ public class OperatorTest02 { } ``` -# 5. 数据输入 - -我们可以通过 Scanner 类来获取用户的输入。使用步骤如下: - -1、导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。 - -> import java.util.Scanner; - -2、创建Scanner对象。 - -> Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变 - -3、接收数据 - -> int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。 - -示例: - -```java -import java.util.Scanner; - -public class ScannerDemo { - public static void main(String[] args) { //创建对象 - Scanner sc = new Scanner(System.in); //接收数据 - int x = sc.nextInt(); - //输出数据 - System.out.println("x:" + x); - } -} -``` - -改写三个和尚案例,数据使用键盘录入。 - -```java -import java.util.Scanner; - -public class ScannerTest { - public static void main(String[] args) { - //身高未知,采用键盘录入实现。首先导包,然后创建对象。 - Scanner sc = new Scanner(System.in); - - //键盘录入三个身高分别赋值给三个变量。 - System.out.println("请输入第一个和尚的身高:"); - int height1 = sc.nextInt(); - - System.out.println("请输入第二个和尚的身高:"); - int height2 = sc.nextInt(); - - System.out.println("请输入第三个和尚的身高:"); - int height3 = sc.nextInt(); - - //用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。 - int tempHeight = height1 > height2 ? height1 : height2; - - //用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。 - int maxHeight = tempHeight > height3 ? tempHeight : height3; - - //输出结果。 - System.out.println("这三个和尚中身高最高的是:" + maxHeight +"cm"); - } -} -``` - -# 6. 流程控制语句 - -在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。 - -## 6.1 流程控制语句分类 - -顺序结构 - -分支结构(if, switch) - -循环结构(for, while, do…while) - -## 6.2 顺序结构 - -顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 - -顺序结构执行流程图: - -![6.2](/6.2.png) - -## 6.3 分支结构之if语句 - -### 6.3.1 if语句格式1 - -> 格式: -> -> if (关系表达式) { -> -> 语句体; -> -> } - -执行流程: - -1首先计算关系表达式的值 - -2如果关系表达式的值为true就执行语句体 - -3如果关系表达式的值为false就不执行语句体 - -4继续执行后面的语句内容 - -![6.3.1 if 语句格式1](/6.3.1 if 语句格式1.png) - -示例: - -```java -public class IfDemo { - public static void main(String[] args) { - System.out.println("开始"); - - //定义两个变量 - int a = 10; - int b = 20; - - //需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b - if(a == b) { - System.out.println("a等于b"); - } - - //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c - int c = 10; - if(a == c) { - System.out.println("a等于c"); - } - - System.out.println("结束"); - } -} -``` - -### 6.3.2 if语句格式2 - -> 格式: -> -> if (关系表达式) { -> -> 语句体1; -> -> } else { -> -> 语句体2; -> -> } - -执行流程: - -1. 首先计算关系表达式的值 - -2. 如果关系表达式的值为true就执行语句体1 - -3. 如果关系表达式的值为false就执行语句体2 - -4. 继续执行后面的语句内容 - -![6.3.2 if 语句格式2](/6.3.2 if 语句格式2.png) - -示例: - -```java -public class IfDemo02 { - public static void main(String[] args) { - System.out.println("开始"); - - //定义两个变量 - int a = 10; - int b = 20; - b = 5; - - //需求:判断a是否大于b,如果是,在控制台输出:a的值大于b, - //如果不是,在控制台输出:a的值不大于b - if(a > b) { - System.out.println("a的值大于b"); - } else { - System.out.println("a的值不大于b"); - } - - System.out.println("结束"); - } -} -``` - -if语句案例:奇偶数 - -需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。 - -分析: - -为了体现任意给出一个整数,采用键盘录入一个数据 - -判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构 - -判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0 - -根据判定情况,在控制台输出对应的内容 - -```java - -import java.util.Scanner; - -public class IfTest01 { - public static void main(String[] args) { - //为了体现任意给出一个整数,采用键盘录入一个数据。(导包,创建对象,接收数据) - Scanner sc = new Scanner(System.in); - - System.out.println("请输入一个整数:"); - int number = sc.nextInt(); - - //判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构 - //判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0 - //根据判定情况,在控制台输出对应的内容 - if(number%2 == 0) { - System.out.println(number + "是偶数"); - } else { - System.out.println(number + "是奇数"); - } - - } -} -``` - -### 6.3.3 if语句格式3 - -> 格式: -> -> if (关系表达式1) { -> -> 语句体1; -> -> } else if (关系表达式2) { -> -> 语句体2; -> -> } -> -> … -> -> else { -> -> 语句体n+1; -> -> } - -执行流程: - -1. 首先计算关系表达式1的值 - -2. 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值 - -3. 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值 - -4. … - -5. 如果没有任何关系表达式为true,就执行语句体n+1。 - -![6.3.3 if 语句格式3](/6.3.3 if 语句格式3.png) - -示例: - -键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日 - -```java -import java.util.Scanner; - -public class IfDemo03 { - public static void main(String[] args) { - System.out.println("开始"); - - //需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日 - Scanner sc = new Scanner(System.in); - - System.out.println("请输入一个星期数(1-7):"); - int week = sc.nextInt(); - - if(week == 1) { - System.out.println("星期一"); - } else if(week == 2) { - System.out.println("星期二"); - } else if(week == 3) { - System.out.println("星期三"); - } else if(week == 4) { - System.out.println("星期四"); - } else if(week == 5) { - System.out.println("星期五"); - } else if(week == 6) { - System.out.println("星期六"); - } else { - System.out.println("星期日"); - } - - System.out.println("结束"); - } -} -``` - -if语句格式3案例: - -需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。 - -分析: - -小明的考试成绩未知,可以使用键盘录入的方式获取值 - -由于奖励种类较多,属于多种判断,采用if…else…if格式实现 - -为每种判断设置对应的条件 - -为每种判断设置对应的奖励 - -```java -import java.util.Scanner; - -public class IfTest02 { - public static void main(String[] args) { - //小明的考试成绩未知,可以使用键盘录入的方式获取值 - Scanner sc = new Scanner(System.in); - - System.out.println("请输入一个分数:"); - int score = sc.nextInt(); - - //由于奖励种类较多,属于多种判断,采用if...else...if格式实现 - //为每种判断设置对应的条件 - //为每种判断设置对应的奖励 - - //数据测试:正确数据,边界数据,错误数据 - if(score>100 || score<0) { - System.out.println("你输入的分数有误"); - } else if(score>=95 && score<=100) { - System.out.println("山地自行车一辆"); - } else if(score>=90 && score<=94) { - System.out.println("游乐场玩一次"); - } else if(score>=80 && score<=89) { - System.out.println("变形金刚玩具一个"); - } else { - System.out.println("胖揍一顿"); - } - } -} -``` - -# 7. switch语句 - -## 7.1 switch语句结构 - -格式 - -```java -switch (表达式) { - case 1: - 语句体1; - break; - case 2: - 语句体2; - break; - ... - default: - 语句体n+1; - break; -} -``` - -格式说明: - -- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。 - -- case:后面跟的是要和表达式进行比较的值。 - -- break:表示中断,结束的意思,用来结束switch语句。 - -- default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。 - -执行流程: - -- 首先计算出表达式的值 - -- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。 - -- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 - -![7.1](/7.1.png) - -## 7.2 switch语句练习-春夏秋冬(应用) - -- 需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。 - -- 运行结果: - -```java -春:3、4、5 -夏:6、7、8 -秋:9、10、11 -冬:1、2、12 -``` - -- 示例代码: - -```java -import java.util.Scanner; - -public class SwitchTest { - public static void main(String[] args) { - //键盘录入月份数据,使用变量接收 - Scanner sc = new Scanner(System.in); - - System.out.println("请输入一个月份:"); - int month = sc.nextInt(); - - //多情况判断,这里采用switch语句实现 - //在每种情况中,完成输出对应的季节 - /* - switch(month) { - case 1: - System.out.println("冬季"); - break; - case 2: - System.out.println("冬季"); - //break; - case 3: - System.out.println("春季"); - break; - case 4: - System.out.println("春季"); - break; - case 5: - System.out.println("春季"); - break; - case 6: - System.out.println("夏季"); - break; - case 7: - System.out.println("夏季"); - break; - case 8: - System.out.println("夏季"); - break; - case 9: - System.out.println("秋季"); - break; - case 10: - System.out.println("秋季"); - break; - case 11: - System.out.println("秋季"); - break; - case 12: - System.out.println("冬季"); - break; - default: - System.out.println("你输入的月份有误"); - //break; - } - */ - - //case穿透 - switch(month) { - case 1: - case 2: - case 12: - System.out.println("冬季"); - break; - case 3: - case 4: - case 5: - System.out.println("春季"); - break; - case 6: - case 7: - case 8: - System.out.println("夏季"); - break; - case 9: - case 10: - case 11: - System.out.println("秋季"); - break; - default: - System.out.println("你输入的月份有误"); - } - } -} -``` - -- 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。 - -# 8. for循环 - -## 8.1 for循环结构(掌握) - -- 循环: - - 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。 - -- for循环格式: - -```java -for (初始化语句;条件判断语句;条件控制语句) { - 循环体语句; -} -``` - -格式解释: - -- 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 - -- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 - -- 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 - -- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 - -执行流程: - -①执行初始化语句 - -②执行条件判断语句,看其结果是true还是false - -如果是false,循环结束 - -如果是true,继续执行 - -③执行循环体语句 - -④执行条件控制语句 - -⑤回到②继续 - -```java -public class ForDemo { - public static void main(String[] args) { - //需求:在控制台输出5次"HelloWorld" - System.out.println("HelloWorld"); - System.out.println("HelloWorld"); - System.out.println("HelloWorld"); - System.out.println("HelloWorld"); - System.out.println("HelloWorld"); - System.out.println("--------"); - - //用循环改进 - for(int i=1; i<=5; i++) { - System.out.println("HelloWorld"); - } - - } -} -``` - -## 8.2 for循环练习-输出数据(应用) - -- 需求:在控制台输出1-5和5-1的数据 - -- 示例代码: - -```java -public class ForTest01 { - public static void main(String[] args) { - //需求:输出数据1-5 - for(int i=1; i<=5; i++) { - System.out.println(i); - } - System.out.println("--------"); - - //需求:输出数据5-1 - for(int i=5; i>=1; i--) { - System.out.println(i); - } - - } -} -``` - -## 8.3 for循环练习-求和 - -- 需求:求1-5之间的数据和,并把求和结果在控制台输出 - -- 示例代码: - -```java -public class ForTest02 { - public static void main(String[] args) { - //求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 - int sum = 0; - - //从1开始到5结束的数据,使用循环结构完成 - for(int i=1; i<=5; i++) { - //将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中 - sum += i; - /* - sum += i; sum = sum + i; - 第一次:sum = sum + i = 0 + 1 = 1; - 第二次:sum = sum + i = 1 + 2 = 3; - 第三次:sum = sum + i = 3 + 3 = 6; - 第四次:sum = sum + i = 6 + 4 = 10; - 第五次:sum = sum + i = 10 + 5 = 15; - */ - } - - //当循环执行完毕时,将最终数据打印出来 - System.out.println("1-5之间的数据和是:" + sum); - } -} -``` - -- 本题要点: -- 今后遇到的需求中,如果带有求和二字,请立即联想到求和变量 - -- 求和变量的定义位置,必须在循环外部,如果在循环内部则计算出的数据将是错误的 - -## 8.4 for循环练习-求偶数和 - -- 需求:求1-100之间的偶数和,并把求和结果在控制台输出 } - -- 示例代码: - -```java -public class ForTest03 { - public static void main(String[] args) { - //求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 - int sum = 0; - - //对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同 - for(int i=1; i<=100; i++) { - //对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数 - if(i%2 == 0) { - sum += i; - } - } - - //当循环执行完毕时,将最终数据打印出来 - System.out.println("1-100之间的偶数和是:" + sum); - } -} -``` - -## 8.5 for循环练习-水仙花 - -- 需求:在控制台输出所有的“水仙花数” - -- 解释:什么是水仙花数? - -水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数 - -例如153 3*3*3 + 5*5*5 + 1*1*1 = 153 - -- 思路: - -1. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取 - -2. 获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数 - -- 示例代码 - -```java -public class ForTest04 { - public static void main(String[] args) { - //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束 - /* - for(int i=100; i<=999; i++) { - - } - */ - for(int i=100; i<1000; i++) { - //在计算之前获取三位数中每个位上的值 - int ge = i%10; - int shi = i/10%10; - int bai = i/10/10%10; - - //判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等 - if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { - //输出满足条件的数字就是水仙花数 - System.out.println(i); - } - } - } -} -``` - -## 8.6 for循环练习-统计水仙花数个数 - -- 需求:统计“水仙花数”一共有多少个,并在控制台输出个数 - -- 示例代码: - -```java -public class ForTest05 { - public static void main(String[] args) { - //定义变量count,用于保存“水仙花数”的数量,初始值为0 - int count = 0; - - //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束 - for(int i=100; i<1000; i++) { - //在计算之前获取三位数中每个位上的值 - int ge = i%10; - int shi = i/10%10; - int bai = i/10/10%10; - - //在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1 - if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { - count++; - } - } - - //打印输出最终结果 - System.out.println("水仙花共有:" + count + "个"); - } -} -``` - -- 本题要点: -- 今后如果需求带有统计xxx,请先想到计数器变量 - -- 计数器变量定义的位置,必须在循环外部 - -# 9. while循环 - -## 9.1 while结构 - -- while循环完整格式: - -```java -初始化语句; -while (条件判断语句) { - 循环体语句; - 条件控制语句; -} -``` - -- while循环执行流程: - - ①执行初始化语句 - - ②执行条件判断语句,看其结果是true还是false - - 如果是false,循环结束 - - 如果是true,继续执行 - - ③执行循环体语句 - - ④执行条件控制语句 - - ⑤回到②继续 - -- 示例代码: - -```java -public class WhileDemo { - public static void main(String[] args) { - //需求:在控制台输出5次"HelloWorld" - //for循环实现 - for(int i=1; i<=5; i++) { - System.out.println("HelloWorld"); - } - System.out.println("--------"); - - //while循环实现 - int j = 1; - while(j<=5) { - System.out.println("HelloWorld"); - j++; - } - - } -} -``` - -## 9.2 while循环练习-珠穆朗玛峰 - -- 需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度? - -- 示例代码: - -```java -public class WhileTest { - public static void main(String[] args) { - //定义一个计数器,初始值为0 - int count = 0; - - //定义纸张厚度 - double paper = 0.1; - - //定义珠穆朗玛峰的高度 - int zf = 8844430; - - //因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环 - //折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度 - while(paper <= zf) { - //循环的执行过程中每次纸张折叠,纸张的厚度要加倍 - paper *= 2; - - //在循环中执行累加,对应折叠了多少次 - count++; - } - - //打印计数器的值 - System.out.println("需要折叠:" + count + "次"); - } -} -``` - -# 10. 循环细节 - -## 10.1 do…while循环结构 - -- 完整格式: - -```java -初始化语句; -do { - 循环体语句; - 条件控制语句; -}while(条件判断语句); -``` - -- 执行流程: - - ① 执行初始化语句 - - ② 执行循环体语句 - - ③ 执行条件控制语句 - - ④ 执行条件判断语句,看其结果是true还是false - - 如果是false,循环结束 - - 如果是true,继续执行 - - ⑤ 回到②继续 - -- 示例代码: - -```java -public class DoWhileDemo { - public static void main(String[] args) { - //需求:在控制台输出5次"HelloWorld" - //for循环实现 - for(int i=1; i<=5; i++) { - System.out.println("HelloWorld"); - } - System.out.println("--------"); - - //do...while循环实现 - int j = 1; - do { - System.out.println("HelloWorld"); - j++; - }while(j<=5); - - } -} -``` - -## 10.2 三种循环的区别 - -- 三种循环的区别 - -1. for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) - -2. do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断) - -- for循环和while的区别 - -1. 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 - -2. 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用 - -- 死循环(无限循环)的三种格式 - -1. for(;; ){} - -2. while(true){} - -3. do {} while(true); - -## 10.3 跳转控制语句 - -- 跳转控制语句(break) - - 跳出循环,结束循环 - -- 跳转控制语句(continue) - - 跳过本次循环,继续下次循环 - -- 注意: continue只能在循环中进行使用! - -## 10.4 循环嵌套 - -- 循环嵌套概述:在循环中,继续定义循环 - -- 示例代码: - -```java -public class ForForDemo { - public static void main(String[] args) { - for(int hour=0; hour<24; hour++) { - for(int minute=0; minute<60; minute++) { - System.out.println(hour + "时" + minute + "分"); - } - System.out.println("--------"); - } - } -} -``` - -- 理解: -- 请反复理解这句话(整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的) -- 结论: -- 外循环执行一次,内循环执行一圈。 - -# 11. Random - -## 11.1 Random产生随机数 - -- 概述: - - Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能 - - API后续课程详细讲解,现在可以简单理解为Java已经写好的代码 - -使用步骤: - -1. 导入包 - - import java.util.Random; - -1. 创建对象 - - Random r = new Random(); - -2. 产生随机数 - - int num = r.nextInt(10); - - 解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19 - -- 示例代码: - -```java -import java.util.Random; - -public class RandomDemo { - public static void main(String[] args) { - //创建对象 - Random r = new Random(); - - //用循环获取10个随机数 - for(int i=0; i<10; i++) { - //获取随机数 - int number = r.nextInt(10); - System.out.println("number:" + number); - } - - //需求:获取一个1-100之间的随机数 - int x = r.nextInt(100) + 1; - System.out.println(x); - } -} -``` - -## 11.2 Random练习-猜数字 - -- 需求: - -程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少? - -当猜错的时候根据不同情况给出相应的提示 - -A. 如果猜的数字比真实数字大,提示你猜的数据大了 - -B. 如果猜的数字比真实数字小,提示你猜的数据小了 - -C. 如果猜的数字与真实数字相等,提示恭喜你猜中了 - -- 示例代码: - -```java -import java.util.Random; -import java.util.Scanner; - -public class RandomTest { - public static void main(String[] args) { - //要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100 - Random r = new Random(); - int number = r.nextInt(100) + 1; - - while(true) { - //使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现 - Scanner sc = new Scanner(System.in); - - System.out.println("请输入你要猜的数字:"); - int guessNumber = sc.nextInt(); - - //比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示 - if(guessNumber > number) { - System.out.println("你猜的数字" + guessNumber + "大了"); - } else if(guessNumber < number) { - System.out.println("你猜的数字" + guessNumber + "小了"); - } else { - System.out.println("恭喜你猜中了"); - break; - } - } - } -} -``` - -# 12. IDEA开发工具 - -参见:IDEA工具安装详解.pdf -[IDEA工具安装详解.pdf](https://download.csdn.net/download/qq_39997939/85072242) - -# 13. 数组 - -### 13.2.1 第一种 - - 数据类型[] 数组名 - - 示例: - -```java -int[] arr; -double[] arr; -char[] arr; -``` - -定义了一个int类型的数组,数组名是arr - -### 13.2.2 第二种(不推荐) - - 数据类型 数组名[] - - 示例: - -```java -int arr[]; -double arr[]; -char arr[]; -``` - -定义了一个int类型的变量,变量名是arr数组 - -## 13.3 数组动态初始化 - -数组动态初始化就是只给定数组的长度,由系统给出默认初始化值 - -### 13.3.2 动态初始化格式 - -```java -数据类型[] 数组名 = new 数据类型[数组长度]; -``` - -```java -int[] arr = new int[3]; -``` - -### 13.3.3动态初始化格式详解 - -- 等号左边: - - int:数组的数据类型 - - []:代表这是一个数组 - - arr:代表数组的名称 - -- 等号右边: - - new:为数组开辟内存空间 - - int:数组的数据类型 - - []:代表这是一个数组 - - 3:代表数组的长度 - -## 13.4 数组元素访问 - -### 13.4.1 什么是索引 - - 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。 - - 这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。 - -### 13.4.2 访问数组元素格式 - -```java -数组名[索引]; -``` - -### 13.4.3 示例代码 - -```java -public class ArrayDemo { - public static void main(String[] args) { - int[] arr = new int[3]; - - //输出数组名 - System.out.println(arr); //[I@880ec60 - - //输出数组中的元素 - System.out.println(arr[0]); - System.out.println(arr[1]); - System.out.println(arr[2]); - } -} -``` - -## 13.5 内存分配 - -### 13.5.1 内存概述 - -内存是计算机中的重要原件,临时存储区域,作用是运行程序。 - - 我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。 - - 必须放进内存中才能运行,运行完毕后会清空内存。 - - Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。 - -### 13.5.2 java中的内存分配 - -- 目前我们只需要记住两个内存,分别是:栈内存和堆内存 - -| 区域名称 | 作用 | -| :--------: | :--------------------------------------------------------: | -| 寄存器 | 给CPU使用,和我们开发无关。 | -| 本地方法栈 | JVM在使用操作系统功能的时候使用,和我们开发无关。 | -| 方法区 | 存储可以运行的class文件。 | -| 堆内存 | 存储对象或者数组,new来创建的,都存储在堆内存。 | -| 方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 | - -## 13.6 单个数组的内存图 - -![](/13.6.png) - -## 13.7 多个数组的内存图 - -![](/13.7.png) - -## 13.8 多个数组指向相同内存图 - -![](/13.8.png) - -## 13.9 数组静态初始化 - -### 13.9.1 什么是静态初始化 - - 在创建数组时,直接将元素确定 - -### 13.9.2 静态初始化格式 - -- 完整版格式 - -```java -数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}; -``` - -- 简化版格式 - -```java -数据类型[] 数组名 = {元素1,元素2,...}; -``` - -### 13.9.3 示例代码 - -```java -public class ArrayDemo { - public static void main(String[] args) { - //定义数组 - int[] arr = {1, 2, 3}; - - //输出数组名 - System.out.println(arr); - - //输出数组中的元素 - System.out.println(arr[0]); - System.out.println(arr[1]); - System.out.println(arr[2]); - } -} -``` - -## 13.10 数组操作的两个常见小问题 - -### 13.10.1 索引越界异常 - -- 出现原因 - -```java -public class ArrayDemo { - public static void main(String[] args) { - int[] arr = new int[3]; - System.out.println(arr[3]); - } -} -``` - -数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。 - -程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 - -- 解决方案 - - -将错误的索引修改为正确的索引范围即可! - - -### 13.10.2 空指针异常 - -- 出现原因 - -```java -public class ArrayDemo { - public static void main(String[] args) { - int[] arr = new int[3]; - //把null赋值给数组 - arr = null; - System.out.println(arr[0]); - } -} -``` - -arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 - -- 解决方案 - - -给数组一个真正的堆内存空间引用即可! - - -## 13.11 数组遍历 - -- 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。 - -```java -public class ArrayTest01 { - public static void main(String[] args) { - int[] arr = { 1, 2, 3, 4, 5 }; - System.out.println(arr[0]); - System.out.println(arr[1]); - System.out.println(arr[2]); - System.out.println(arr[3]); - System.out.println(arr[4]); - } -} -``` - -以上代码是可以将数组中每个元素全部遍历出来,但是如果数组元素非常多,这种写法肯定不行,因此我们需要改造成循环的写法。数组的索引是 0 到 lenght-1 ,可以作为循环的条件出现。 - -```java -public class ArrayTest01 { - public static void main(String[] args) { - //定义数组 - int[] arr = {11, 22, 33, 44, 55}; - - //使用通用的遍历格式 - for(int x=0; x max) { - max = arr[x]; - } - } - - //循环结束后打印变量的值 - System.out.println("max:" + max); - - } -} -``` - -## 13.13 作业:评委打分 - -### 13.13.1 案例需求 - -闽大举行选美比赛,男生参赛,10个女生当评委,定义一个数组,存放评分,用随机数模拟打分的过程,用程序算出选手的最后得分【去掉一个最高分,再去掉一个最低分,用剩下的分数求平均值】。 - -### 13.13.2 代码实现 - -```java -/* - 思路: - 1:定义一个数组,用动态初始化完成数组元素的初始化,长度为10 - 2:键盘录入评委分数 - 3:由于是10个评委打分,所以,接收评委分数的操作,用循环改进 - 4:定义方法实现获取数组中的最高分(数组最大值),调用方法 - 5:定义方法实现获取数组中的最低分(数组最小值) ,调用方法 - 6:定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法 - 7:按照计算规则进行计算得到平均分 - 8:输出平均分 - */ -public class Test10 { - public static void main(String[] args) { - //定义一个数组,用动态初始化完成数组元素的初始化,长度为10 - int[] arr = new int[10]; - - //键盘录入评委分数 - Scanner sc = new Scanner(System.in); - - //由于是10个评委打分,所以,接收评委分数的操作,用循环改进 - for(int x=0; x max) { - max = arr[x]; - } - } - - return max; - } - - //遍历数组 - public static void printArray(int[] arr) { - System.out.print("["); - - for (int x = 0; x < arr.length; x++) { - if (x == arr.length - 1) { - System.out.print(arr[x]); - } else { - System.out.print(arr[x] + ", "); - } - } - - System.out.println("]"); - } -} -``` - -# 14. 方法概述 - -## 14.1 方法的概念 - -方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 - -![](/14.1.png) - -![](/14.1.1.png) - -- 注意: - - 方法必须先创建才可以使用,该过程成为方法定义 - - 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 - -## 14.2. 方法的定义和调用 - -### 14.2.1 无参数方法定义和调用 - -- 定义格式: - -```java -public static void 方法名 ( ) { - // 方法体; -} -``` - -- 范例: - -```java -public static void method ( ) { - // 方法体; -} -``` - -- 调用格式: - -```Java -方法名(); -``` - -- 范例: - -```java -method(); -``` - -- 注意: - - 方法必须先定义,后调用,否则程序将报错 - -### 14.2.2 方法调用过程图解 - -![](/14.2.2.png) - -- 总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。 - -### 14.2.3 无参数方法的练习 - -- 需求:设计一个方法用于打印两个数中的较大数 -- 思路: - - ①定义一个方法,用于打印两个数字中的较大数,例如getMax() - - ②方法中定义两个变量,用于保存两个数字 - - ③使用分支语句分两种情况对两个数字的大小关系进行处理 - - ④在main()方法中调用定义好的方法 - -- 代码: - -```java -public class MethodTest { - public static void main(String[] args) { - //在main()方法中调用定义好的方法 - getMax(); - } - - //定义一个方法,用于打印两个数字中的较大数,例如getMax() - public static void getMax() { - //方法中定义两个变量,用于保存两个数字 - int a = 10; - int b = 20; - - //使用分支语句分两种情况对两个数字的大小关系进行处理 - if(a > b) { - System.out.println(a); - } else { - System.out.println(b); - } - } -} -``` - -## 14.3 带参数方法定义和调用 - -### 14.3.1 带参数方法定义和调用 - -- 定义格式: - - 参数:由数据类型和变量名组成 - 数据类型 变量名 - - 参数范例:int a - -```java -public static void 方法名 (参数1) { - 方法体; -} - -public static void 方法名 (参数1, 参数2, 参数3...) { - 方法体; -} -``` - -- 范例: - -```java -public static void isEvenNumber(int number){ - ... -} -public static void getMax(int num1, int num2){ - ... -} -``` - -- 注意: - -```java -方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错 - -方法定义时,多个参数之间使用逗号( ,)分隔 -``` - -- 调用格式: - -```java -方法名(参数); - -方法名(参数1,参数2); -``` - -- 范例: - -```java -isEvenNumber(10); - -getMax(10,20); -``` - -- 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错 - -### 14.3.2 形参和实参 - -1. 形参:方法定义中的参数 - - 等同于变量定义格式,例如:int number - -1. 实参:方法调用中的参数 - - 等同于使用变量或常量,例如: 10 number - -### 14.3.3 带参数方法练习 - -- 需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数 } -- 思路: - - ①定义一个方法用于打印两个数字中的较大数,例如getMax() - - ②为方法定义两个参数,用于接收两个数字 - - ③使用分支语句分两种情况对两个数字的大小关系进行处理 - - ④在main()方法中调用定义好的方法(使用常量) - - ⑤在main()方法中调用定义好的方法(使用变量) - -- 代码: - -```java -public class MethodTest { - public static void main(String[] args) { - //在main()方法中调用定义好的方法(使用常量) - getMax(10,20); - //调用方法的时候,人家要几个,你就给几个,人家要什么类型的,你就给什么类型的 - //getMax(30); - //getMax(10.0,20.0); - - //在main()方法中调用定义好的方法(使用变量) - int a = 10; - int b = 20; - getMax(a, b); - } - - //定义一个方法,用于打印两个数字中的较大数,例如getMax() - //为方法定义两个参数,用于接收两个数字 - public static void getMax(int a, int b) { - //使用分支语句分两种情况对两个数字的大小关系进行处理 - if(a > b) { - System.out.println(a); - } else { - System.out.println(b); - } - } -} -``` - -## 14.4 带返回值方法的定义和调用 - -### 14.4.1 带返回值方法定义和调用 - -- 定义格式 - -```java -public static 数据类型 方法名 ( 参数 ) { - return 数据 ; -} -``` - -- 范例 - -```java -public static boolean isEvenNumber( int number ) { - return true ; -} -public static int getMax( int a, int b ) { - return 100 ; -} -``` - -- 注意: - - 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错 - -- 调用格式 - -```java -方法名 ( 参数 ) ; -数据类型 变量名 = 方法名 ( 参数 ) ; -``` - -- 范例 - -```java -isEvenNumber ( 5 ) ; -boolean flag = isEvenNumber ( 5 ); -``` - -- 注意: - - 方法的返回值通常会使用变量接收,否则该返回值将无意义 - -### 14.4.2 带返回值方法练习 - -- 需求:设计一个方法可以获取两个数的较大值,数据来自于参数 -- 思路: - - ①定义一个方法,用于获取两个数字中的较大数 - - ②使用分支语句分两种情况对两个数字的大小关系进行处理 - - ③根据题设分别设置两种情况下对应的返回结果 - - ④在main()方法中调用定义好的方法并使用变量保存 - - ⑤在main()方法中调用定义好的方法并直接打印结果 - -- 代码: - -```java -public class MethodTest { - public static void main(String[] args) { - //在main()方法中调用定义好的方法并使用变量保存 - int result = getMax(10,20); - System.out.println(result); - - //在main()方法中调用定义好的方法并直接打印结果 - System.out.println(getMax(10,20)); - } - - //定义一个方法,用于获取两个数字中的较大数 - public static int getMax(int a, int b) { - //使用分支语句分两种情况对两个数字的大小关系进行处理 - //根据题设分别设置两种情况下对应的返回结果 - if(a > b) { - return a; - } else { - return b; - } - } -} -``` - -## 14.5 方法的注意事项 - -### 14.5.1 方法的注意事项 - -- 方法不能嵌套定义 - - 示例代码: - -```java -public class MethodDemo { - public static void main(String[] args) { - - } - - public static void methodOne() { - public static void methodTwo() { - // 这里会引发编译错误!!! - } - } -} -``` - -- void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据 -- 示例代码: - -```java -public class MethodDemo { - public static void main(String[] args) { - - } - public static void methodTwo() { - //return 100; 编译错误,因为没有具体返回值类型 - return; - //System.out.println(100); return语句后面不能跟数据或代码 - } -} -``` - -### 14.5.2 方法的通用格式 - -- 格式: - -```java -public static 返回值类型 方法名(参数) { - 方法体; - return 数据 ; -} -``` - -- 解释: - - - public static 修饰符,目前先记住这个格式 - - 返回值类型 方法操作完毕之后返回的数据的数据类型 - - 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return - - 方法名 调用方法时候使用的标识 - - 参数 由数据类型和变量名组成,多个参数之间用逗号隔开 - - 方法体 完成功能的代码块 - - return 如果方法操作完毕,有数据返回,用于把数据返回给调用者 - -- 定义方法时,要做到两个明确 - - 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型 - - 明确参数:主要是明确参数的类型和数量 - -- 调用方法时的注意: - - void类型的方法,直接调用即可 - - 非void类型的方法,推荐用变量接收调用 - -## 14.6 作业 - -### 14.6.1 案例需求 - -定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 - -### 12.6.2 代码实现 - -```java -package com; -public class Test { - public static void main(String[] args) { - System.out.println("max = " + max(5, 8)); - } - public static int max(int num1, int num2) { - return num1 > num2 ? num1 : num2; - } -} -``` - -### 14.6.3 案例需求 - -在主函数中从键盘接收X, Y , Z3个数,编写函数计算这3个数的立方和并返回计算结果:S=X3+Y3+Z3 - -### 14.6.4 代码实现 - -```java -import java.util.Scanner; -public class Main{ - public static void main(String args[]){ - Scanner in = new Scanner(System.in); - int a = in.nextInt(); - int b = in.nextInt(); - int c = in.nextInt(); - float sum; - double aver; - sum=a+b+c; - aver=sum/3.0; - System.out.printf("sum=%.1f\n",sum); - System.out.print("average="+aver); - } -} -``` diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221202 Java\347\232\204\346\225\260\346\215\256\350\276\223\345\205\245\344\270\216switch\350\257\255\345\217\245.md" "b/07 \345\206\257\345\273\272\347\250\213/20221202 Java\347\232\204\346\225\260\346\215\256\350\276\223\345\205\245\344\270\216switch\350\257\255\345\217\245.md" new file mode 100644 index 0000000..e127edc --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221202 Java\347\232\204\346\225\260\346\215\256\350\276\223\345\205\245\344\270\216switch\350\257\255\345\217\245.md" @@ -0,0 +1,489 @@ +--- +typora-root-url: D:\java仓库\java-base\07 冯建程\Java笔记图片补充 +--- + +# 5. 数据输入 + +我们可以通过 Scanner 类来获取用户的输入。使用步骤如下: + +1、导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。 + +> import java.util.Scanner; + +2、创建Scanner对象。 + +> Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变 + +3、接收数据 + +> int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。 + +示例: + +```java +import java.util.Scanner; + +public class ScannerDemo { + public static void main(String[] args) { //创建对象 + Scanner sc = new Scanner(System.in); //接收数据 + int x = sc.nextInt(); + //输出数据 + System.out.println("x:" + x); + } +} +``` + +改写三个和尚案例,数据使用键盘录入。 + +```java +import java.util.Scanner; + +public class ScannerTest { + public static void main(String[] args) { + //身高未知,采用键盘录入实现。首先导包,然后创建对象。 + Scanner sc = new Scanner(System.in); + + //键盘录入三个身高分别赋值给三个变量。 + System.out.println("请输入第一个和尚的身高:"); + int height1 = sc.nextInt(); + + System.out.println("请输入第二个和尚的身高:"); + int height2 = sc.nextInt(); + + System.out.println("请输入第三个和尚的身高:"); + int height3 = sc.nextInt(); + + //用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。 + int tempHeight = height1 > height2 ? height1 : height2; + + //用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。 + int maxHeight = tempHeight > height3 ? tempHeight : height3; + + //输出结果。 + System.out.println("这三个和尚中身高最高的是:" + maxHeight +"cm"); + } +} +``` + +# 6. 流程控制语句 + +在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。 + +## 6.1 流程控制语句分类 + +顺序结构 + +分支结构(if, switch) + +循环结构(for, while, do…while) + +## 6.2 顺序结构 + +顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 + +顺序结构执行流程图: + +![6.2](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/6.2.png) + +## 6.3 分支结构之if语句 + +### 6.3.1 if语句格式1 + +> 格式: +> +> if (关系表达式) { +> +> 语句体; +> +> } + +执行流程: + +1首先计算关系表达式的值 + +2如果关系表达式的值为true就执行语句体 + +3如果关系表达式的值为false就不执行语句体 + +4继续执行后面的语句内容 + +![6.3.1 if 语句格式1](/6.3.1 if 语句格式1.png) + +示例: + +```Java +public class IfDemo { + public static void main(String[] args) { + System.out.println("开始"); + + //定义两个变量 + int a = 10; + int b = 20; + + //需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b + if(a == b) { + System.out.println("a等于b"); + } + + //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c + int c = 10; + if(a == c) { + System.out.println("a等于c"); + } + + System.out.println("结束"); + } +} +``` + +### 6.3.2 if语句格式2 + +> 格式: +> +> if (关系表达式) { +> +> 语句体1; +> +> } else { +> +> 语句体2; +> +> } + +执行流程: + +1. 首先计算关系表达式的值 + +2. 如果关系表达式的值为true就执行语句体1 + +3. 如果关系表达式的值为false就执行语句体2 + +4. 继续执行后面的语句内容 + +![6.3.2 if 语句格式2](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/6.3.2 if 语句格式2.png) + +示例: + +```Java +public class IfDemo02 { + public static void main(String[] args) { + System.out.println("开始"); + + //定义两个变量 + int a = 10; + int b = 20; + b = 5; + + //需求:判断a是否大于b,如果是,在控制台输出:a的值大于b, + //如果不是,在控制台输出:a的值不大于b + if(a > b) { + System.out.println("a的值大于b"); + } else { + System.out.println("a的值不大于b"); + } + + System.out.println("结束"); + } +} +``` + +if语句案例:奇偶数 + +需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。 + +分析: + +为了体现任意给出一个整数,采用键盘录入一个数据 + +判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构 + +判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0 + +根据判定情况,在控制台输出对应的内容 + +```java +import java.util.Scanner; + +public class IfTest01 { + public static void main(String[] args) { + //为了体现任意给出一个整数,采用键盘录入一个数据。(导包,创建对象,接收数据) + Scanner sc = new Scanner(System.in); + + System.out.println("请输入一个整数:"); + int number = sc.nextInt(); + + //判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构 + //判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0 + //根据判定情况,在控制台输出对应的内容 + if(number%2 == 0) { + System.out.println(number + "是偶数"); + } else { + System.out.println(number + "是奇数"); + } + + } +} +``` + +### 6.3.3 if语句格式3 + +> 格式: +> +> if (关系表达式1) { +> +> 语句体1; +> +> } else if (关系表达式2) { +> +> 语句体2; +> +> } +> +> … +> +> else { +> +> 语句体n+1; +> +> } + +执行流程: + +1. 首先计算关系表达式1的值 + +2. 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值 + +3. 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值 + +4. … + +5. 如果没有任何关系表达式为true,就执行语句体n+1。 + +![6.3.3 if 语句格式3](/6.3.3 if 语句格式3.png) + +示例: + +键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日 + +```java +import java.util.Scanner; + +public class IfDemo03 { + public static void main(String[] args) { + System.out.println("开始"); + + //需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日 + Scanner sc = new Scanner(System.in); + + System.out.println("请输入一个星期数(1-7):"); + int week = sc.nextInt(); + + if(week == 1) { + System.out.println("星期一"); + } else if(week == 2) { + System.out.println("星期二"); + } else if(week == 3) { + System.out.println("星期三"); + } else if(week == 4) { + System.out.println("星期四"); + } else if(week == 5) { + System.out.println("星期五"); + } else if(week == 6) { + System.out.println("星期六"); + } else { + System.out.println("星期日"); + } + + System.out.println("结束"); + } +} +``` + +if语句格式3案例: + +需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。 + +分析: + +小明的考试成绩未知,可以使用键盘录入的方式获取值 + +由于奖励种类较多,属于多种判断,采用if…else…if格式实现 + +为每种判断设置对应的条件 + +为每种判断设置对应的奖励 + +```Java +import java.util.Scanner; + +public class IfTest02 { + public static void main(String[] args) { + //小明的考试成绩未知,可以使用键盘录入的方式获取值 + Scanner sc = new Scanner(System.in); + + System.out.println("请输入一个分数:"); + int score = sc.nextInt(); + + //由于奖励种类较多,属于多种判断,采用if...else...if格式实现 + //为每种判断设置对应的条件 + //为每种判断设置对应的奖励 + + //数据测试:正确数据,边界数据,错误数据 + if(score>100 || score<0) { + System.out.println("你输入的分数有误"); + } else if(score>=95 && score<=100) { + System.out.println("山地自行车一辆"); + } else if(score>=90 && score<=94) { + System.out.println("游乐场玩一次"); + } else if(score>=80 && score<=89) { + System.out.println("变形金刚玩具一个"); + } else { + System.out.println("胖揍一顿"); + } + } +} +``` + +# 7. switch语句 + +## 7.1 switch语句结构 + +格式 + +```java +switch (表达式) { + case 1: + 语句体1; + break; + case 2: + 语句体2; + break; + ... + default: + 语句体n+1; + break; +} +``` + +格式说明: + +- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。 + +- case:后面跟的是要和表达式进行比较的值。 + +- break:表示中断,结束的意思,用来结束switch语句。 + +- default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。 + +执行流程: + +- 首先计算出表达式的值 + +- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。 + +- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 + +![7.1](/7.1.png) + +## 7.2 switch语句练习-春夏秋冬(应用) + +- 需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。 + +- 运行结果: + +``` +春:3、4、5 +夏:6、7、8 +秋:9、10、11 +冬:1、2、12 +``` + +- 示例代码: + +```java +import java.util.Scanner; + +public class SwitchTest { + public static void main(String[] args) { + //键盘录入月份数据,使用变量接收 + Scanner sc = new Scanner(System.in); + + System.out.println("请输入一个月份:"); + int month = sc.nextInt(); + + //多情况判断,这里采用switch语句实现 + //在每种情况中,完成输出对应的季节 + /* + switch(month) { + case 1: + System.out.println("冬季"); + break; + case 2: + System.out.println("冬季"); + //break; + case 3: + System.out.println("春季"); + break; + case 4: + System.out.println("春季"); + break; + case 5: + System.out.println("春季"); + break; + case 6: + System.out.println("夏季"); + break; + case 7: + System.out.println("夏季"); + break; + case 8: + System.out.println("夏季"); + break; + case 9: + System.out.println("秋季"); + break; + case 10: + System.out.println("秋季"); + break; + case 11: + System.out.println("秋季"); + break; + case 12: + System.out.println("冬季"); + break; + default: + System.out.println("你输入的月份有误"); + //break; + } + */ + + //case穿透 + switch(month) { + case 1: + case 2: + case 12: + System.out.println("冬季"); + break; + case 3: + case 4: + case 5: + System.out.println("春季"); + break; + case 6: + case 7: + case 8: + System.out.println("夏季"); + break; + case 9: + case 10: + case 11: + System.out.println("秋季"); + break; + default: + System.out.println("你输入的月份有误"); + } + } +} +``` + +- 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。 \ No newline at end of file diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221206 Java\347\232\204for.shile.do\345\276\252\347\216\257.md" "b/07 \345\206\257\345\273\272\347\250\213/20221206 Java\347\232\204for.shile.do\345\276\252\347\216\257.md" new file mode 100644 index 0000000..7d05026 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221206 Java\347\232\204for.shile.do\345\276\252\347\216\257.md" @@ -0,0 +1,423 @@ +# 8. for循环 + +## 8.1 for循环结构(掌握) + +- 循环: + + 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。 + +- for循环格式: + +``` +for (初始化语句;条件判断语句;条件控制语句) { + 循环体语句; +} +``` + +格式解释: + +- 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 + +- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 + +- 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 + +- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 + +执行流程: + +①执行初始化语句 + +②执行条件判断语句,看其结果是true还是false + +如果是false,循环结束 + +如果是true,继续执行 + +③执行循环体语句 + +④执行条件控制语句 + +⑤回到②继续 + +```java +public class ForDemo { + public static void main(String[] args) { + //需求:在控制台输出5次"HelloWorld" + System.out.println("HelloWorld"); + System.out.println("HelloWorld"); + System.out.println("HelloWorld"); + System.out.println("HelloWorld"); + System.out.println("HelloWorld"); + System.out.println("--------"); + + //用循环改进 + for(int i=1; i<=5; i++) { + System.out.println("HelloWorld"); + } + + } +} +``` + +## 8.2 for循环练习-输出数据(应用) + +- 需求:在控制台输出1-5和5-1的数据 + +- 示例代码: + +```java +public class ForTest01 { + public static void main(String[] args) { + //需求:输出数据1-5 + for(int i=1; i<=5; i++) { + System.out.println(i); + } + System.out.println("--------"); + + //需求:输出数据5-1 + for(int i=5; i>=1; i--) { + System.out.println(i); + } + + } +} +``` + +## 8.3 for循环练习-求和 + +- 需求:求1-5之间的数据和,并把求和结果在控制台输出 + +- 示例代码: + +```java +public class ForTest02 { + public static void main(String[] args) { + //求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 + int sum = 0; + + //从1开始到5结束的数据,使用循环结构完成 + for(int i=1; i<=5; i++) { + //将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中 + sum += i; + /* + sum += i; sum = sum + i; + 第一次:sum = sum + i = 0 + 1 = 1; + 第二次:sum = sum + i = 1 + 2 = 3; + 第三次:sum = sum + i = 3 + 3 = 6; + 第四次:sum = sum + i = 6 + 4 = 10; + 第五次:sum = sum + i = 10 + 5 = 15; + */ + } + + //当循环执行完毕时,将最终数据打印出来 + System.out.println("1-5之间的数据和是:" + sum); + } +} +``` + +- 本题要点: +- 今后遇到的需求中,如果带有求和二字,请立即联想到求和变量 + +- 求和变量的定义位置,必须在循环外部,如果在循环内部则计算出的数据将是错误的 + +## 8.4 for循环练习-求偶数和 + +- 需求:求1-100之间的偶数和,并把求和结果在控制台输出 } + +- 示例代码: + +```java +public class ForTest03 { + public static void main(String[] args) { + //求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 + int sum = 0; + + //对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同 + for(int i=1; i<=100; i++) { + //对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数 + if(i%2 == 0) { + sum += i; + } + } + + //当循环执行完毕时,将最终数据打印出来 + System.out.println("1-100之间的偶数和是:" + sum); + } +} +``` + +## 8.5 for循环练习-水仙花 + +- 需求:在控制台输出所有的“水仙花数” + +- 解释:什么是水仙花数? + +水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数 + +例如153 3*3*3 + 5*5*5 + 1*1*1 = 153 + +- 思路: + +1. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取 + +2. 获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数 + +- 示例代码 + +```java +public class ForTest04 { + public static void main(String[] args) { + //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束 + /* + for(int i=100; i<=999; i++) { + + } + */ + for(int i=100; i<1000; i++) { + //在计算之前获取三位数中每个位上的值 + int ge = i%10; + int shi = i/10%10; + int bai = i/10/10%10; + + //判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等 + if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { + //输出满足条件的数字就是水仙花数 + System.out.println(i); + } + } + } +} +``` + +## 8.6 for循环练习-统计水仙花数个数 + +- 需求:统计“水仙花数”一共有多少个,并在控制台输出个数 + +- 示例代码: + +```java +public class ForTest05 { + public static void main(String[] args) { + //定义变量count,用于保存“水仙花数”的数量,初始值为0 + int count = 0; + + //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束 + for(int i=100; i<1000; i++) { + //在计算之前获取三位数中每个位上的值 + int ge = i%10; + int shi = i/10%10; + int bai = i/10/10%10; + + //在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1 + if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { + count++; + } + } + + //打印输出最终结果 + System.out.println("水仙花共有:" + count + "个"); + } +} +``` + +- 本题要点: +- 今后如果需求带有统计xxx,请先想到计数器变量 + +- 计数器变量定义的位置,必须在循环外部 + +# 9. while循环 + +## 9.1 while结构 + +- while循环完整格式: + +``` +初始化语句; +while (条件判断语句) { + 循环体语句; + 条件控制语句; +} +``` + +- while循环执行流程: + + ①执行初始化语句 + + ②执行条件判断语句,看其结果是true还是false + + 如果是false,循环结束 + + 如果是true,继续执行 + + ③执行循环体语句 + + ④执行条件控制语句 + + ⑤回到②继续 + +- 示例代码: + +```java +public class WhileDemo { + public static void main(String[] args) { + //需求:在控制台输出5次"HelloWorld" + //for循环实现 + for(int i=1; i<=5; i++) { + System.out.println("HelloWorld"); + } + System.out.println("--------"); + + //while循环实现 + int j = 1; + while(j<=5) { + System.out.println("HelloWorld"); + j++; + } + + } +} +``` + +## 9.2 while循环练习-珠穆朗玛峰 + +- 需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度? + +- 示例代码: + +```java +public class WhileTest { + public static void main(String[] args) { + //定义一个计数器,初始值为0 + int count = 0; + + //定义纸张厚度 + double paper = 0.1; + + //定义珠穆朗玛峰的高度 + int zf = 8844430; + + //因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环 + //折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度 + while(paper <= zf) { + //循环的执行过程中每次纸张折叠,纸张的厚度要加倍 + paper *= 2; + + //在循环中执行累加,对应折叠了多少次 + count++; + } + + //打印计数器的值 + System.out.println("需要折叠:" + count + "次"); + } +} +``` + +# 10. 循环细节 + +## 10.1 do…while循环结构 + +- 完整格式: + +```java +初始化语句; +do { + 循环体语句; + 条件控制语句; +}while(条件判断语句); +``` + +- 执行流程: + + ① 执行初始化语句 + + ② 执行循环体语句 + + ③ 执行条件控制语句 + + ④ 执行条件判断语句,看其结果是true还是false + + 如果是false,循环结束 + + 如果是true,继续执行 + + ⑤ 回到②继续 + +- 示例代码: + +```Java +public class DoWhileDemo { + public static void main(String[] args) { + //需求:在控制台输出5次"HelloWorld" + //for循环实现 + for(int i=1; i<=5; i++) { + System.out.println("HelloWorld"); + } + System.out.println("--------"); + + //do...while循环实现 + int j = 1; + do { + System.out.println("HelloWorld"); + j++; + }while(j<=5); + + } +} +``` + +## 10.2 三种循环的区别 + +- 三种循环的区别 + +1. for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) + +2. do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断) + +- for循环和while的区别 + +1. 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 + +2. 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用 + +- 死循环(无限循环)的三种格式 + +1. for(;; ){} + +2. while(true){} + +3. do {} while(true); + +## 10.3 跳转控制语句 + +- 跳转控制语句(break) + - 跳出循环,结束循环 + +- 跳转控制语句(continue) + - 跳过本次循环,继续下次循环 + +- 注意: continue只能在循环中进行使用! + +## 10.4 循环嵌套 + +- 循环嵌套概述:在循环中,继续定义循环 + +- 示例代码: + +```java +public class ForForDemo { + public static void main(String[] args) { + for(int hour=0; hour<24; hour++) { + for(int minute=0; minute<60; minute++) { + System.out.println(hour + "时" + minute + "分"); + } + System.out.println("--------"); + } + } +} +``` + +- 理解: +- 请反复理解这句话(整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的) +- 结论: +- 外循环执行一次,内循环执行一圈。 \ No newline at end of file diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221209 Java\347\232\204Random\351\232\217\346\234\272\346\225\260\344\270\216IDEA\345\274\200\345\217\221\345\267\245\345\205\267\345\217\212\346\225\260\347\273\204.md" "b/07 \345\206\257\345\273\272\347\250\213/20221209 Java\347\232\204Random\351\232\217\346\234\272\346\225\260\344\270\216IDEA\345\274\200\345\217\221\345\267\245\345\205\267\345\217\212\346\225\260\347\273\204.md" new file mode 100644 index 0000000..3d25362 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221209 Java\347\232\204Random\351\232\217\346\234\272\346\225\260\344\270\216IDEA\345\274\200\345\217\221\345\267\245\345\205\267\345\217\212\346\225\260\347\273\204.md" @@ -0,0 +1,499 @@ +# 11. Random + +## 11.1 Random产生随机数 + +- 概述: + - Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能 + - API后续课程详细讲解,现在可以简单理解为Java已经写好的代码 + +使用步骤: + +1. 导入包 + + import java.util.Random; + +2. 创建对象 + + Random r = new Random(); + +3. 产生随机数 + + int num = r.nextInt(10); + + 解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19 + +- 示例代码: + +```java +import java.util.Random; + +public class RandomDemo { + public static void main(String[] args) { + //创建对象 + Random r = new Random(); + + //用循环获取10个随机数 + for(int i=0; i<10; i++) { + //获取随机数 + int number = r.nextInt(10); + System.out.println("number:" + number); + } + + //需求:获取一个1-100之间的随机数 + int x = r.nextInt(100) + 1; + System.out.println(x); + } +} +``` + +## 11.2 Random练习-猜数字 + +- 需求: + +程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少? + +当猜错的时候根据不同情况给出相应的提示 + +A. 如果猜的数字比真实数字大,提示你猜的数据大了 + +B. 如果猜的数字比真实数字小,提示你猜的数据小了 + +C. 如果猜的数字与真实数字相等,提示恭喜你猜中了 + +- 示例代码: + +```java +import java.util.Random; +import java.util.Scanner; + +public class RandomTest { + public static void main(String[] args) { + //要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100 + Random r = new Random(); + int number = r.nextInt(100) + 1; + + while(true) { + //使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现 + Scanner sc = new Scanner(System.in); + + System.out.println("请输入你要猜的数字:"); + int guessNumber = sc.nextInt(); + + //比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示 + if(guessNumber > number) { + System.out.println("你猜的数字" + guessNumber + "大了"); + } else if(guessNumber < number) { + System.out.println("你猜的数字" + guessNumber + "小了"); + } else { + System.out.println("恭喜你猜中了"); + break; + } + } + } +} +``` + +# 12. IDEA开发工具 + +参见:IDEA工具安装详解.pdf +[IDEA工具安装详解.pdf]( + +# 13. 数组 + +### 13.2.1 第一种 + + 数据类型[] 数组名 + + 示例: + +``` +int[] arr; +double[] arr; +char[] arr; +``` + +定义了一个int类型的数组,数组名是arr + +### 13.2.2 第二种(不推荐) + + 数据类型 数组名[] + + 示例: + +``` +int arr[]; +double arr[]; +char arr[]; +``` + +定义了一个int类型的变量,变量名是arr数组 + +## 13.3 数组动态初始化 + +数组动态初始化就是只给定数组的长度,由系统给出默认初始化值 + +### 13.3.2 动态初始化格式 + +```java +数据类型[] 数组名 = new 数据类型[数组长度]; +``` + +```java +int[] arr = new int[3]; +``` + +### 13.3.3动态初始化格式详解 + +- 等号左边: + - int:数组的数据类型 + - []:代表这是一个数组 + - arr:代表数组的名称 + +- 等号右边: + - new:为数组开辟内存空间 + - int:数组的数据类型 + - []:代表这是一个数组 + - 3:代表数组的长度 + +## 13.4 数组元素访问 + +### 13.4.1 什么是索引 + + 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。 + + 这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。 + +### 13.4.2 访问数组元素格式 + +``` +数组名[索引]; +``` + +### 13.4.3 示例代码 + +```java +public class ArrayDemo { + public static void main(String[] args) { + int[] arr = new int[3]; + + //输出数组名 + System.out.println(arr); //[I@880ec60 + + //输出数组中的元素 + System.out.println(arr[0]); + System.out.println(arr[1]); + System.out.println(arr[2]); + } +} +``` + +## 13.5 内存分配 + +### 13.5.1 内存概述 + +内存是计算机中的重要原件,临时存储区域,作用是运行程序。 + + 我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。 + + 必须放进内存中才能运行,运行完毕后会清空内存。 + + Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。 + +### 13.5.2 java中的内存分配 + +- 目前我们只需要记住两个内存,分别是:栈内存和堆内存 + +| 区域名称 | 作用 | +| :--------: | :--------------------------------------------------------: | +| 寄存器 | 给CPU使用,和我们开发无关。 | +| 本地方法栈 | JVM在使用操作系统功能的时候使用,和我们开发无关。 | +| 方法区 | 存储可以运行的class文件。 | +| 堆内存 | 存储对象或者数组,new来创建的,都存储在堆内存。 | +| 方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 | + +## 13.6 单个数组的内存图 + +![](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/13.6.png) + +## 13.7 多个数组的内存图 + +![](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/13.7.png) + +## 13.8 多个数组指向相同内存图 + +![](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/13.8.png) + +## 13.9 数组静态初始化 + +### 13.9.1 什么是静态初始化 + + 在创建数组时,直接将元素确定 + +### 13.9.2 静态初始化格式 + +- 完整版格式 + +``` +数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}; +``` + +- 简化版格式 + +``` +数据类型[] 数组名 = {元素1,元素2,...}; +``` + +### 13.9.3 示例代码 + +```Java +public class ArrayDemo { + public static void main(String[] args) { + //定义数组 + int[] arr = {1, 2, 3}; + + //输出数组名 + System.out.println(arr); + + //输出数组中的元素 + System.out.println(arr[0]); + System.out.println(arr[1]); + System.out.println(arr[2]); + } +} +``` + +## 13.10 数组操作的两个常见小问题 + +### 13.10.1 索引越界异常 + +- 出现原因 + +```java +public class ArrayDemo { + public static void main(String[] args) { + int[] arr = new int[3]; + System.out.println(arr[3]); + } +} +``` + +数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。 + +程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 + +- 解决方案 + + +将错误的索引修改为正确的索引范围即可! + +### 13.10.2 空指针异常 + +- 出现原因 + +```java +public class ArrayDemo { + public static void main(String[] args) { + int[] arr = new int[3]; + //把null赋值给数组 + arr = null; + System.out.println(arr[0]); + } +} +``` + +arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 + +- 解决方案 + + +给数组一个真正的堆内存空间引用即可! + +## 13.11 数组遍历 + +- 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。 + +```java +public class ArrayTest01 { + public static void main(String[] args) { + int[] arr = { 1, 2, 3, 4, 5 }; + System.out.println(arr[0]); + System.out.println(arr[1]); + System.out.println(arr[2]); + System.out.println(arr[3]); + System.out.println(arr[4]); + } +} +``` + +以上代码是可以将数组中每个元素全部遍历出来,但是如果数组元素非常多,这种写法肯定不行,因此我们需要改造成循环的写法。数组的索引是 0 到 lenght-1 ,可以作为循环的条件出现。 + +```java +public class ArrayTest01 { + public static void main(String[] args) { + //定义数组 + int[] arr = {11, 22, 33, 44, 55}; + + //使用通用的遍历格式 + for(int x=0; x max) { + max = arr[x]; + } + } + + //循环结束后打印变量的值 + System.out.println("max:" + max); + + } +} +``` + +## 13.13 作业:评委打分 + +### 13.13.1 案例需求 + +闽大举行选美比赛,男生参赛,10个女生当评委,定义一个数组,存放评分,用随机数模拟打分的过程,用程序算出选手的最后得分【去掉一个最高分,再去掉一个最低分,用剩下的分数求平均值】。 + +### 13.13.2 代码实现 + +```java +/* + 思路: + 1:定义一个数组,用动态初始化完成数组元素的初始化,长度为10 + 2:键盘录入评委分数 + 3:由于是10个评委打分,所以,接收评委分数的操作,用循环改进 + 4:定义方法实现获取数组中的最高分(数组最大值),调用方法 + 5:定义方法实现获取数组中的最低分(数组最小值) ,调用方法 + 6:定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法 + 7:按照计算规则进行计算得到平均分 + 8:输出平均分 + */ +public class Test10 { + public static void main(String[] args) { + //定义一个数组,用动态初始化完成数组元素的初始化,长度为10 + int[] arr = new int[10]; + + //键盘录入评委分数 + Scanner sc = new Scanner(System.in); + + //由于是10个评委打分,所以,接收评委分数的操作,用循环改进 + for(int x=0; x max) { + max = arr[x]; + } + } + + return max; + } + + //遍历数组 + public static void printArray(int[] arr) { + System.out.print("["); + + for (int x = 0; x < arr.length; x++) { + if (x == arr.length - 1) { + System.out.print(arr[x]); + } else { + System.out.print(arr[x] + ", "); + } + } + + System.out.println("]"); + } +} +``` + diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221215 Java\347\232\204\346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" "b/07 \345\206\257\345\273\272\347\250\213/20221215 Java\347\232\204\346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000..84135d1 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221215 Java\347\232\204\346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,398 @@ +--- +typora-root-url: D:\java仓库\java-base\07 冯建程\Java笔记图片补充 +--- + +# 14. 方法概述 + +## 14.1 方法的概念 + +方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 + +![](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/14.1.png) + +![](D:/java仓库/java-base/07 冯建程/Java笔记图片补充/14.1.1.png) + +- 注意: + - 方法必须先创建才可以使用,该过程成为方法定义 + - 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 + +## 14.2. 方法的定义和调用 + +### 14.2.1 无参数方法定义和调用 + +- 定义格式: + +``` +public static void 方法名 ( ) { + // 方法体; +} +``` + +- 范例: + +``` +public static void method ( ) { + // 方法体; +} +``` + +- 调用格式: + +```Java +方法名(); +``` + +- 范例: + +```java +method(); +``` + +- 注意: + + 方法必须先定义,后调用,否则程序将报错 + +### 14.2.2 方法调用过程图解 + +![](/../../../../java仓库/java-base/07 冯建程/Java笔记图片补充/14.2.2.png) + +- 总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。 + +### 14.2.3 无参数方法的练习 + +- 需求:设计一个方法用于打印两个数中的较大数 +- 思路: + - ①定义一个方法,用于打印两个数字中的较大数,例如getMax() + - ②方法中定义两个变量,用于保存两个数字 + - ③使用分支语句分两种情况对两个数字的大小关系进行处理 + - ④在main()方法中调用定义好的方法 + +- 代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //在main()方法中调用定义好的方法 + getMax(); + } + + //定义一个方法,用于打印两个数字中的较大数,例如getMax() + public static void getMax() { + //方法中定义两个变量,用于保存两个数字 + int a = 10; + int b = 20; + + //使用分支语句分两种情况对两个数字的大小关系进行处理 + if(a > b) { + System.out.println(a); + } else { + System.out.println(b); + } + } +} +``` + +## 14.3 带参数方法定义和调用 + +### 14.3.1 带参数方法定义和调用 + +- 定义格式: + + 参数:由数据类型和变量名组成 - 数据类型 变量名 + + 参数范例:int a + +```java +public static void 方法名 (参数1) { + 方法体; +} + +public static void 方法名 (参数1, 参数2, 参数3...) { + 方法体; +} +``` + +- 范例: + +```java +public static void isEvenNumber(int number){ + ... +} +public static void getMax(int num1, int num2){ + ... +} +``` + +- 注意: + +```java +方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错 + +方法定义时,多个参数之间使用逗号( ,)分隔 +``` + +- 调用格式: + +```java +方法名(参数); + +方法名(参数1,参数2); +``` + +- 范例: + +```java +isEvenNumber(10); + +getMax(10,20); +``` + +- 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错 + +### 14.3.2 形参和实参 + +1. 形参:方法定义中的参数 + + 等同于变量定义格式,例如:int number + +1. 实参:方法调用中的参数 + + 等同于使用变量或常量,例如: 10 number + +### 14.3.3 带参数方法练习 + +- 需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数 } +- 思路: + - ①定义一个方法用于打印两个数字中的较大数,例如getMax() + - ②为方法定义两个参数,用于接收两个数字 + - ③使用分支语句分两种情况对两个数字的大小关系进行处理 + - ④在main()方法中调用定义好的方法(使用常量) + - ⑤在main()方法中调用定义好的方法(使用变量) + +- 代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //在main()方法中调用定义好的方法(使用常量) + getMax(10,20); + //调用方法的时候,人家要几个,你就给几个,人家要什么类型的,你就给什么类型的 + //getMax(30); + //getMax(10.0,20.0); + + //在main()方法中调用定义好的方法(使用变量) + int a = 10; + int b = 20; + getMax(a, b); + } + + //定义一个方法,用于打印两个数字中的较大数,例如getMax() + //为方法定义两个参数,用于接收两个数字 + public static void getMax(int a, int b) { + //使用分支语句分两种情况对两个数字的大小关系进行处理 + if(a > b) { + System.out.println(a); + } else { + System.out.println(b); + } + } +} +``` + +## 14.4 带返回值方法的定义和调用 + +### 14.4.1 带返回值方法定义和调用 + +- 定义格式 + +```java +public static 数据类型 方法名 ( 参数 ) { + return 数据 ; +} +``` + +- 范例 + +```java +public static boolean isEvenNumber( int number ) { + return true ; +} +public static int getMax( int a, int b ) { + return 100 ; +} +``` + +- 注意: + - 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错 + +- 调用格式 + +```java +方法名 ( 参数 ) ; +数据类型 变量名 = 方法名 ( 参数 ) ; +``` + +- 范例 + +```java +isEvenNumber ( 5 ) ; +boolean flag = isEvenNumber ( 5 ); +``` + +- 注意: + - 方法的返回值通常会使用变量接收,否则该返回值将无意义 + +### 14.4.2 带返回值方法练习 + +- 需求:设计一个方法可以获取两个数的较大值,数据来自于参数 +- 思路: + - ①定义一个方法,用于获取两个数字中的较大数 + - ②使用分支语句分两种情况对两个数字的大小关系进行处理 + - ③根据题设分别设置两种情况下对应的返回结果 + - ④在main()方法中调用定义好的方法并使用变量保存 + - ⑤在main()方法中调用定义好的方法并直接打印结果 + +- 代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //在main()方法中调用定义好的方法并使用变量保存 + int result = getMax(10,20); + System.out.println(result); + + //在main()方法中调用定义好的方法并直接打印结果 + System.out.println(getMax(10,20)); + } + + //定义一个方法,用于获取两个数字中的较大数 + public static int getMax(int a, int b) { + //使用分支语句分两种情况对两个数字的大小关系进行处理 + //根据题设分别设置两种情况下对应的返回结果 + if(a > b) { + return a; + } else { + return b; + } + } +} +``` + +## 14.5 方法的注意事项 + +### 14.5.1 方法的注意事项 + +- 方法不能嵌套定义 + - 示例代码: + +```java +public class MethodDemo { + public static void main(String[] args) { + + } + + public static void methodOne() { + public static void methodTwo() { + // 这里会引发编译错误!!! + } + } +} +``` + +- void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据 +- 示例代码: + +```java +public class MethodDemo { + public static void main(String[] args) { + + } + public static void methodTwo() { + //return 100; 编译错误,因为没有具体返回值类型 + return; + //System.out.println(100); return语句后面不能跟数据或代码 + } +} +``` + +### 14.5.2 方法的通用格式 + +- 格式: + +``` +public static 返回值类型 方法名(参数) { + 方法体; + return 数据 ; +} +``` + +- 解释: + + - public static 修饰符,目前先记住这个格式 + + 返回值类型 方法操作完毕之后返回的数据的数据类型 + + 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return + + 方法名 调用方法时候使用的标识 + + 参数 由数据类型和变量名组成,多个参数之间用逗号隔开 + + 方法体 完成功能的代码块 + + return 如果方法操作完毕,有数据返回,用于把数据返回给调用者 + +- 定义方法时,要做到两个明确 + + - 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型 + - 明确参数:主要是明确参数的类型和数量 + +- 调用方法时的注意: + + - void类型的方法,直接调用即可 + - 非void类型的方法,推荐用变量接收调用 + +## 14.6 作业 + +### 14.6.1 案例需求 + +定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 + +### 12.6.2 代码实现 + +```java +package com; +public class Test { + public static void main(String[] args) { + System.out.println("max = " + max(5, 8)); + } + public static int max(int num1, int num2) { + return num1 > num2 ? num1 : num2; + } +} +``` + +### 14.6.3 案例需求 + +在主函数中从键盘接收X, Y , Z3个数,编写函数计算这3个数的立方和并返回计算结果:S=X3+Y3+Z3 + +### 14.6.4 代码实现 + +```java +import java.util.Scanner; +public class Main{ + public static void main(String args[]){ + Scanner in = new Scanner(System.in); + int a = in.nextInt(); + int b = in.nextInt(); + int c = in.nextInt(); + float sum; + double aver; + sum=a+b+c; + aver=sum/3.0; + System.out.printf("sum=%.1f\n",sum); + System.out.print("average="+aver); + } +} +``` + diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221216 Java\347\232\204\346\226\271\346\263\225\351\207\215\350\275\275\345\217\212\345\217\202\346\225\260\344\274\240\351\200\222.md" "b/07 \345\206\257\345\273\272\347\250\213/20221216 Java\347\232\204\346\226\271\346\263\225\351\207\215\350\275\275\345\217\212\345\217\202\346\225\260\344\274\240\351\200\222.md" new file mode 100644 index 0000000..333011d --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221216 Java\347\232\204\346\226\271\346\263\225\351\207\215\350\275\275\345\217\212\345\217\202\346\225\260\344\274\240\351\200\222.md" @@ -0,0 +1,268 @@ +--- +typora-root-url: D:\java仓库\java-base\07 冯建程\Java笔记图片补充 +--- + +## 14.6 方法重载 + +### 14.6.1 方法重载 + +- 方法重载概念 + + 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 + + - 多个方法在同一个类中 + - 多个方法具有相同的方法名 + - 多个方法的参数不相同,类型不同或者数量不同 + +- 注意: + + - 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式 + - 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载 + +- 正确范例: + +```java +public class MethodDemo { + public static void fn(int a) { + //方法体 + } + public static int fn(double a) { + //方法体 + } +} + +public class MethodDemo { + public static float fn(int a) { + //方法体 + } + public static int fn(int a , int b) { + //方法体 + } +} +``` + +- 错误范例: + +```Java +public class MethodDemo { + public static void fn(int a) { + //方法体 + } + public static int fn(int a) { /*错误原因:重载与返回值无关*/ + //方法体 + } +} + +public class MethodDemo01 { + public static void fn(int a) { + //方法体 + } +} +public class MethodDemo02 { + public static int fn(double a) { /*错误原因:这是两个类的两个fn方法*/ + //方法体 + } +} +``` + +### 14.6.2 方法重载练习 + +- 需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long) +- 思路: +- - ①定义比较两个数字的是否相同的方法compare()方法,参数选择两个int型参数 + - ②定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数 + - ③定义所有的重载方法,两个byte类型与两个short类型参数 + - ④完成方法的调用,测试运行结果 +- 代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //调用方法 + System.out.println(compare(10, 20)); + System.out.println(compare((byte) 10, (byte) 20)); + System.out.println(compare((short) 10, (short) 20)); + System.out.println(compare(10L, 20L)); + } + + //int + public static boolean compare(int a, int b) { + System.out.println("int"); + return a == b; + } + + //byte + public static boolean compare(byte a, byte b) { + System.out.println("byte"); + return a == b; + } + + //short + public static boolean compare(short a, short b) { + System.out.println("short"); + return a == b; + } + + //long + public static boolean compare(long a, long b) { + System.out.println("long"); + return a == b; + } + +} +``` + +## 14.7 方法的参数传递 + +### 14.7.1 方法参数传递基本类型 + +- 测试代码: + +```java +public class ArgsDemo01 { + public static void main(String[] args) { + int number = 100; + System.out.println("调用change方法前:" + number); + change(number); + System.out.println("调用change方法后:" + number); + } + + public static void change(int number) { + number = 200; + } +} +``` + +- 结论: + - 基本数据类型的参数,形式参数的改变,不影响实际参数 +- 结论依据: + - 每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失 + +![](/14.7.1.png) + +### 14.7.2 方法参数传递引用类型 + +- 测试代码: + +```java +public class ArgsDemo02 { + public static void main(String[] args) { + int[] arr = {10, 20, 30}; + System.out.println("调用change方法前:" + arr[1]); + change(arr); + System.out.println("调用change方法后:" + arr[1]); + } + + public static void change(int[] arr) { + arr[1] = 200; + } +} +``` + +- 结论: + - 对于引用类型的参数,形式参数的改变,影响实际参数的值 +- 结论依据: + - 引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果 + +![](/14.7.2.png) + +### 14.7.3 数组遍历 + +- 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55] +- 思路: + +①因为要求结果在一行上输出,所以这里需要在学习一个新的输出语句System.out.print(“内容”); + +System.out.println(“内容”); 输出内容并换行 + +System.out.print(“内容”); 输出内容不换行 + +System.out.println(); 起到换行的作用 + +②定义一个数组,用静态初始化完成数组元素初始化 + +③定义一个方法,用数组遍历通用格式对数组进行遍历 + +④用新的输出语句修改遍历操作 + +⑤调用遍历方法 + +- 代码: + +```java +public class MethodTest01 { + public static void main(String[] args) { + //定义一个数组,用静态初始化完成数组元素初始化 + int[] arr = {11, 22, 33, 44, 55}; + + //调用方法 + printArray(arr); + } + + //定义一个方法,用数组遍历通用格式对数组进行遍历 + /* + 两个明确: + 返回值类型:void + 参数:int[] arr + */ + public static void printArray(int[] arr) { + System.out.print("["); + for(int x=0; x max) { + max = arr[x]; + } + } + return max; + } +} +``` + diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221220 Java\347\232\204\350\267\263\350\277\207\345\276\252\347\216\257.md" "b/07 \345\206\257\345\273\272\347\250\213/20221220 Java\347\232\204\350\267\263\350\277\207\345\276\252\347\216\257.md" new file mode 100644 index 0000000..cc53d53 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221220 Java\347\232\204\350\267\263\350\277\207\345\276\252\347\216\257.md" @@ -0,0 +1,40 @@ +# 笔记 + +```java +public class test7 { + public static void main(String[] args) { + int[] [] arr={ + {1,32,6}, + {34,2,12}, + {18,34,64}, + {45,22,62} + }; + System.out.println(arr[1][0]);//输处第二个数组里的第一个值34 + for (int i=0; i"); + System.out.println("请输入你所要操作的项目标号"); + System.out.println("1.显示所有学生信息"); + System.out.println("2.录入学生信息"); + System.out.println("3.查询学生信息"); + System.out.println("4.修改学生信息"); + System.out.println("5.删除学生信息"); + System.out.println("0.退出系统"); + }// 显示所有学生信息。 + + Stu[] putAllStu(Stu a[], int count) { + for (int i = 0; i < count; i++) { + System.out.print(i + 1 + ":"); + System.out.print("学号:" + a[i].getStuNum()); + System.out.print(" 姓名:" + a[i].getName()); + System.out.print(" 性别:" + a[i].getGender()); + System.out.print(" 年龄:" + a[i].getAge()); + System.out.println(" 成绩:" + a[i].getMark()); + + } + return a; + + }// 显示所有学生信息。 + + Stu[] inPutStu(Stu a[], int count,Scanner scan) { + if (count == a.length) { + a = Hw.newArray(a); + } + + System.out.println("请输入录入学生学号:"); + String newStuNum = scan.next().trim(); + + System.out.println("请输入录入学生姓名:"); + String newName = scan.next().trim(); + + System.out.println("请输入录入学生性别:"); + String newGender = scan.next().trim(); + while (true) { + if (newGender.equals("男") || newGender.equals("女")) { + break; + } else { + System.out.println("输入有误,重新输入"); + newGender = scan.next(); + } + + } + + System.out.println("请输入录入学生年龄:"); + int newAge = scan.nextInt(); + + System.out.println("请输入录入学生成绩:"); + int newMake = scan.nextInt(); + + a[count] = new Stu(newStuNum, newName, newGender, newAge, newMake); + + return a; + }// 录入学生信息。 + + void selectStu(Stu a[], int count ,Scanner scan) { + System.out.println("请输入要查找的学生姓名:"); + String name = scan.next().trim(); + for (int i = 0; i < count; i++) { + if (a[i].getName().equals(name)) { + System.out.print("学号:" + a[i].getStuNum()); + System.out.print(" 姓名:" + a[i].getName()); + System.out.print(" 性别:" + a[i].getGender()); + System.out.print(" 年龄:" + a[i].getAge()); + System.out.print(" 成绩:" + a[i].getMark()); + System.out.println(" 在系统中的位置为:" + i); + + return ; + } + } + System.out.println("查无此人"); + return ; + }// 查找学生信息。 + + Stu[] reSetStu(Stu a[], int count,Scanner scan) { + System.out.println("请输入要修改的学生学号:"); + String stuNum = scan.next().trim(); + for (int i = 0; i < count; i++) { + if (a[i].getStuNum().equals(stuNum)) { + System.out.println("您将要修改的学生信息如下:"); + System.out.print("学号:" + a[i].getStuNum()); + System.out.print(" 姓名:" + a[i].getName()); + System.out.print(" 性别:" + a[i].getGender()); + System.out.print(" 年龄:" + a[i].getAge()); + System.out.println(" 成绩:" + a[i].getMark()); + System.out.println("请选择您要修改的项目,输入0退出"); + System.out.println("1.学号:"); + System.out.println("2.姓名:"); + System.out.println("3.性别:"); + System.out.println("4.年龄:"); + System.out.println("5.成绩:"); + int flag = 1; + while (flag != 0) { + flag = scan.nextInt(); + switch (flag) { + case 1: + System.out.println("请输入新的信息"); + String newStuNum = scan.next(); + a[i].setStuNum(newStuNum); + break; + case 2: + System.out.println("请输入新的信息"); + String newName = scan.next(); + a[i].setStuNum(newName); + break; + case 3: + System.out.println("请输入新的信息"); + String newGender = scan.next(); + while (true) { + if (newGender.equals("男") || newGender.equals("女")) { + break; + } else { + System.out.println("输入有误,重新输入"); + newGender = scan.next(); + } + + } + a[i].setStuNum(newGender); + break; + case 4: + System.out.println("请输入新的信息"); + int newAge = scan.nextInt(); + a[i].setAge(newAge); + break; + case 5: + System.out.println("请输入新的信息"); + int newMark = scan.nextInt(); + a[i].setMark(newMark); + break; + default: + System.out.println("请输入正确数字"); + } + System.out.println("请继续选择您要修改的项目,输入0退出"); + } + System.out.println("您修改后的学生信息如下:"); + System.out.print("学号:" + a[i].getStuNum()); + System.out.print(" 姓名:" + a[i].getName()); + System.out.print(" 性别:" + a[i].getGender()); + System.out.print(" 年龄:" + a[i].getAge()); + System.out.println(" 成绩:" + a[i].getMark()); + + return a; + } + + } + System.out.println("系统中无此学生"); + return a; + }// 修改学生信息。 + + Stu[] delete(Stu a[], int count,Scanner scan) { + System.out.println("请输入要删除的学生学号:"); + String stuNum = scan.nextLine(); + for (int i = 0; i < count; i++) { + if (a[i].getStuNum().equals(stuNum)) { + for (int j = i + 1; j < count; j++) { + a[j - 1] = a[j]; + } + return a; + } + } + System.out.println("系统中无此学生"); + return a; + }// 删除学生信息 + + static Stu[] newArray(Stu a[]) { + Stu[] newArray = new Stu[a.length + a.length]; + for (int i = 0; i < a.length; i++) + newArray[i] = a[i]; + return newArray; + } +}// 数组扩容 + + +public class Stu { + private String stuNum ;//学生学号 + private String name;//学生姓名 + private String gender;//学生性别 + private int age;//学生年龄 + private int mark;//学生成绩 + + public Stu(String stuNum,String name,String gender,int age,int mark) { + this.stuNum = stuNum; + this.name = name; + this.gender = gender; + this.age = age; + this.mark = mark; + }//构造方法 + + public String getStuNum() { + return stuNum; + } + public void setStuNum(String stuNum) { + this.stuNum = stuNum; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getGender() { + return gender; + } + public void setGender(String gender) { + if(gender != "男"&&gender != "女") { + System.out.println("输入有误,重新操作"); + return ; + } + + this.gender = gender; + } + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public int getMark() { + return mark; + } + public void setMark(int mark) { + this.mark = mark; + } + +} +``` + +### 思路过程: + +简单的学生信息管理系统,通过键盘选择操作进行添加学生(学号,姓名,性别,年龄,成绩)的信息,通过数组存储,同时可以进行查询某个或全体学生信息,修改学生信息,删除学生信息的操作。 + +到手了需求先来分析一下。要码出这样一个系统,首先我们对整个程序进行分解。 + +在一个程序中,我们总能把一个大的程序分解成多个小程序,从而将求解整体问题分解为求解部分问题,然后在进行汇总。 + + +首先我们需要定义一下我们的**学生类**。如下 + +```java +public class Stu { + private String stuNum ;//学生学号 + private String name;//学生姓名 + private String gender;//学生性别 + private int age;//学生年龄 + private int mark;//学生成绩 + + public Stu(String stuNum,String name,String gender,int age,int mark) { + this.stuNum = stuNum; + this.name = name; + this.gender = gender; + this.age = age; + this.mark = mark; + }//构造方法 + + public String getStuNum() { + return stuNum; + } + public void setStuNum(String stuNum) { + this.stuNum = stuNum; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getGender() { + return gender; + } + public void setGender(String gender) { + this.gender = gender; + } + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public int getMark() { + return mark; + } + public void setMark(int mark) { + this.mark = mark; + } + +} +``` + +在如上的Stu类中定义了5种不同类型的私有型变量,用于记录学生的不同信息。同时定义了一个构造方法,和对私有变量的访问和修改方法。 + +好的,对象有了,可是我们现在没有对应的方法来操作他,那我们要对象干什么呢,先把他用数组放起来吧。 + +```java +public class Hw { + public static void main(String[] args) { + + Stu a[] = new Stu[100]; + a[0] = new Stu("84G0235","小雅","女",18,89); + int count = 1; +}} +``` + +好的,我们定义了一个100个长度类型为Stu类的数组,并对数组的第一个元素进行实例化操作。然后定义一个count的整形变量用来记录数组中有多少个被实例化的元素。 + +OK,安排妥当之后,我们来看看我们要对学生对象进行什么操作: + +显示所有学生信息,录入学生信息,查询学生信息,修改学生信息,删除学生信息。 + + + +我们来一个一个的实现他们,首先是 + + +### **显示所有学生信息:** + +```java + Stu [] putAllStu(Stu a[],int count) { + for(int i = 0 ;i < count;i++) { + System.out.print(i+1 +":"); + System.out.print("学号:"+a[i].getStuNum()); + System.out.print(" 姓名:"+a[i].getName()); + System.out.print(" 性别:"+a[i].getGender()); + System.out.print(" 年龄:"+a[i].getAge()); + System.out.println(" 成绩:"+a[i].getMark()); + + } + return a; + + } +``` + +OK,我们第一了一个叫putAllStu的方法,他有两个参数,一个是Stu类 类型的数组,一个是int型的变量,一个返回值,返回值的类型是一个Stu类 类型的数组。 + +如果要调用的话实际传入的是存放学生信息的数组和被实例化的元素个数,然后随着 i 的增加,输出所有的学生信息。 + + + +OK,我们来实现第二个功能: + + +### 录入学生信息 + +```java + Stu[] inPutStu(Stu a[], int count,Scanner scan) { + if (count == a.length) { + a = Hw.newArray(a); + } + + System.out.println("请输入录入学生学号:"); + String newStuNum = scan.next().trim(); + + System.out.println("请输入录入学生姓名:"); + String newName = scan.next().trim(); + + System.out.println("请输入录入学生性别:"); + String newGender = scan.next().trim(); + while (true) { + if (newGender.equals("男") || newGender.equals("女")) { + break; + } else { + System.out.println("输入有误,重新输入"); + newGender = scan.next(); + } + + } + + System.out.println("请输入录入学生年龄:"); + int newAge = scan.nextInt(); + + System.out.println("请输入录入学生成绩:"); + int newMake = scan.nextInt(); + + a[count] = new Stu(newStuNum, newName, newGender, newAge, newMake); + + return a; + }// 录入学生信息。 +``` + + 这个方法的参数调用同上一个函数,根据提示依次输入要录入的学生信息,然后实例化数组元素,返回实例化后的数组,注意这里count(数组中被实例化的个数)的值应该加一 的,但是由于我们返回了数组,所以count+1 的步骤我们放在主函数里面进行实现。 + + + +OK,我们来实现第三个功能。 + + +### 查询学生信息 + +```java +void selectStu(Stu a[],int count, Scanner scan) { + + System.out.println("请输入要查找的学生姓名:"); + String name = scan.next(); + for(int i = 0 ;i < count;i++) { + if(a[i].getName().equals(name)) { + + System.out.print("学号:"+a[i].getStuNum()); + System.out.print(" 姓名:"+a[i].getName()); + System.out.print(" 性别:"+a[i].getGender()); + System.out.print(" 年龄:"+a[i].getAge()); + System.out.print(" 成绩:"+a[i].getMark()); + System.out.println(" 在系统中的位置为:"+i); + + return ; + } + } + System.out.println("查无此人"); + return ; + }// 查找学生信息。 +``` + +这里我采用了根据学生姓名查找学生信息的方法,根据学号的方法实现类似,就不写了。这里我们让用户输入学生姓名,采用a[i].getName().equals(name) 的方法判断他们是否相等。这一部分在一开始实现的时候发现,String 类型的变量不能直接采用==和 学生类里面的元素进行比较,后百度得到 equals() 方法。 + +这里小结一下 == 和 equals() 的区别。== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象,比较的是指针操作。equals单纯的用来比较的是两个对象的内容是否相等。 + + + +OK,我们来实现第四个功能, + + +### 修改学生信息 + +```java +Stu [] reSetStu(Stu a[],int count, Scanner scan) { + + System.out.println("请输入要修改的学生学号:"); + String stuNum = scan.next(); + for(int i = 0 ;i < count;i++) { + if(a[i].getStuNum().equals(stuNum)) { + + System.out.println("您将要修改的学生信息如下:"); + System.out.print("学号:"+a[i].getStuNum()); + System.out.print(" 姓名:"+a[i].getName()); + System.out.print(" 性别:"+a[i].getGender()); + System.out.print(" 年龄:"+a[i].getAge()); + System.out.println(" 成绩:"+a[i].getMark()); + + System.out.println("请选择您要修改的项目,输入0退出"); + System.out.println("1.学号:"); + System.out.println("2.姓名:"); + System.out.println("3.性别:"); + System.out.println("4.年龄:"); + System.out.println("5.成绩:"); + + int flag = 1;//立旗子,如果为零退出修改 + while (flag!=0) { + flag = scan.nextInt(); + switch(flag) { + case 1: + System.out.println("请输入新的信息"); + String newStuNum = scan.next(); + a[i].setStuNum(newStuNum); + break; + case 2: + System.out.println("请输入新的信息"); + String newName = scan.next(); + a[i].setStuNum(newName); + break; + case 3: + System.out.println("请输入新的信息"); + String newGender = scan.next(); + while(true) { + if(newGender.equals("男") || newGender.equals("女")) { + break; + }else { + System.out.println("输入有误,重新输入"); + newGender = scan.next(); + } + } + a[i].setStuNum(newGender); + break; + case 4: + System.out.println("请输入新的信息"); + int newAge = scan.nextInt(); + a[i].setAge(newAge); + break; + case 5: + System.out.println("请输入新的信息"); + int newMark = scan.nextInt(); + a[i].setMark(newMark); + break; + default: + System.out.println("请输入正确数字"); + } + System.out.println("请继续选择您要修改的项目,输入0退出"); + } + + System.out.println("您修改后的学生信息如下:"); + System.out.print("学号:"+a[i].getStuNum()); + System.out.print(" 姓名:"+a[i].getName()); + System.out.print(" 性别:"+a[i].getGender()); + System.out.print(" 年龄:"+a[i].getAge()); + System.out.println(" 成绩:"+a[i].getMark()); + + return a; + } + + } + System.out.println("系统中无此学生"); + return a; + }// 修改学生信息。 +``` + +在这个方法中设置的是根据学号来修改学生信息,我们先让他打印了一遍原来的学生信息。然后打印了一个菜单让用户根据菜单上的数字选择要修改的信息,调用类中的set方法进行修改,可以重复进行修改,输入0退出。然后再输出修改后的信息。返回修改后的数组。 + +OK,最后一个功能, + +### 删除学生信息 + +```java + Stu [] delete(Stu a[],int count, Scanner scan) { + + System.out.println("请输入要删除的学生学号:"); + String stuNum = scan.next(); + for(int i = 0 ;i < count;i++) { + if(a[i].getStuNum().equals(stuNum)) { + for(int j = i+1;j< count ;j++) { + a[j-1]=a[j]; + + } + return a; + + } + } + System.out.println("系统中无此学生"); + return a; + + } +``` + +在这里我选择了使用查找学生学号的方式进行找到需要删除的学生信息位置,然后让其后面的数组元素前移。这里也应该有一个count--,在主方法里会实现。 + + + +OK,至此我们的所有功能都实现完了。 + +emm但还是有些问题,我在前面定义了一个100长度的数组来存放信息。但是如果我要存更多的学生信息呢? + +```java +static Stu [] newArray(Stu a[]) { + Stu [] newArray = new Stu[a.length+a.length]; + for(int i = 0 ;i < a.length ; i++) + newArray[i] = a[i] ; + return newArray; + } +}//数组扩容 +``` + + OK,我们把a数组里面的信息复制到一个是a数组长度的两倍的数组里面,并返回新数组。我们把他放到 inPutStu 方法里面。在方法的开始判断数组中的被实例化的元素个数是否等于数组的长度本身如果存放学生信息 的数组满了 就调用 newArray 方法对数组扩容。 + +我们还需要一个菜单来引导用户进行操作。 + +```java +void putMenu() { + System.out.println("<————————————————————>"); + System.out.println("请输入你所要操作的项目标号"); + System.out.println("1.显示所有学生信息"); + System.out.println("2.录入学生信息"); + System.out.println("3.查询学生信息"); + System.out.println("4.修改学生信息"); + System.out.println("5.删除学生信息"); + System.out.println("0.退出系统"); + } +``` + +好的,基本上该有的模块我们都有了。下面我们需要把他们糅合在一起,开始拼图。 + +```java +public class Hw { + public static void main(String[] args) { + int count = 1; + int redFlag = 1; + Stu a[] = new Stu[1]; + a[0] = new Stu("84G0235","小雅","女",18,89); + + Scanner scan = new Scanner(System.in); + Hw test = new Hw(); + System.out.println("欢迎来到学生信息管理系统"); + while(redFlag==1) { + test.putMenu(); + int data0 = scan.nextInt(); + switch(data0) { + case 0: + redFlag = 0; + break; + case 1: + test.putAllStu(a, count); + break; + case 2: + a = test.inPutStu(a, count, scan); + count++; + break; + case 3: + test.selectStu(a, count, scan); + break; + case 4: + a = test.reSetStu(a, count,scan); + break; + case 5: + a = test.delete(a, count,scan); + count--; + break; + } + + } + + } +``` + +在完善的主方法里面,我们定义了一个颜色更加鲜艳的旗子用来实现用户的循环操作。当在菜单页面输入的数字为0时,redflag就为0,这时系统结束。在每一次的循环中都打印出菜单和等待用户输入操作对应的数字。 \ No newline at end of file diff --git "a/07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.1.png" "b/07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.1.png" new file mode 100644 index 0000000000000000000000000000000000000000..0f2d1ffbea081bc38ec239e11cae10b4b4feeedd GIT binary patch literal 123023 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%0AL8Uv6{M6&D- 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%0A4TDth2t zP()<(q12x!tM*fjAY2Szk)n?=kxv(8*VpwJHv2Z1C4)SW{cFNJmSP9V-kC;o&J0ZM zHJ8V$+~chsTySFu@|-FzF7vN(y%2kzdWbzuX8a+wr@l8M5r~2kmgMC0XX#XU{&j-caNW;VGr0#8(GGTR7z|KN0?v z!x+Z9vi6*DcavU7dA|5$MxTn8ij~CI`23zOQ)qTp{;W5S zR7#ge_v>kA2Jd{VZr(w9;pqD!5SzT8zm1#9A-du+UNa_2%>5l)>f-Jhby3JZB{>el zUs^w;LQUaIsvSM6;}&|Xhu_e8yRi{r36za7=G0*IqoZ4?{|4#Ka%JKc3)B=T|HzXo zB8x9yECpHIvR-0{W^>TeS*`51#T%F=>6k|7AQ=|K?tql`+fBe_Xq=8|6nJEIUZJ)q zrhH#YaU+VzeEN&IAPdgh8PY8$wiau8vY?wF#Lka8YRSzR7j7apD3*eomO)I3eFRpn`K)9~aOi@%7ZAJdTw zS6gT4^f_f(FGP%lm3o(fuY~}D&Tpn=gM}VGpN;cQAb8(Wl#oA^KoET5fiY2cT?R>+ z@)AqonTJ1Q$}EzcfF$#qQd2`F-&Ec0o0Eu;{TsS-%niWX4nn4S5Gt-dQ~;AX(KwlO zzP;D6Vijp^q0h$7uT0i0@b^WA|9^SFzogzj_wRqlnQqOS>5kw(mX-XTcvt`zGfe#W z#72BvR&LD+a3xsSeP#8^uD5WEo8s@~J!K4$4vvk*FunMCdVUeqbcZCl0pz6QF~Tzu z-H2R3)vsCn1#U+a^-hDNk~g+NU@CXlGh;cqu~>6rSEoW6p_K(+_S=uf|M#O`G^SB} zee#5u#FtrtHv@dy+KTz@wf+0&j^J(P_V1tOvcI*T=$z1fU!MrH;uzdm%c4}Ok{Dnm zW!2q@{UYRx$F2Ed9EP5cjeC-cZ z36UIP6tfyC^trdQjzE=F?<8|XdJr8QXO`HV!H#B@0{U2T8*MGtEb|2<%$X{KZBu^m zm*P5uRk9B~;UsL43zgD?c1?MXIW2_VlibYmkQ%pU zm<32|YF*E2XeLRin(yeg9%_ty!1`IjhL+n9{l-W!{{uBi@_j8%>;Oy2q}>A%(E&FC z!Gq3MY`@5JKGnJDH%zg=I^-p=D+~WkosvlXNWlz-Ie#Jkn?PCsqmm-ya}NXUQftOY zSHnes*XcPV{@~>h-j)NOzT|Lzb=I+i9iA6a$FW~PEGyELn3Tk>I;1&)?VVe6B(d+* zUxyQ&6T82BspoZuDJWCIhR!rF9#1O&lrzqBvX3Alna@Pjt<3mYrND_ov5WrBv)} zlSC?GLC_=nJC7w+7*m)nU0r)DXUr+HgC9|nk|eP@vo-vHj77=dVzHZkV87512C94h(-jzn+M4}#Nfv@|Yg*!H4ruA|)aTnKVxI5DI`aLHIq_`}d z(eimN(fgZCiT;fEaHod((>L@I+{n)6B^A}sVG%v0;sbY}(d~MMvlj`(5iMKS1{m`8 zm#3#SD5-lOSR#5=c2F+T2XbphM*&D}LWL3uHun4%*ysbwvc}}Ecg!Cm$J>e!t`L6) zWZ0&+to7&8Vmw-WuvLuQB?i_C*4$Nn^VDi^Sc$}w^u9 zx;*J(YsP7;DVOw#YdaeuawZ9X-SvQoRR)_EQwT|t2Vb`vj(`B^MF+MbdrInF3z4|V z3caYpwcqKon##)Mr#EJwKbv8p84X0XpA#H8(ye=5Ewp z>-}5jcjusB9;2rPPe&}xphoHG!l-uk!5c~`L(varLzYtquSJvU zcwqqbcAOThh3mN^6TIV=G) zQYq(?Lw*I&Gqe4|ZETX^==d%0BP-qWjNA8|DUZsHynI|eQI ziY=c{IdpFgV=v??XXIO5f^vB{ax`>jrG@*tAmFS!CDk{(amD$ol0i*T%BP`M83n{8 z*30QiYo|X;4h9@r39@~QS`!R|@8xj3uSUJe(h0va5|u_V^fQlcflK!QubksD8TB#* zSJh@@w=0^xqfulgXIe;3PSsj`m;Ys`5sAW-WEh!bGc8Zbcy~=8G8vk|rme8F)ij}V1P#ILus=;hUyB+@m3h+REPf-VuUGLzOF8}Q*iftDSJ$ukkSiuHGv|JPM7yqqppZyCF)wH>~FmOIr zz3GMy>}MNFiH7K#-|RT2o|f!fA~RL`5RzoAxo42PuiLx=c+KKI+^MmxBcE9oZo-qy z|6rii*5bQk&U$0iQ+*fWEONc_4}0mTek4408W34xHpPf!Hx1TIUghL8Q^l^za8^em zgwvJL(S$JI|98;|2#EhoM6%_X$Qae)v%@%fZYx!JOl@t~oc&clx^4fwPrr8&qJ5Ae z(fD^;q+K4H#4h%|kSK7jy8$Xbu*Q%QB9o_eBtBs6tH?_f6_u|Yu1vi^`jjTko|xbW zuLk=9%N)MG>et$X0wHs#G68Zq4Y@*5efRX5&mWM1+2G+x+&CakEZ11WR ziJFGF44V}yUHkAtG0YHcag!Cif|wQ?9;bI84x?a1V$Q6`H|MFfZF#u%Y|bKl=y-UQ zaUvN>LiBMIO3lSrJ!-=5Mq@Dk40fi9&Pn_?9t6dXWXAn!Ztvlt;7CkJ3H+%Mt0ocB zZb`%+pZ27y{lu}SrYV$Z!>llVvBbyDZdm*t9MtQRk> zKL`9c#hL!X$mGs_CTTUbbkQnPPiphN>l0y^&usqIpA)r?jW9_uuS34ae&*ImgM&;D z9z`;m$u@Ry%@VSt)c(*6`|S{>wT(RS^$8mvfI*L1Su{|OMa@-<9yoU`Sru_0Wtk;+ zygNQ)*uqny3OKfCLSk?a0!%E#Ce*R##H+rq@baNXFl{OuqQhP8XU<@}()d5imYS=h z{Jr3ty8h?SBdJzucLNhPQuc}O51f{nY%)R^3Wx$R-nS$9m}yJi+TPhqqF38Y^ zw`gKIk}4tC+^p9kV;RQ=5sgZj7)G98p-=IKgSNk-l3BoyqAns%*uc#*waU^`t}thy z>?xagY1C|JM2?b>Z^lYNSgM7a|5&^!T$A=LW5XWR!mgo6^5i$gT5m}kme6)f^uR2S zq3TB~cfdKw)~pQ{_-@D{+aqhnS0R?@FBCnDgwej;eKFQK0kbOUJobr@MyasC%6*45 zSoWX*BMlWh(qC2g?)|Nb`@#~)luR}ZvC+V^e%HubLuipKY_D%D3C%`E|@nG+=T;C~z{Vo$iyBHXf9i09IGm;IIa%;dU(NjwM3P7b=zQiW@A0}3`{_}R0s>ZP;lw)J*452k{2j>8Jskd_8; zEFN(yL`LZ8`191qOCJ_`o)y?R@?jz%FtIEr5~rwa=unpOgNB!A{uCGiu@~#l)xGky zv1ZIO?PXZ<5h~N+)6_FzgCe8bfde)Vj`7ooNZn??J0OJ7_4)*5F4_KRI|oftJp@B3 zDbO*~4jTGpw!C2n%1(v~?!>$-+nBt^TGX^%ToeXt)*iy!0w&yX+!S^F3Wu5;uC!HY zx|fC@%7k4}f}RPUc7x&2L?=c3$8Zf2^<`p8EXVQ*znBHT{lb1M14Y4iq`pVTXEfQc z-@ib25fSHn$e{>jYelmtfmf!XQt7e}E_afHvR08`>d=c(x0LS90`Je3G3L_3DBpIV zYR@?KW<0SXwX!U5-}duO1=rHU!vxJ+z!wQf$=ar>9fm(<0f~|vT0Zg0{qg_WzFgF4 zX^Q=?;mS$wDW8RVk2eQ|?vps|ci>>CmkcsF&-<+N*(G=xN3)ta zkIUM6_#At@7%q4$f3n5!+?|^Cz-wRn{K|(&qDNwix>|7TCwyItefbCF@MWMj!vNE+ zFRXhhXT%!k?$3AC$oKWN4{w%>Dbq1do7u%RS|$UckM zNXf{Wi6621$!8bXi|BaDsT`)J>u@+$qn7l2jgPI-m`C2;rUp>$&h#ExOLt2 z@eNv#^SvPfgEfjcVGsMaJ1h6#uFL^#cP{*SDhnF$w={99CHCSrmz7nQ+s@HFLrm+? z%nb4c?MB(xDe#~dZ`38dp!;i7F0cIqtK`tSH_t5g2qEVzfuNH4SS>TmleXsUdv z$GJQ*uGQvF74XN><)JBEp;PPN$%1&n752gX`*jB?$fd-jf??|e@srOie~ySxon5d_ zf9Sk*_IM*c&*t|V(mTaIiCI%rddD>>VC1LNC3^44JvhgCIwzCgNMUV|53SUp zrY~|mVi^;An%{4$&*jA?>*g7LdAJGE+!4FA zf%@HuKjDQXPss4YHaY4sRfO=pG9CQ`aUvP0QKvAf3ydQD>D&!!w335kDTg7L%M73U z$WLV)YX+eLclrb^`PBzPHl8=bPc}Q%mmG+?)wSgr*7T~ztFHYJ8W}=dY4Kk_WV_XP$pHNy;-|Gp z9k))2Agrg1=!v5eywYEKG@NNV8zqZ+GF8P^P|@sy0!`kOkcKd$(h5AG>ad6RVJqhHbCdC7 zUCCToDYngH-Npy!)mU6qc%hPenU&_8=utcm94G|dZ}=h*5PV@UHpCyf}k z3I&P6E}H+H1@MM`YFKKn!tIanB$V8n@%L9v84k5<7@-f26rG(Zo_(iEaulYCQ|IuX z4>|Mz+?=mx{HJkAxl?0{7h+-Du6`7h#)gNx zL6FKu3TMhDy*Dd4VsYt*t~`1Dgb#7v)^y`NJkZgtfAY1lZpxk_k(TjhgU08Ms{391 zkpS$2zR1b+DE-$S`D(Q67em9s+Xfa%5|Ql{SuK-!*iW?f+C#lJV2<~^*KmsIZ-^zt z2bKC7tItm987|KrbY%+xCL9LZ#G~JRei0lzp3j6+Gdymu%cl~J0sW#O&r}E#dvQ-@ z;!U%LK-r@{C^CFAWXE2Wush~K(l#_T4vvq(NQm8>@ccz`JjYAk8Y&e>7pr*$aw@)rQ43@Ki?TI?-V&RK$f&DQgB)rk>Lf}}cdXbX zHSHZfOcl;jk*{yI?}p1z2(;%zwY8-kKXy$aBuX=3A)7LFD65uBzDrGX50EmBz2BPX ztm4!gAE1^bIf~zTi=Ac4A(j;*@@TWUvXW{v^TFtvfH2{3YG^F%v!0AB+7LISRNyfL z6O}&viWnCb-gNgr%y%ZjPumBWmNjZ}495%Ag-+CkWkubi-PxEgpX0yHDZ2Kn0<&4Y zNRjH~qL@rXk9^?kl(SNvl4=q_72q4~sM+A7m15UlAS^J@g-x&SzkA{HFtGuS?9I*V z8{Ray=VyUt>kzx(-4@|}MC@bq(Ag+ye= zsVS16LkZs;$9tqO-! z>*ZqGxL>ypa&wYE(mbRM;H_7QdZ&2iyAF8rDt%bhopp?Y=r!2Q!n4*c!%sPW za5CtV7d`^m0h3}d8 zRj&aUky74@SY&N{N^b+}slbpet8hRwY&rZbE^~f!b-JY;BF|ZZAd-A|B6W=}W7rsM zUMqKg1=1CqfIW>?Ckk)^G{1Diz{+XAZ=s%?nWUeFTF%37xrV#-w^zJ64m-b^uO|e2 zJ4a^X;D?RUqS*Av5KUBCZ0N)%$ow>y(0y116I=_=pY5l~82C)BB7%+Y*+NpM( zz@hjHFBd~2F|@;>*4UiP9S|Auga7S|bny13{a7H^3Z)U1=Ge>DgdvIiCHLfX{_uM3 zGW#4TUaE}xoQwA+oBQj0(LWSc;!uw@tiPmOCJq@>$*7||mJMs#RF##CJ0C#pQWIC~ z{r)i{1Z4=JU#LvRMZw%^jUPv0qt&!I9z1UEqajSc#Azsv> zpy0~l4W+8ey~<^}YZQr(9ZD4+F?ANBH4J)pF&dq_<8^}Vf#}3(g;V!IybU*zHMT#S z@`&#Oj55>}qhiG@bIBf-X2y-4DN>VC6=4->9f`^)^_GR)+cIEh^ z*_o>4*TsAqK%71X(e0Af+fv;9#X-Zk#;?oc*X=g}c=SQx2BvC0r!IxYhMo0IGz}Fm zT{qbl7B2!~@6xy`C`8|62g$x|!S3D%Onht>oY{y6w=-Mw*339J;;g6Hm~SgIA*R zO7tW9KR|aJp@Wp~$#FaWQ2SU^u56L3Oh)qTYU)Q8K2>Vaby$rpZDFL)To|=`avZjr zb*(Wl;+7zV^6T9}L~d*zMQ<)89^>A?%KHv5>XQRhAS501Pa(sWjb5Ev#I9tfMu&yrIPGHC(SM*sdkdK=O4VQ7?Fms$C zXr=%D-DE6Rtbco|)b~eu>1n-U+viQ^;Ec^AIb1(Dq;E9+%&h) z{{)db43+XhM%***K?dcS?TGHlaYRrNlI`vFEzSmK50gAuOk6%KN<}MfA}@w2Fi3mO zs4k2p`f{g za#M7j6p|3O8L}B_EyK{El8QE^ex@8@%_&YGNd}SiV4hOfFIfrXzyIanf0QHu5Xl{nyJa4om{;Kk^vpWs^gsa<^JY2_d@ ztUbGj5EC0New;pF(~vrB&B@7$6V(lrcy>O3UN$gxWf+Vae#Am5AShVy&ZZbld6Pu4 zBge^bFdng`z>4)XxzjTtpPHHJPYOI?{{3?f4Ap9B z(x}sC$yN2(7@ z=!5Psd0SidNxM{wx&dr@|BitHocZ@pOIup98ykiECF!|FM@A;VJzpPAw|8<{i!;4s z;<^WiBl!8loaeRm^cw7^*uc{&mxT$#!oo(z#y)-i35bv4VOcess~K9_3&83oWs zpmV#QTK3z9BME45u)?aexzk1be#5V>u0}>i4o3LL!P)(8hhM*b9fB6y_dvy)%>R7Y z6kKN{*lTZwTlO6SFJ(u!$y}Fk&yM!HYQDwFg&IVJ3|-$ME*Er_0;6|4cC6V})%^EzAnMnn-;+5D^3c%${Ge|cZZLIXhSv44REhDtFw7^ZT zW1%H%@IAJvsI0WNvjf9-fv6~>$@6Vi$pd#^{A|WvmOx58~c=&M8rUATk4~QgW z+2;91&dnJB3GETEAV5;p%*!hcG{e5)w;ijs+Z@Yv`reu;Qvk$;P{3+9%{L}|_#pcA z>sNgNup7a+IsOkHK7dY9OR(bxy1LMgkB`Ajfse5CVbD36JZR-=oUWF=+A)BWBULKm zudfA{uEW{3e^i{Wk1@WQ7Wk)eqg3h(gg|=JW_Gq*-*dfw zfMR(_cqVhaWA1^9XeI7h$1gKRq7)7n_oG-F?oIciACzxd38=}cM5+Z7hXvDcl{nI@ z9=~`pAxzk=YmI%xIzTQ620J71;;@0yLP}M0S5CI4z>l?>va;ys{(0R|L=CmI(g@1e zK(&Y!++Jm6<>Hd|-edi`hT^Or9`^>VmyIGxAi&xyVGxTU{; z&f%e(3vgPXw;f39f;dJbaY9T+Mn)^@d23}r#0~hX95L@i@JlVrKiU(0V6CU7ra;H| zRF!Fa9_X6ZvEriw780)+>mv@1z;@Te1GRwv15dK6#*L8avEaQ7l=8NmcRhN&QGH(^ z>U-43i~JI-)K2F)At>HK%8cOtHI%b*X>Jp0dLC;riM`+L-B#^;LGVb$k&sqhTQ}5R zMhO4SjsEe_`{l#Mki`Iv!!G<-`TdXhWR_XXQRZH{Q(rIx+nI>}&UvXKxu0I-v&~d| zKPdF{P{Tz&A~?+}enWSp@t1IaQlVO&dGc6@+A ziM7*jHN=FZKI1TH3-ws%d(Ea_0s%FHP(AKd3OwOs54(Arm|RsYI$9Yu z6@cy>Io87TF>E$Fo^>EP>%m_EMre3!Sz!$+HCF*|fn7~#9GR=NQG@1f)`Q?1F(x4B zoFKkm{uITwfsI02AInk6@sYLQIp3MGdaQMKLslJhR%jT+V154cmu$J%)dsq-Zr3L% zgEGzW{}_ZaaHE2Pfdylr$?1g-UOo$oc(Zh$>w&Qu$=H?+` z*hHFITHQ~F*49|ST#BHiRpDFzz>f5P3F7NsiGDc!mAYj*V7W^RjUp}kI|KyZ^Yf$I zj@xk?V-zoWn`%4lm>YN}G0{dIZ-UOCgRmKaBniUFvX!e-!So9TO;pos382)=nfA6? z?~?t7PtbT5FdM~+!&U+K<&%_>` zXW&P`l71K2y2CkchNaXKdkVDW)Oc!p?Ce+oL#Y4*ySh=u*FAJ3`>E#hUw#XZHa)hM zNnFofNfR?u$Qn=}wS7TD{x-kW%`dU7N%J(j`A8W;3GtX)4ziY>vj}lF)C{G9RNWNw z7p~nSSZG?;epoOjDn6Pdj=mWzaL0%Gd&}!)1V&@`xP4mckUFPK`2gP(T03U!J2w|d zpwCG6v(DqDzA3Z$7l2@7?kVkBK_!dpjh16tI|e5mvB6+t7B1@s&;ie$iA363ScC$< z>?$Vaz4sc-zvz{T%^ zR14q^Vq$QA?CgLpD-c9rP%u83G_Ds+vD1euz@T8{al?Qc?c3>-lapEyN?ce0`kkIu z5Y4rD{ya;oR29s;Q26oVhkojyRg?cY-<$Sp(amwBts;1WnOU$jL-3|=j#N+{fWR+9 zLQs#+#ZN1=IVWdkqMYYhQWRr*nJSl0yZ64uN)!M7sRJSEE`CgH?P@qzW#dXbB&5x5 z-cM*}rwzc9nH^;;=77!83MS~y$LpRj+CwkSuf8kfDa|)n@2|=)jYOSvBh9Lj#Mv?UT`B*T!YeD_?9 zTaQa8yHgf)7~(UPEp)Vj2H|ND88_9-KPj2PI{!poXWJ3tg~aswS)$ zs7Ca=0pu)x@v}i&SGRru0f7$#Qz%Nc7z6?}J(EQbMcmhLo;ZS)2RaKNikO3KJr1rT!rJE=fM{N(i4JABxhfd9DDN37X;0*mKqY=Q)lxLR83uwdiJ?aC}URskUy;lcy)+fy9NnmqnD)}x;( zF}e}ipVr*}>dMx6rP^C4Foid|^yVV_C5_|0Oe>t!vEz7quU6JNo6Y6`<=RgZdo3% z`v)WN?+6E83J0A$3e1j)aIs}&WoCoD zad*!9gDxNL=@=W|4LVN`irMr9U=t{Jjh7ay2Uluknc=)tM5xqI(S+TsF8anNhAtA_ z%>|lOJ;H15>YSZxEEr)gsxm?9Bf@`D-9ru>FQ<-* zs-C%adS+TSb*(t61a~f7dCYmRCiX{>g08iKY!r-HT2h3U{}%}`^4vXD!fBQsz50lf!GSw!tG5qin0uP&YfDi z=iw7=R~Ym2ylAK(?YVzX19$XS?K>TkL$1At0yu-Po^AxvcC=T9n9%Jp9wLCaGWZY6 z&+qxOMsE%>t8kIHlf)yLfX#w{BvqLVPXC$J+yh_yt%(NtgJ`vp71WY<3XTaoA3)4@ z5Kau+^j#PP5tTmZlDEVjq%u8w-&$~^y5SrYaUiz=UE;kK$zV$szGI_^1DcW)Kym63 zfPQfl6cm(q?^**i4)zp?uyMd`+dDW|fCm6x2hB@y?#;CP{QPo78gxOIZhigzlTU!` zAr{DzKtdoOB&4aQ2mCJJC%`FL;9J2@0{O18dE zuMY5xFf-!R(8qTKGclWdP)ls{3s8TH7s4n6(XZ6up}V(ItvHN(5$0wJmS^w1RwXYW zaoWQ1$;vC0mDVxs6?j29G9&p#IU)qO0|{QTg*vI zl@%7O)>&usVy>rBky?7=Ow0yhK^}KN_&=2cQzJ3H&S(WL%P$-3)!RLk_1d`Q0f(+;T7-^){L*3AY=X*`f1dnMy?O!S z%)d+;rKm7;>Gxf^_fPwkSk!OTlP^VeBF!zywEGxLSF-vzx61gp>?0qkA1abNs~AUE zST?XxZ)D}uS6C1exQ|0HRbIs!RkA@*W>!Tb(b|bBEMn6fdN-bzC2;M%7Ddbcny(&O z-z~WN>qUI1wQFt#j+0A>J_f~+ktMYmH7I;jFP(Bcc{!1%Euh00u8&VaRO>G}4iafF zG37p3r7!NrclzC$at8+$zXx78e`sj|ma(D$02)}oW+NLHmqd@vvB@uAdh;awX5Ts9 zNwcoIjSfOWeZZRoAvFs{z)Ju#85ti3dawORprV-kh=r1xdSyM`v_v1yCn7Rf`KB$_ zdH(Voc_VV46N=Y*G{j|B4LZN?02K;$x}=6Dhdw#EV%{sK7hsN6VR3N;2>W3UUKHPb z&2pOOIr?0h9|>yF71HPEU~wRURapG?ylHvjngB+JRgE?os|#eqUvOb zDa~WL?jc+9H7bG*2>`!;6}>mB___uAEmk!+4gh$?DLIbbT>Th~y4;p%uhZaZxJF3~ zpNh-coAQD^$DqjH;uBfcN^S|7a82+yE`y4WXo@W680W$*%u4kT}2P<(r^+7j*kx@|~ z*jsA^1V~)`-d$ZylG<1sOz~f(Sp@QJz*}s4W{qawFM8MKMoSCoYqb3j922Iq{EAb% zZo@ZNTw+W#buDyuHEAzY+J_BK+bsgbetswT^$UzGL@-c>et3=()v+J-Rg{uCyiQ}b z30LwazObCiYfl>^%*c{*>G**TdHCP40?~f?AhS`AM3tm>l)pUzl4X`vm8OYjZD3|l zMcysYDPVvPPHEVO+SgNq%^D~L##u1%Ln6!%$~BeDIYBfHza5siw5dEDZVtP|sP}1ORt7FMlK^a7homgxTVEL zUlbJj8b!GW+Pw!CSAcL-P*89+z612PAn1qqoeZBpb5c+Ulvge_EKNRKjtPrp&4i4M zf-2S5X<0bdHOlAdu4euhc_HXYT#`4wvkiK61C0gRp+>qzf&xMuq`3dq{cgeQnR2~P z@cOYY_=K~*`)#0W)I!i`rdS{Ta(KN7e61W|H?;Xi-#^=><<-^J#pma~-~EqOz+$?0^A|n~n!T7&|65YQX^*>*u$2PeaePsVs%fJ9=F!_P8f|i2yb8uN%*?$l$VBDJA z*YQA{`|-m8fRu+I$s7b^lSsfH0YETWe*5t3=VCiDG7<}DEa2y;7aW;sDBQ{rCYgog@3Qs_lDv58rRu*${oMC!7FBRn#G|J&Hqz6YEdv$3&dAd#i&FxP{n2VmGb zE}h>`-nNTx`|j75zTf@!C1^pjkGMr0r4k3o17E!YvdIbNlnbf_>Sh)eX#H*(+1ZwZ ze|Lkt-W!u*Kq&$8`X!)<0MrDw;l~R|JusN^9uPO4d`Ms1)|O|*H~6iIdt^+88#}Rx z>TXD-UZ)3R3kn$-V&aW~zIwO}agr<(YD~CAziLL#=gXhOpYKb{7THXW2VzP631K4* z$!&oewvbEG&-|RLJX=B+_Iq+XrY2ZYj`L6;PBkyo`}?OVL!u;q)yWU4B>xsZ{xzzX zz36Zdv_wURZd01uuUSvs=$tZW1yr)DJb(Sr;Wqxz6M~Mt_4B8dBFIThZ~n~G!Q+1I z%p7;&-)anZCR{HOT?aEiOg#AXnCCVeUSD0z)mdWSrqAW&G49PH0C=;j<$(;j7R(g8 z%hP&*28iq1uo`p|0K7EVH@EbQU3H8c)4~`4!?y%8;Pa;h3^X}kf%;I7fXY~&#H}x> zho=EaP8(a>IS_Aw|MCBN-ju&=zJ^QC+(C$R~0zcvtO|ierDf9UFu!#o?XRWb0PSu3^a8JcIL@jydHS)|9b~+?}dMf zfp~tZrna{BtqI)L2?%M0I~)KXeVbwfZQV#~1NdB{GtE4hi#z%GGgPm}Xc>8Pjs%GO zR+$r%M#w3@q9Rsoduway&GnBrKHJ6VKAXATH~^zw1>W)>uT#6~;S`zR5bbb1V7TM% z@O%ORyg)X}=WIC&l#6U8fx4`$Nx&~1iZ5Tj)CF940e%!@&cwGK`}XgtCE!c;1NQyS z{3VsAtlohn3~24Q^?k&PTIMp<@L%VOy_lTFy7?7Ugwp%b&Mx?7uU+q7rsJOlkG_$r z_d%hG1gah6ey4lI&CQv=e|zb20bFJ~PItZW^ctvL2)O|L&M9E_Gi|>?M6vFUBmmih zuH#}`fTx!iX;ME>VEP9MCQ1CJi~}ADxK%(DP0r0Jf9tIjvs0Np8fdB5@yIUd>NF4~%g8b$GOc6x2pLPFSAPfqo-DYlV*z5tlg4ch4 zbYZ82fFKUS*?QpH#>P)yzYZmUlml$NSHKqSot@Xc0Hy^txiJNTGT7h$-_aO{b2fid zihu2X<$czFQwaawn#KQ4Y7morC!s*E82{fnD-*qiNcUu?Uhq)s#WSLgbNfo8Fnhp^M zEGdupA~lu1;jf@q1_g)zEHd8_7&HNz*heyQE1dIp3$8BcFYa`NOBF)^GjR^Ly^=zV7S3 zdhX+`nssigr#`G+DxaIt@9^-Ft%IHnoHUa6oz>L#@!3ItS*jj5_WrOH7K*x$dzS6> zKezX9NbbF9vCOQLL-x|1FM9rYXs1>TlGJ<0DAYO{X}WTNN>4T?UJ`G3I!d0y^B|f(I+C7)-IHHIk&%{qz$uYT_ zrnZ0l^b;ci&*bJNI8VBoL$MCEM+b26@Nn9+Y0B!%M5XM@Ds9RfCGe?dV33`kzaU&~ zs2};qLHmL)tp-d@<09oMJ>)xDf)M^6F%m#NQj}o;uOLGtL^pF4qXG_#t`2gqjj6%; z^XGx^dmWt|l0R2@)=*-;rf89EQmSlllrx;^><#biuYdSLkcsZl&tk^LI|jg5#Qzqq zp6Z19Y}@&0I_H7ek00!n24SF5S?K3C6b>v!PkFPS&$#aS+&g?Va=F7dgB& zDYScLc6RpdJ9k{_FPgJD)Gy4vWE99m`X0;W@j`|si9mljkkvFJzTA5_qDcX{DYUyS zY54HrUi3;h%R1`Vu@N*-1nD9#f`Z469YX_grArT`bhw5nL(kr1W*{dr8mIF^=U0j9 zdsg~z*l*mkBUtgHiw3Fm=s&L|ZMY6sNk@-vdRTcbti-E%V9%!bw(mYNl}NaIp~O*S z3xxcyoSdbcN5Z-0g&jZdqVhA8j7_R&BOzsxSWoSII9VB%4mB4~P%uXnIj4Uj(2Sb3 z&3QwNm%sl(m$a*RM+CXxtb_E!6PMh=^8l9<%Trkykb3KZW%2WJKim#oPZEpA57k{d zRwh*mp9$SQEE1w4$a(&YCk?%SePYtrH>4%Q)`ZyeFe+wun9LBn+f84kw_NP^{|SNR zJSSzCR-tj8AghTH-`=Ly;oUWwd9)_nv%TMUN^zM?r7BpwSe7Uqdc>Gx#>rfzDnp6y zHTDCypFBsIZzLA!_unm{yck?s@9i@POf~Bhi5D3N^6PIcEr`jpS*#1LD%Ci8mJnac zqO$}8idGhhR2i0nxZT?Ml2ja{sEJYEBwJDNe)!>sg|E6h&Eh%Gao(A4KF!(Bo(Py2 zqkxokKaR9xmdOnU&kP|6Yot^p!rODa{QgCAsLQ`^5~EIT2rI$KX_|W%%_$IxE>@J9 zWs^~~178{OC3)V$)^>5YVo+7k!W0*}vt3Ym`H=y`<8w z&YamNmn3s(NI5hG7PaVuk{rjB!E}LLi5R*&3sZlft(Rb-arTN~AOK~>_v>z_rXde@y1Y*G{DlT?91V&fFS#Ra6R0gNw{#(rfen9;u zDg@_A_u6-+J$W9Ylt~aE3#jAZwq}W9Gtj7JSk0+DFTMa`0HnHC-5p5LxG~(m+x8(v zsR+R?=41+66nmSXf$R zvH7EKqM2U3IzVXU8QNPnZ+=Xz6s6qT+lpM?(9i&MLCS*LD_2UysfG4%Uq<3$Yh1P= zrapRV(Y^8+byv0Rw`yz4e=R@$prxe=0exK>(71X>qY;&Ma`Km_PMIR9a(k3rzVnnE z)JNClf*UV$QJ{sfaf5<_xL<$Dj-ODDH3uu2j-EL2^`%RrfPOZuu!ddHw$n|cmBK;# zhd{fh&9%{`4auVI#-5PJpPcYHnG8^|%YSNx#fYk_-Qeg|BjDti`os?xwBSY0> zI8WjzYKBFR6X=@)D@O&HTHN&)KBHOLx&qIt#vhj0HL@6Vdm1j9i*_DGAmCjZY-37A zD7pyRs?1cGi9SCDMqrIuCK@Tybnx@W#0L)^BsbKrK|JXe*Dd+z zcq1b&hKw3Ds*C6wZyHA@YR5ZYlv!0qkAspz=wh@W7!AjAggm)EacfYJBuY6=!?gR$ zBmD|57wzs8L|Y;O8jjGmz!AjB@xU-Wl)|njWwbAER#!(?X|DyC5b6T-$r0q+Sg8u5 z5ad-TWe*=-k(MAsM3puS*k=!@2wjbCs#*ulhy_45FqH6%qNl>)plho#R;hK2fCi)@ zf81dV8*vP;(r$ps*VlXLo7ybczI_G~?1Kki*gpSd2)-D)xUPsddz})^TaoDK!p{LA zHg43d&OLhM2+f(m8E--0d~!yHmVp`W8SHK=lmE=jj1wrvn~A&tQ1I^I;RAgWE1K|N zfJ#+aKF5(ssHDKvwFSxn)c7Y)Za`6SMfi`1hzPzPHSt@Yk&??rUp~Csq*@{Esg-eJ?Xef&QKW(pA^c%^cgcsOGk%_7K+$;FaQ`twx>p_ z47+yCfr#2k2oOZBatBK90v;$JPjlVjqvHZ*09HN$U0cETJUm7k{kSW${J8DaF zwzd3Ret3!PLNXM`Bn$OOP97n@x}+%`%#0gur8w2>uWNx+O|!HNQ$#@WfIN_1tyAwW zm5fa+TdLp>-tm4cXBfzRXp2S)Jg&zDf*eV%;16$bDM1}d12{}~oYM{)Q)QT^d8C?b z3I;&u(gmpoL$IebC%naw)ujz%N5p24mC6NcNO%%#gV6m$ZS5zlS|cN_ftqiX`~*Zq=hRYieJ5K zfeZ@wOCV`o_y>*z8W`X616qePenpSK^Y0xUMWQ=%< zzLvkj;^^1u_$``iX8!%e%#v7kom?nJ>5$&Ld48kC&SK0ws!)IlbvL_y!T33{Ltn|r zb7V7En~#r=-uv$h&dPppjfstI{rjvIvGzXIfDxYsGYt|63tF9v!^$%bR>1f}=-TDA zhNS^$GHM+v2WD!0%QgOWK`*y-4AC0|H=$?{^Z;ulAJ}FR|0ojS}i_r-*34kTnmI;5IUa{MO0iyyenEg zv*zObr&H~uBV?dWI1TLo9w-qV9WB&R`X=f9zwF0C!>tZ4PE}}bVpOSo^vJ9jo$xo5 z17^IiGfgXo=tsJn zOD^a7kcr@ff6etFh9K7bI_JP_u4cAYI35nZxFMYjDFxM6v0h|%!4i1rg1HFyEq|f# ze_dpM;g5W^L`rljb}{3Gb02 z`bWc6XP?32-8?-x=G|&U67w0R({H+#YFbXg+9ySc}&Zhw4 z3SU00#xu=Hfy~<7u7B{rf*O#;059qQtMDYItL-_-BRoA1> z>>5@ebc34(1v5#9c`_OM8z*rIOcJ?Wc<<>GETw{?A*R;Zek0e10)XJ_bOPz`&cbR2ak{5C>M^ka|Q7#4G_<)Hv@Nd*~~v+;h8Nf{?*?@BPRefDPv*PUZMC38$aK?nO5>L^F;Rp{#Jj3tUhC_QaghN5`7L{PqSA}8mfzYe5!ZS z#cCZcxF1%e9FSS%1VB8lFX0}bPdCcn@w1bUgKfYGay545uRP7$Xh?{FYpbwZf+B)? zNCJi|?7Y-#PF+Nk1L44IqwenJ zHYTZp0A^=({hn%hbrruS$$1WJLa;BBI>1DSL?06-(|JbRQ~VFe|99)joup(le=DvR2Sy0=EH z=C1);n2c0)nDG-$Z6>pK{>N79a-7-ZH-Rg3Mhs);rCE~=G}4Utcm5I^z2Q^Y9Fp*r z@IR4~m*s4%lmm2;2BSYnEJHX#L1FmAbR=AtcV5X|U&2huBhWjh*Swcuq%$B`dp?hC zf>y9>f=u8~ad&%W*FXJ2OL`UwjmD<^_OcLIK9QRK;>C;n1ogpk?*jk&{N2cpm`BvJho5);&pE6*fJ4m!rvs)%`Bp>rK!3{AJFB<-^|SU%KSqh z50hGrqw705pKmW~YNHw@$`QtECad&BHG_$7P1pTlA`#0I%Lt6X-)_>$)~?x-+7~2W z7*IR1pk|S3j(@Lk9HJWzHiWE1XD{&Jav{}bWit9yCgRdgu*#3e{58*BDF9MJoD|3m^CO%RgXB#z*3wBsiQlU| literal 0 HcmV?d00001 diff --git "a/07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.2.png" "b/07 \345\206\257\345\273\272\347\250\213/Java\347\254\224\350\256\260\345\233\276\347\211\207\350\241\245\345\205\205/14.7.2.png" new file mode 100644 index 0000000000000000000000000000000000000000..25f37dfd72af0331521d56c828c639b8576d3ca0 GIT binary patch literal 141953 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 literal 0 HcmV?d00001 -- Gitee From 978eb4b11e7d12df32b7f8a327a7b7ca009c456f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E5=BB=BA=E7=A8=8B?= <1063126776@qq.com> Date: Tue, 27 Dec 2022 14:32:17 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=88=91=E7=9A=84java=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60\345\217\212\344\275\234\344\270\232.md" | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 "07 \345\206\257\345\273\272\347\250\213/20221223 \351\235\242\345\220\221\345\257\271\350\261\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" diff --git "a/07 \345\206\257\345\273\272\347\250\213/20221223 \351\235\242\345\220\221\345\257\271\350\261\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" "b/07 \345\206\257\345\273\272\347\250\213/20221223 \351\235\242\345\220\221\345\257\271\350\261\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000..9498929 --- /dev/null +++ "b/07 \345\206\257\345\273\272\347\250\213/20221223 \351\235\242\345\220\221\345\257\271\350\261\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,269 @@ +## 面向对象 + +面向对象是一种编程思维 + +#### 对象是什么? + +对象是看得到摸得着的东西,是真实存在的 + +对象的属性和行为 + +属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值 + +行为:对象能够执行的操作 + +#### 类是什么? + +是对现实生活中一类具有共同属性和行为的事物的抽象,确定的对象将会拥有属性和行为 + +类的组成:属性和行为 + +属性:在类中通过成员变量来体现(类中方法外的变量) + +行为:在类中通过成员方法来体现(在前面的方法相比去掉static关键字即可) + +二者的关系: + +类是对象的抽象,对象是类的实体 + +## 栈内存和堆内存 + +栈内存:所有局部变量都会在栈内存中创建 + +局部变量:定义在方法中的变量或方法声明上的变量 + +方法执行都会加载到栈中进行 + +局部变量的特点:随着方法的调用而存在,随着方法的调用完毕而消失 + +例如: + +```java +Student s = new Student(); +//Student s 会进入栈内存,main主方法也是在栈内存 +//而new Student会进入堆内存 +``` + +堆内存:所有对象及其对应的实例变量和数组都将存储在此处 + +简单理解:每new出来的东西都会在堆内存里 + +## 作业 + +```java +package 图书管理系统; + +import java.util.Scanner; + +public class BookManagerSystem { + + //把扫描器放在最外层,这样里面所有的方法都能用,这个扫描器让所有公用 +// static 改为静态的让所有公用 + static Scanner sc = new Scanner(System.in); + //数组放在外面也能被所以使用,book(数组名称)相当于一个数据库 + static String[] book = new String[5]; + public static void main(String[] args) { + //定义这个数组,存放图书信息 +// String[] book = new String[10]; + //假设里面已经有一些图书信息 + book[0]="精卫填海"; + book[1]="夸父追日"; + book[2]="女娲补天"; + //添加从3开始,3这个索引,其实就是第一个null的位置 + //弄一个死循环,让他一直循环start,也就是目录,还有选择菜单 + while (true){ + start(); + int a = choiceMenu(sc.nextInt()); + if (a==1){ + break; + } + } + + } + //1、登入界面,\n是换行,\t空格 + public static void start(){ + System.out.println(); + System.out.println("==============================" + + "\n- 欢迎使用闽大图书管理系统\t- " + + "\n- \t\t1.浏览所有图书信息 \t-" + + "\n- \t\t2.添加图书信息 \t\t-" + + "\n- \t\t3.修改图书信息 \t\t-" + + "\n- \t\t4.删除图书信息 \t\t-" + + "\n- \t\t5.查询图书信息 \t\t-" + + "\n- \t\t6.退出管理系统 \t\t-" + + "\n==============================\n" + + "\n 请输入对应的数字选择你需要的功能: "); + } + //2、根据输入的数字,进入不同的分支 + //因为是int型,所以会有返回值return + public static int choiceMenu(int num){ + //定义一个变量,用于6 + int a =0; + //swith会精确到某一个值,一般用于值比较少的时候 + switch (num){ + case 1: + //1、浏览所有图书信息 +// System.out.println("你选择了浏览所有图书"); + viwAllBook(); + break; + case 2: + // 2.添加图书信息 + addBook(); +// System.out.println("你选择了添加图书信息"); + break; + case 3: + //3.修改图书信息 + editBook(); + break; + case 4: + //4.删除图书信息 + deleteBook(); + break; + case 5: + // 5.查询图书信息 + searchBook(); + break; + case 6: + // 6.退出管理系统 + System.out.println("你选择退出系统!"); + a =1; + break; + default: + System.out.println("不存在!"); + } + return a; + } + + + // /3、浏览所有图书信息 + public static void viwAllBook(){ + System.out.println("闽大图书馆现有以下图书:"); + //弄个计数器,统计null个数 + int count = 0; + for (String name : book){ +// 第一种 + if (name ==null){ + count++; + continue;//跳过 + } + System.out.print(name+"\t"); +// 第二种 +// if (name !=null){ +// System.out.println(name+"\t"); +// } + } + //判断,null的个数等于数组的长度,说明整个数据库都是null,结论就是没有图书信息 + if (count == book.length){ + System.out.println("目前,还没有该图书信息!"); + } + } + + //4添加图书信息 + public static void addBook( ) { +//先找出没有人的位置,也就是第一个null的位置 +//然后将它成你要添加的图书 + //提示用户输入 + System.out.println("请输入你要添加的图书名称:"); + //字符串的形式来接收用户所输入的文字 + String name =sc.next(); + //用int来接收seachIndex这个方法 + int index = searchIndex(name); + //先判断是否已经有该图书 + if (index !=-1){ + System.out.println("该图书已经在数据库了,请不要重复添加"); + }else { + //用int来接收searchIndex方法 + int nullindex = searchIndex(null); +// 让数据库里的null等于用户输入的新添加的图书 + book[nullindex] =name; + System.out.println("添加成功!"); + //添加到viwAllBook这个方法里,这样才算添加成功 + viwAllBook(); + } + + } + //4.1把找置位的功能,独立出来,做成一个方法,返回找到的位置 + public static int searchIndex(String str) { + //定义一个索引变量 + int index = -1;//因为在数组里0表示第一个,改成-1,就表示不存在 + //null是特殊的类型,所以要单独判断 + if (str == null) { + for (int i = 0; i < book.length; i++) { + if (book[i] == null) { + index = i; + break; + } + } + }else { + for (int i = 0; i < book.length; i++) { + if (str.equals(book[i])) { + index = i; + return index; + } + } + } + return index; + + } + + //5.修改图书的一个方法 + private static void editBook() { + //1.输入要修改的图书 + System.out.println("请问你要修改那一本图书"); + //字符串的形式来接收用户所输入的文字 + String bookName = sc.next(); + //在数组中,查找这个name所对应的索引值 + int index = searchIndex(bookName); + //判断这个索引值存在不存在 + if (index ==-1){ + System.out.println("对不起,没有该图书,无法修改!"); + }else { + //将索引值对应的元素改为用户输入的图书 + System.out.println("请问你要把【"+bookName+"】修改为:"); + //字符串的形式来接收用户所输入的文字 + String newName = sc.next(); + //把数据库里的值换为用户输入的值 + book[index] =newName; + System.out.println("修改成功!"); + } + } + //6.删除图书信息 + public static void deleteBook(){ + //1.输入要删除的图书 + System.out.println("请问你要删除那一本图书"); + //字符串的形式来接收用户所输入的文字 + String name = sc.next(); + //在数组中,查找这个name所对应的索引值 + int index = searchIndex(name); + //判断这个索引值存在不存在 + if (index ==-1){ + System.out.println("对不起,没有该图书,无法删除!"); + }else { + //把数据库里的数据换为null空的 + book[index] =null; + System.out.println("删除成功!"); + } + } + // 7.查询图书信息 + private static void searchBook() { + System.out.println("请输入要查询图书:"); + //字符串的形式来接收用户所输入的文字 + String name = sc.next(); + //引用方法,该方法用int来接收这个方法 + //查找这个图书的索引 + int index = searchIndex(name); + //判断若是该图书找不到就返回-1,找到了就返回索引+1 + if (index == -1){ + System.out.println("对不起,没有找到该图书!"); + }else { + //index+1是因为计算机是从0开始算一位数,+上1才是我们 正常的 + System.out.println("已找到该图书Ta在 "+(index+1)+" 的位置。"); + } + } +// 8.退出系统 +//在choiceMenu和main方法中完成退出系统 + } + + + +``` \ No newline at end of file -- Gitee