diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..48cf637e6ca8555a84d548134ec4372be0170b45 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+IO_stream_project/Case_module/lib/hutool-all-5.8.10.jar filter=lfs diff=lfs merge=lfs -text
+IO_stream_project/Commons_io_module/lib/hutool-all-5.8.10.jar filter=lfs diff=lfs merge=lfs -text
+jigsaw_puzzle_project/jigsaw_puzzle_module/lib/hutool-all-5.8.10.jar filter=lfs diff=lfs merge=lfs -text
diff --git a/API_project/.DS_Store b/API_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..f4cd101cafa366bfa68f9e23479c438c1635d556
Binary files /dev/null and b/API_project/.DS_Store differ
diff --git a/API_project/.idea/.gitignore b/API_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/API_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/API_project/.idea/misc.xml b/API_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce297c628542f349cb2f347344bfbc492db22d83
--- /dev/null
+++ b/API_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/.idea/modules.xml b/API_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2110343165b7e535e0ce2b7e4d5cb57011b0cb1
--- /dev/null
+++ b/API_project/.idea/modules.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/.idea/uiDesigner.xml b/API_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/API_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/.idea/workspace.xml b/API_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..acd1aae410bef62174494f6804f728fed547525a
--- /dev/null
+++ b/API_project/.idea/workspace.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1676777617776
+
+
+ 1676777617776
+
+
+
+
\ No newline at end of file
diff --git a/API_project/API_project.iml b/API_project/API_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/API_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/BigDecimal_module/BigDecimal_module.iml b/API_project/BigDecimal_module/BigDecimal_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/BigDecimal_module/BigDecimal_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo1.java b/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..f46dc6dff91aaf96506686124158648ab9e1d6fb
--- /dev/null
+++ b/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo1.java
@@ -0,0 +1,47 @@
+package BigDecimal_package;
+
+import java.math.BigDecimal;
+
+public class BigDecimal_demo1 {
+ public static void main(String[] args) {
+ /*
+ 构造方法获取BigDecimal对象
+ public BigDecimal (double val)
+ public BigDecimal (String val)
+
+ 静态方法获取BigDecimal对象
+ public static BigDecimal valueOf (double val)
+ */
+
+ //1、通过传递double类型的小数来创建对象
+ //细节:
+ //这种方式有可能是不精确的,所以不建议使用
+ BigDecimal bd1 = new BigDecimal(0.01);
+ BigDecimal bd2 = new BigDecimal(0.09);
+
+ System.out.println(bd1);
+ System.out.println(bd2);
+
+ //2、通过传递字符串表示的小数来创建对象
+ BigDecimal bd3 = new BigDecimal("0.01");
+ BigDecimal bd4 = new BigDecimal("0.09");
+ BigDecimal bd5 = bd3.add(bd4);
+ System.out.println(bd3);
+ System.out.println(bd4);
+ System.out.println(bd5);
+
+ //3、通过静态方法获取对象
+ BigDecimal bd6 = BigDecimal.valueOf(10);
+ BigDecimal bd7 = BigDecimal.valueOf(10);
+ System.out.println(bd6 == bd7);
+
+ //细节:
+ //1、如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
+ //2、如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
+ //3、如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new
+
+ BigDecimal bd8 = BigDecimal.valueOf(10.0);
+ BigDecimal bd9 = BigDecimal.valueOf(10.0);
+ System.out.println(bd8 == bd9);
+ }
+}
diff --git a/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo2.java b/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4b2084f6375a89eb5009e75eb7c7c117648671d
--- /dev/null
+++ b/API_project/BigDecimal_module/src/BigDecimal_package/BigDecimal_demo2.java
@@ -0,0 +1,36 @@
+package BigDecimal_package;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+public class BigDecimal_demo2 {
+ public static void main(String[] args) {
+ /*
+ public BigDecimal add (BigDecimal val) 加法
+ public BigDecimal subtract (BigDecimal val) 减法
+ public BigDecimal multiply (BigDecimal val) 乘法
+ public BigDecimal divide (BigDecimal val) 除法
+ public BigDecimal divide (BigDecimal val, 精确几位, 舍入模式) 除法
+ */
+
+ //1、加法
+ BigDecimal bd1 = BigDecimal.valueOf(10.0);
+ BigDecimal bd2 = BigDecimal.valueOf(3.0);
+
+ BigDecimal bd3 = bd1.add(bd2);
+ System.out.println(bd3);
+
+ //2、减法
+ BigDecimal bd4 = bd1.subtract(bd2);
+ System.out.println(bd4);
+
+ //3、乘法
+ BigDecimal bd5 = bd1.multiply(bd2);
+ System.out.println(bd5);
+
+ //4、除法
+ BigDecimal bd6 = bd1.divide(bd2,2, RoundingMode.HALF_UP);
+ System.out.println(bd6);
+
+ }
+}
diff --git a/API_project/BigInteger_module/BigInteger_module.iml b/API_project/BigInteger_module/BigInteger_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/BigInteger_module/BigInteger_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/BigInteger_module/src/BigInteger_demo1.java b/API_project/BigInteger_module/src/BigInteger_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..42947856b48e086c0527cde33fba7d5737dfb3c1
--- /dev/null
+++ b/API_project/BigInteger_module/src/BigInteger_demo1.java
@@ -0,0 +1,55 @@
+import java.math.BigInteger;
+import java.util.Random;
+
+public class BigInteger_demo1 {
+ public static void main(String[] args) {
+ /*
+ public BigInteger (int num, Random rnd) 获取随机大整数,范围:[0 ~ 2的num次方-1]
+ public BigInteger (String val) 获取指定的大整数
+ public BigInteger (String val, int radix) 获取指定进制的大整数
+
+ public static BigInteger valueOf (long val) 静态方法获取BigInteger的对象,
+ 内部有优化细节:对象一旦创建里面的数据不能发生改变。
+ */
+
+ //1、获取一个随机的大整数
+ Random r = new Random();
+ for (int i = 0; i < 100; i++) {
+ BigInteger bd1 = new BigInteger(4, r);
+ System.out.println(bd1);//[0, 15]
+ }
+
+ //2、获取一个指定的大整数
+ //细节:字符串中必须是整数,否则会报错
+ BigInteger bd2 = new BigInteger("99999999999");
+ System.out.println(bd2);
+
+ //3、获取指定进制的大整数
+ //细节:
+ //1、字符串中的数字必须是整数
+ //2、字符串中的数字必须要跟进制吻合
+ //比如二进制中,只能写0和1,写其他的就报错
+ BigInteger bd3 = new BigInteger("1000", 2);
+ System.out.println(bd3);
+
+ //4、静态方法获取BigInteger的对象,内部有优化
+ //细节:
+ //1、能表示范围比较小,在long的取值范围之类,如果超出long的范围就不行了
+ //2、在内部对常用的数字:-16~16进行了优化。
+ // 提前把-16~16先创建好BigInteger的对象,如果多次获取不会重新创建新的。
+ BigInteger bd5 = BigInteger.valueOf(16);
+ BigInteger bd6 = BigInteger.valueOf(16);
+ System.out.println(bd5 == bd6);//true
+
+ BigInteger bd7 = BigInteger.valueOf(17);
+ BigInteger bd8 = BigInteger.valueOf(17);
+ System.out.println(bd7 == bd8);//false
+
+ //5、对象一旦创建内部的数据不能发生改变
+ BigInteger bd9 = BigInteger.valueOf(1);
+ BigInteger bd10 = BigInteger.valueOf(2);
+ BigInteger result = bd9.add(bd10);
+ System.out.println(result);//3
+ //此时,不会修改参与计算的BigInteger对象中的值,而是产生了一个新的BigInteger对象记录3
+ }
+}
diff --git a/API_project/BigInteger_module/src/BigInteger_demo2.java b/API_project/BigInteger_module/src/BigInteger_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..148536bf880da9c3be163941b840dbf63ffd219c
--- /dev/null
+++ b/API_project/BigInteger_module/src/BigInteger_demo2.java
@@ -0,0 +1,56 @@
+import java.math.BigInteger;
+
+public class BigInteger_demo2 {
+ public static void main(String[] args) {
+ /*
+ public BigInteger add (BigInteger val) 加法
+ public BigInteger subtract (BigInteger val) 减法
+ public BigInteger multiply (BigInteger val) 乘法
+ public BigInteger divide (BigInteger val) 除法,获取商
+ public BigInteger[] divideAndRemainder (BigInteger val) 除法,获取商和余数
+ public boolean equals (Object x) 比较是否相同
+ public BigInteger pow (int exponent) 次幂
+ public BigInteger max/min (BigInteger val) 返回较大值/较小值
+ public int intValue (BigInteger val) 转为int类型整数,超出范围数据有误
+ */
+
+ //1、创建两个BigInteger对象
+ BigInteger bd1 = BigInteger.valueOf(10);
+ BigInteger bd2 = BigInteger.valueOf(3);
+
+ //2、加法
+ BigInteger bd3 = bd1.add(bd2);
+ System.out.println(bd3);
+
+ //3、除法,获取商和余数
+ BigInteger[] arr = bd1.divideAndRemainder(bd2);
+ System.out.println(arr.length);
+ System.out.println(arr[0]);
+ System.out.println(arr[1]);
+
+ //4、比较是否相同
+ boolean result = bd1.equals(bd2);
+ System.out.println(result);
+
+ //5、次幂
+ BigInteger bd4 = bd1.pow(2);
+ System.out.println(bd4);
+
+ //6、max
+ BigInteger bd5 = bd1.max(bd2);
+ System.out.println(bd5 == bd1);//true
+ System.out.println(bd5 == bd2);//false
+
+ //7、转为int类型整数,超出范围数据有误
+ int i = bd1.intValue();
+ System.out.println(i);
+
+ long l = bd5.longValue();
+ System.out.println(l);
+
+ double v = bd5.doubleValue();
+ System.out.println(v);
+
+
+ }
+}
diff --git a/API_project/Date_module/Date_module.iml b/API_project/Date_module/Date_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Date_module/Date_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Date_module/src/Calendar_package/Calendar_demo1.java b/API_project/Date_module/src/Calendar_package/Calendar_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..89e1507147fc0f22b21a301b788d3798da852a7b
--- /dev/null
+++ b/API_project/Date_module/src/Calendar_package/Calendar_demo1.java
@@ -0,0 +1,79 @@
+package Calendar_package;
+
+import java.util.Calendar;
+import java.util.Date;
+
+public class Calendar_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static Calendar getInstance () 获取当前时间的日历对象
+
+ public final Date getTime () 获取日期对象
+ public final setTime (Date date) 给日历设置日期对象
+
+ public long getTimeInMillis () 拿到时间毫秒值
+ public void setTimeInMillis (long millis) 给日历设置时间毫秒值
+
+ public int get (int field) 取日期中的某个字段信息
+ public void set (int field, int value) 修改日历的某个字段信息
+ public void add (int field, int amount) 为某个字段增加/减少指定的值
+ */
+
+ //1、获取日历对象
+ //细节1:Calendar 是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
+ //底层原理:
+ //会根据系统的不同时区来获取不同的日历对象,默认表示当前时间
+ //会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中
+ //0:纪元
+ //1:年
+ //2:月
+ //3:一年中的第几周
+ //4:一个月中的第几周
+ //5:一个月中的第几天(日期)
+ //……
+
+ //细节2:
+ //月份:范围0~11 如果获取出来的是1,那么实际上是2月
+ //星期:在老外的眼里,星期日是一周中的第一天
+ // 1(星期天) 2(星期一) 3(星期二) ……
+ Calendar c = Calendar.getInstance();
+ System.out.println(c);
+
+ //2、修改一下日历代表的时间
+ Date d = new Date(0L);
+ c.setTime(d);
+ System.out.println(c);
+
+
+// public int get (int field) 取日期中的某个字段信息
+// public void set (int field, int value) 修改日历的某个字段信息
+// public void add (int field, int amount) 为某个字段增加/减少指定的值
+
+ c.set(Calendar.YEAR, 2000);
+ c.set(Calendar.MONTH, 11);
+
+ //调用方法在这个基础上增加一个月
+ c.add(Calendar.MONTH,1);
+
+ //java在Calendar类中,把索引对应的数字都定义成常量
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH) + 1;
+ int date = c.get(Calendar.DAY_OF_MONTH);
+ int week = c.get(Calendar.DAY_OF_WEEK);
+ System.out.println(year + ", " + month + ", " + date + ", " + getWeek(week));
+
+
+ }
+
+ //查表法:
+ //表:容器
+ //让数据跟索引产生对应的关系
+
+ //传入对应的数字:1~7
+ //返回对应的星期
+ public static String getWeek(int index) {
+ //定义一个数组,让汉字星期几 跟1~7产生对应关系
+ String[] arr = {"", "周日", "周一", "周二", "周三", "周四", "周五", "周六"};
+ return arr[index];
+ }
+}
diff --git a/API_project/Date_module/src/Date_package/Date_demo1.java b/API_project/Date_module/src/Date_package/Date_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1645721a190d694de1b3c8066043a754de9b1d0
--- /dev/null
+++ b/API_project/Date_module/src/Date_package/Date_demo1.java
@@ -0,0 +1,32 @@
+package Date_package;
+
+import java.util.Date;
+
+public class Date_demo1 {
+ public static void main(String[] args) {
+ /*
+ public Date () 创建Date对象,表示当前时间
+ public Date (long date) 创建Date对象,表示指定时间
+
+ public void setTime (long time) 设置/修改毫秒值
+ public long getTime () 获取时间对象的毫秒值
+ */
+
+ //1、创建对象表示一个时间
+ Date d1 = new Date();
+ System.out.println(d1);
+
+ //2、创建对象表示一个指定的时间
+ Date d2 = new Date(0L);
+ System.out.println(d2);
+
+ //3、setTime 修改时间
+ //1000毫秒 = 1秒
+ d2.setTime(1000L);
+ System.out.println(d2);
+
+ //4、getTime获取当前时间的毫秒值
+ long time = d2.getTime();
+ System.out.println(time);
+ }
+}
diff --git a/API_project/Date_module/src/Date_package/Date_demo2.java b/API_project/Date_module/src/Date_package/Date_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8dfa4add9f57f8aac909c2df71885a53a962495
--- /dev/null
+++ b/API_project/Date_module/src/Date_package/Date_demo2.java
@@ -0,0 +1,48 @@
+package Date_package;
+
+import java.util.Date;
+import java.util.Random;
+
+public class Date_demo2 {
+ public static void main(String[] args) {
+ /*
+ 需求1:打印时间原点开始一年后的时间
+ 需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后
+ */
+
+ //需求1:打印时间原点开始1年之后的时间
+ //1、创建一个对象,表示时间原点
+ Date d1 = new Date(0L);
+
+ //2、获取d1时间的毫秒值
+ long time = d1.getTime();
+
+ //3、在这个基础上我们要加一年的毫秒值
+ time += 1000L * 60 * 60 * 24 * 365;
+
+ //4、把计算之后的时间毫秒值,再设置回di当中
+ d1.setTime(time);
+
+ //5、打印d1
+ System.out.println(d1);
+
+
+ //需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后
+ Random r = new Random();
+
+ //创建两个时间对象
+ Date d2 = new Date(Math.abs(r.nextInt()));
+ Date d3 = new Date(Math.abs(r.nextInt()));
+
+ long time2 = d2.getTime();
+ long time3 = d3.getTime();
+
+ if (time2 > time3) {
+ System.out.println("第一个时间在后,第二个时间在前");
+ } else if (time2 < time3) {
+ System.out.println("第一个时间在前,第二个时间在后");
+ } else {
+ System.out.println("两个时间一样");
+ }
+ }
+}
diff --git a/API_project/Date_module/src/Instant_package/Instant_demo1.java b/API_project/Date_module/src/Instant_package/Instant_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1471487ca2406be99ad6739013146a04ad6c31c
--- /dev/null
+++ b/API_project/Date_module/src/Instant_package/Instant_demo1.java
@@ -0,0 +1,59 @@
+package Instant_package;
+
+import java.net.SocketTimeoutException;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+
+public class Instant_demo1 {
+ public static void main(String[] args) {
+ /*
+ static Instant now () 获取当前时间的Instant对象(标准时间)
+ static Instant ofXxxx (long epochMilli) 根据(秒/毫秒/纳秒)获取Instant对象
+ ZonedDateTime atZone (ZoneId zone) 指定时区
+ boolean isXxx (Instant otherInstant) 判断系列的方法
+ Instant minusXxx (long millisToSubtract) 减少时间系列的方法
+ Instant plusXxx (long millisToSubtract) 增加时间系列的方法
+ */
+
+ //1、获取当前时间的Instant对象(标准时间)
+ Instant now = Instant.now();
+ System.out.println(now);
+
+ //2、根据(秒/毫秒/纳秒)获取Instant对象
+ Instant instant1 = Instant.ofEpochMilli(0L);
+ System.out.println(instant1);
+
+ Instant instant2 = Instant.ofEpochSecond(1L);
+ System.out.println(instant2);
+
+ Instant instant3 = Instant.ofEpochSecond(1L, 1000000000L);
+ System.out.println(instant3);
+
+ //3、指定时区
+ ZonedDateTime time = Instant.now().atZone(ZoneId.of("America/Cuiaba"));
+ System.out.println(time);
+
+ //4、isXxx 判断
+ Instant instant4 = Instant.ofEpochMilli(0L);
+ Instant instant5 = Instant.ofEpochMilli(1000L);
+
+ //isBefore:判断调用者代表的时间是否在参数表示时间的前面
+ boolean result1 = instant4.isBefore(instant5);
+ System.out.println(result1);//true
+
+ //isAfter:判断调用者代表的时间是否在参数表示时间的后面
+ boolean result2 = instant4.isAfter(instant5);
+ System.out.println(result2);//false
+
+ //5、Instant minusXxx (long millisToSubtract) 减少时间系列的方法
+ Instant instant6 = Instant.ofEpochMilli(324567234L);
+ System.out.println(instant6);//1970-01-04T18:09:27.234Z
+
+ Instant instant7 = instant6.minusSeconds(1);
+ System.out.println(instant7);//1970-01-04T18:09:26.234Z
+
+ //6、
+
+ }
+}
diff --git a/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo1.java b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb8b64f77d28b998323e315e643872f19a0aa0e3
--- /dev/null
+++ b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo1.java
@@ -0,0 +1,43 @@
+package SimpleDateFormat_package;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class SimpleDateFormat_demo1 {
+ public static void main(String[] args) throws ParseException {
+ /*
+ public SimpleDateFormat () 默认格式
+ public SimpleDateFormat (String pattern) 指定格式
+
+ public final String format (Date date) 格式化(日期对象 -> 字符串)
+ public Date parse (String source) 解析(字符串 -> 日期对象)
+ */
+
+ //method();
+
+ //1、定义一个字符串表示时间
+ String str="2023-11-11 11:23:54";
+ //2、利用带参构造创建SimpleDateFormat对象,指定格式
+ //细节:
+ //创建对象的格式要跟字符串的格式完全一致
+ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date date = sdf.parse(str);
+ //3、打印结果
+ System.out.println(date);
+
+ }
+
+ private static void method() {
+ //1、利用空参构造创建SimpleDateFormat对象,默认格式
+ SimpleDateFormat sdf = new SimpleDateFormat();
+ Date d = new Date();
+ String str = sdf.format(d);
+ System.out.println(str);// 2023/2/21 上午11:28
+
+ //2、利用带参构造创建SimpleDateFormat对象,指定格式
+ SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE");
+ String str2=sdf2.format(d);
+ System.out.println(str2);// 2023年02月21日 11:28:07 周二
+ }
+}
diff --git a/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo2.java b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..19ad5e093fd8f048a0434264528e05c705562d74
--- /dev/null
+++ b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo2.java
@@ -0,0 +1,27 @@
+package SimpleDateFormat_package;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class SimpleDateFormat_demo2 {
+ public static void main(String[] args) throws ParseException {
+ /*
+ 假设,你初恋的出生年月日为:2000-11-11
+ 请用字符串表示这个数据,并将其转换为:2000年11月11日
+ */
+
+ //1、可以通过2000-11-11进行解析,解析成一个Date对象
+ String str = "2000-11-11";
+ //2、解析
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = sdf1.parse(str);
+
+ //3、格式化
+ SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
+ String result = sdf2.format(date);
+ System.out.println(result);
+
+
+ }
+}
diff --git a/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo3.java b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc2368dce7ee7408510d02bf7f7aaa1639f28ba5
--- /dev/null
+++ b/API_project/Date_module/src/SimpleDateFormat_package/SimpleDateFormat_demo3.java
@@ -0,0 +1,44 @@
+package SimpleDateFormat_package;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class SimpleDateFormat_demo3 {
+ public static void main(String[] args) throws ParseException {
+ /*
+ 需求:
+ 秒杀活动:2023年11月11日 0:0:0
+ 结束时间:2023年11月11日 0:10:0
+
+ 小贾下单并付款的时间为:2023年11月11日 0:01:00
+ 小皮下单并付款的时间为:2023年11月11日 0:11:0
+ 用代码说明这两个同学有没有参加上秒杀活动?
+
+ */
+
+ //1、定义字符串表示三个时间
+ String startStr = "2023年11月11日 0:0:0";
+ String endStr = "2023年11月11日 0:10:0";
+ String orderStr = "2023年11月11日 0:11:0";
+
+ //2、解析上面的三个时间,得到Date对象
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
+ Date startDate = sdf.parse(startStr);
+ Date endDate = sdf.parse(endStr);
+ Date orderDate = sdf.parse(orderStr);
+
+ //3、得到三个时间的毫秒值
+ long startTime = startDate.getTime();
+ long endTime = endDate.getTime();
+ long orderTime = orderDate.getTime();
+
+ //4、判断
+ if (orderTime >= startTime && orderTime <= endTime) {
+ System.out.println("参加秒杀活动成功");
+ } else {
+ System.out.println("参加秒杀活动失败");
+ }
+
+ }
+}
diff --git a/API_project/Date_module/src/ZoneId_package/ZoneId_demo1.java b/API_project/Date_module/src/ZoneId_package/ZoneId_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..918266cae3581c90d5a3181511aaa9b5c15908cc
--- /dev/null
+++ b/API_project/Date_module/src/ZoneId_package/ZoneId_demo1.java
@@ -0,0 +1,27 @@
+package ZoneId_package;
+
+import java.time.ZoneId;
+import java.util.Set;
+
+public class ZoneId_demo1 {
+ public static void main(String[] args) {
+ /*
+ static Set getAvailableZoneIds () 获取java中支持的所有时区
+ static ZoneId systemDefault () 获取系统默认时区
+ static ZoneId of (String zoneId) 获取一个指定时区
+ */
+
+ //1、获取所有的时区名称
+ Set zoneIds = ZoneId.getAvailableZoneIds();
+ System.out.println(zoneIds.size());
+ System.out.println(zoneIds);
+
+ //2、获取当前系统的默认时区
+ ZoneId zoneId = ZoneId.systemDefault();
+ System.out.println(zoneId);
+
+ //3、获取指定的时区
+ ZoneId zoneId1 = ZoneId.of("America/Cuiaba");
+ System.out.println(zoneId1);
+ }
+}
diff --git a/API_project/Math_module/Math_module.iml b/API_project/Math_module/Math_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Math_module/Math_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Math_module/src/Math_Case/IsPrime.java b/API_project/Math_module/src/Math_Case/IsPrime.java
new file mode 100644
index 0000000000000000000000000000000000000000..87240b2d3999c3e4c15314b4e5eee7c271212638
--- /dev/null
+++ b/API_project/Math_module/src/Math_Case/IsPrime.java
@@ -0,0 +1,17 @@
+package Math_Case;
+
+public class IsPrime {
+ public static void main(String[] args) {
+ //判断一个数是否为一个质数
+ System.out.println(isPrime(998));
+ }
+
+ private static boolean isPrime(int number) {
+ for (int i = 2; i <= Math.sqrt(number); i++) {
+ if (number % i == 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
diff --git a/API_project/Math_module/src/Math_Case/Narcissistic_number.java b/API_project/Math_module/src/Math_Case/Narcissistic_number.java
new file mode 100644
index 0000000000000000000000000000000000000000..dec438e57f3ac1bd4f4a6a700efa6433f4573628
--- /dev/null
+++ b/API_project/Math_module/src/Math_Case/Narcissistic_number.java
@@ -0,0 +1,28 @@
+package Math_Case;
+
+public class Narcissistic_number {
+ public static void main(String[] args) {
+ //要求1:统计一共有多少个水仙花数
+
+ //水仙花数:100~999
+ int count = 0;
+ //得到每一个三位数
+ for (int i = 100; i <= 999; i++) {
+ //个位 十位 百位
+ int ge = i % 10;
+ int shi = i / 10 % 10;
+ int bai = i / 100 % 10;
+
+ //判断:
+ //每一位的三次方之后 跟本身 进行比较
+ double sum = Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3);
+
+ if (sum == i) {
+ count++;
+ System.out.println(i);
+ }
+ }
+
+ System.out.println(count);
+ }
+}
diff --git a/API_project/Math_module/src/Math_package/Math_demo1.java b/API_project/Math_module/src/Math_package/Math_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..a73c96180ece3f8432e97a3654ced86737313574
--- /dev/null
+++ b/API_project/Math_module/src/Math_package/Math_demo1.java
@@ -0,0 +1,81 @@
+package Math_package;
+
+public class Math_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static int abs(int a) 获取参数绝对值
+ public static double ceil(double a) 向上取整
+ public static double floor(double a) 向下取整
+ public static int round(float a) 四舍五入
+ public static int max(int a, int b) 获取两个int值中的较大值
+ public static double pow(double a, double b) 返回a的b次幂的值
+ public static double sqrt(double a) 返回a的平方根
+ public static double cbrt(double a) 返回a的立方根
+ public static double random() 返回值为double的随机值,范围[0.0, 1.0)
+ */
+
+ //abs 获取参数绝对值
+ System.out.println(Math.abs(-88));
+ System.out.println(Math.abs(88));
+ //bug:
+ //以int类型为例,取值范围: -2147483648 ~ 2147483647
+ //如果没有正数与负数对应,那么传递负数结果有误
+ //-2147483648 没有正数与之对应,所以abs结果产生bug
+ System.out.println(Math.abs(-2147483648));
+ //System.out.println(Math.absExact(-2147483648));
+ System.out.println("-----------------------");
+
+ //进一法:往数轴的正方向进一
+ System.out.println(Math.ceil(12.34));
+ System.out.println(Math.ceil(12.54));
+ System.out.println(Math.ceil(-12.34));
+ System.out.println(Math.ceil(-12.54));
+ System.out.println("-----------------------");
+
+ //去尾法:往数轴的负方向进一
+ System.out.println(Math.floor(12.34));
+ System.out.println(Math.floor(12.54));
+ System.out.println(Math.floor(-12.34));
+ System.out.println(Math.floor(-12.54));
+ System.out.println("-----------------------");
+
+ //public static int round(float a) 四舍五入
+ System.out.println(Math.round(12.34));
+ System.out.println(Math.round(12.54));
+ System.out.println(Math.round(-12.34));
+ System.out.println(Math.round(-12.54));
+ System.out.println("-----------------------");
+
+ //public static int max(int a, int b) 获取两个int值中的较大值
+ System.out.println(Math.max(20, 30));
+ System.out.println("-----------------------");
+
+ //获取两个整数的较小值
+ System.out.println(Math.min(20, 30));
+ System.out.println("-----------------------");
+
+ //获取a的b次幂
+ System.out.println(Math.pow(2, 3));
+ //细节:
+ //如果第二个参数 0~1之间的小数
+ System.out.println(Math.pow(4, 0.5));
+ System.out.println(Math.pow(2, -2));
+ //建议:
+ //第二个参数:一般传递大于等于1的正整数
+ System.out.println("-----------------------");
+
+ System.out.println(Math.sqrt(4));
+ System.out.println(Math.cbrt(8));
+ System.out.println("-----------------------");
+
+ for (int i = 0; i < 10; i++) {
+ System.out.println(Math.floor(Math.random() * 100) + 1);
+ //Math.random() [0.0 , 1.0)
+ //* 100 [0.0 , 100.0)
+ //floor 去掉了后面的小数
+ //+1 [1.0 , 100.0]
+ }
+
+
+ }
+}
diff --git a/API_project/Object_Objects_module/Object_Objects_module.iml b/API_project/Object_Objects_module/Object_Objects_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Object_Objects_module/Object_Objects_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Object_Objects_module/src/Object_package/Object_demo1.java b/API_project/Object_Objects_module/src/Object_package/Object_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..14ace678daaf77142bdf3a7aafc621f77917174d
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Object_package/Object_demo1.java
@@ -0,0 +1,41 @@
+package Object_package;
+
+public class Object_demo1 {
+ public static void main(String[] args) {
+ /*
+ public String toString() 返回对象的字符串表示形式
+ public boolean equals(Object obj) 比较两个对象是否相等
+ protected Object clone(int a) 对象克隆
+ */
+
+ //1、toString() 返回对象的字符串表示形式
+ Object obj = new Object();
+ String str = obj.toString();
+ System.out.println(str);//java.lang.Object@372f7a8d
+
+ //细节:
+ //System:类名
+ //out:静态变量
+ //System.out:获取打印的对象
+ //println():方法
+ //参数:表示打印的内容
+ //核心逻辑:
+ //当我们打印一个对象的时候,底层会调用对象的toString方法,把对象变成字符串
+ //然后再打印到控制台上,打印完毕换行处理。
+ System.out.println(obj);//java.lang.Object@372f7a8d
+
+
+ //思考:默认情况下,因为Object类中的toString方法返回的是地址值
+ //所以,默认情况下,打印一个对象打印的就是地址值
+ //但是地址值对于我们是没什么意义的
+ //我想要看到对象内部的属性值,我们该怎么办?
+ //处理方案:重写父类Object类中的toString方法
+ Student stu = new Student("张三", 23);
+ System.out.println(stu);
+
+ //toString方法的结论:
+ //如果我们打印一个对象,想要看到属性值的话,那么就重写toString方法就可以了
+ //在重写的方法中,把对象的属性值进行拼接
+
+ }
+}
diff --git a/API_project/Object_Objects_module/src/Object_package/Object_demo2.java b/API_project/Object_Objects_module/src/Object_package/Object_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..1da3402736e2407253a864aec0b7970e9ce373e8
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Object_package/Object_demo2.java
@@ -0,0 +1,39 @@
+package Object_package;
+
+public class Object_demo2 {
+ public static void main(String[] args) {
+ /*
+ public boolean equals(Object obj) 比较两个对象是否相等
+ */
+
+ Student s1 = new Student();
+ Student s2 = new Student();
+
+ boolean result1 = s1.equals(s2);
+ System.out.println(result1);//true
+
+ //结论:
+ //1、如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相同
+ //2、一般来讲地址值对于我们意义不大,所以我们会重写,重写之后比较的就是对象内部的属性值
+
+ String s="abc";
+ StringBuilder sb=new StringBuilder("abc");
+
+ System.out.println(s.equals(sb));//false
+ //因为equals方法是被s调用的,而s是字符串
+ //所以equals要看String类中的
+
+ //字符串中的equals方法,先判断参数是否为字符串
+ //如果是字符串,再比较内部的属性
+ //但是如果参数不是字符串,直接返回false
+
+ System.out.println(sb.equals(s));//false
+ //因为equals方法是被sb调用的,而sb是StringBuilder
+ //所以这里的equals方法要看StringBuilder中的equals方法
+
+ //那么在StringBuilder当中,没有重写equals方法
+ //使用的是Object中的
+ //在Object当中默认是使用==号比较两个对象的地址值
+ //而这里的s和sb记录的地址值是不一样的,所以结果返回false
+ }
+}
diff --git a/API_project/Object_Objects_module/src/Object_package/Object_demo3.java b/API_project/Object_Objects_module/src/Object_package/Object_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..10c79141b3a421acf469a361acdd10a3b0f18490
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Object_package/Object_demo3.java
@@ -0,0 +1,27 @@
+package Object_package;
+
+public class Object_demo3 {
+ public static void main(String[] args) throws CloneNotSupportedException {
+ //protected Object clone(int a) 对象克隆
+
+ //1、先创建一个对象
+ int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0};
+ User u1 = new User(1, "张三", "1234qwer", "girl111", data);
+
+ //2、克隆对象
+ //细节:
+ //方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去
+ //书写细节:
+ //1、重写Object中的clone方法
+ //2、让javabean类实现Cloneable接口
+ //3、创建原对象并调用clone方法就可以了
+ User u2 = (User) u1.clone();
+
+ //验证一件事情:Object中的克隆是浅克隆
+ int[] arr = u1.getData();
+ arr[0] = 100;
+ System.out.println(u1);
+ System.out.println(u2);
+
+ }
+}
diff --git a/API_project/Object_Objects_module/src/Object_package/Student.java b/API_project/Object_Objects_module/src/Object_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5dc4ac2c8c0589680a9660eaa83b3ebdf17aa9c
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Object_package/Student.java
@@ -0,0 +1,47 @@
+package Object_package;
+
+import java.util.Objects;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public Student() {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ @Override
+ public String toString() {
+ return name + ", " + age;
+ }
+
+ //重写之后的equals方法比较的就是对象内部的属性值
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Student student = (Student) o;
+ return age == student.age && Objects.equals(name, student.name);
+ }
+
+}
diff --git a/API_project/Object_Objects_module/src/Object_package/User.java b/API_project/Object_Objects_module/src/Object_package/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..932e118f1a79683ea6e5584553ff660bc94a556f
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Object_package/User.java
@@ -0,0 +1,106 @@
+package Object_package;
+
+import java.util.Arrays;
+import java.util.StringJoiner;
+
+//Cloneable
+//如果一个接口里面没有抽象方法
+//表示当前的接口是一个标记性接口
+//现在Cloneable表示一旦实现了,那么当前类的对象就可以被克隆
+//如果没有实现,当前类的对象就不能克隆
+public class User implements Cloneable {
+ private int id;//游戏角色
+ private String username;//用户名
+ private String password;//密码
+ private String path;//游戏图片
+ private int[] data;//游戏进度
+
+ public User(int id, String username, String password, String path, int[] data) {
+ this.id = id;
+ this.username = username;
+ this.password = password;
+ this.path = path;
+ this.data = data;
+ }
+
+ public User() {
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public int[] getData() {
+ return data;
+ }
+
+ public void setData(int[] data) {
+ this.data = data;
+ }
+
+ @Override
+ public String toString() {
+ return "角色编号为:" + id +
+ ", 用户名:" + username +
+ ", 密码:" + password +
+ ", 游戏图片:'" + path +
+ ", 进度:" + arrToString();
+ }
+
+ public String arrToString() {
+ StringJoiner sj = new StringJoiner(",", "[", "]");
+ for (int i = 0; i < data.length; i++) {
+ sj.add(data[i] + "");
+ }
+ return sj.toString();
+ }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException {
+ //调用父类中的clone方法
+ //相当于让Java帮我们克隆一个对象,并把克隆之后的对象返回出去
+
+ //先把被克隆对象中的数组获取出来
+ int[] data = this.data;
+ //创建新的数组
+ int[] newData = new int[data.length];
+ //拷贝数组中的数据
+ for (int i = 0; i < data.length; i++) {
+ newData[i] = data[i];
+ }
+
+ //调用父类中的方法克隆对象
+ User u = (User) super.clone();
+ //因为父类中的克隆方法是浅克隆,替换克隆出来对象中的数组地址值
+ u.data = newData;
+ return u;
+ }
+}
diff --git a/API_project/Object_Objects_module/src/Objects_package/Objects_demo1.java b/API_project/Object_Objects_module/src/Objects_package/Objects_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed89ae26f6fb0f683ac325b2bcf4085aa46655aa
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Objects_package/Objects_demo1.java
@@ -0,0 +1,42 @@
+package Objects_package;
+
+import java.util.Objects;
+
+public class Objects_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static boolean equals (Object a, Object b) 先做非空判断,比较两个对象
+ public static boolean isNull (Object obj) 判断对象是否为null,为null返回true,反之
+ public static boolean nonNull (Object obj) 判断对象是否为null,跟isNull的结果相反
+ */
+
+ //1、创建学生类的对象
+ Student s1 = null;
+ Student s2 = new Student("张三", 23);
+
+ //2、比较两个对象的属性值是否相同
+// if (s1 != null) {
+// boolean result = s1.equals(s2);
+// System.out.println(result);
+// } else {
+// System.out.println("调用者为空");
+// }
+
+ boolean result = Objects.equals(s1, s2);
+ System.out.println(result);
+ //细节:
+ //1、方法的底层会判断s1是否为null,如果为null,直接返回false
+ //2、如果s1不为null,那么就利用s1再次调用equals方法
+ //3、此时s1是Student类型,所以最终还是会调用Student中的equals方法
+ // 如果没有重写,比较地址值,如果重写了,就比较属性值
+
+
+ //public static boolean isNull (Object obj) 判断对象是否为null,为null返回true,反之
+ Student s3 = new Student();
+ System.out.println(Objects.isNull(s3));
+ System.out.println(Objects.isNull(s1));
+
+ System.out.println(Objects.nonNull(s3));
+ System.out.println(Objects.nonNull(s1));
+ }
+}
diff --git a/API_project/Object_Objects_module/src/Objects_package/Student.java b/API_project/Object_Objects_module/src/Objects_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..28af85fffb08b392c0a5a2b2f52ad2969f6d728d
--- /dev/null
+++ b/API_project/Object_Objects_module/src/Objects_package/Student.java
@@ -0,0 +1,49 @@
+package Objects_package;
+
+import java.util.Objects;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Student student = (Student) o;
+ return age == student.age && Objects.equals(name, student.name);
+ }
+
+
+ @Override
+ public String toString() {
+ return "Student{" +
+ "name='" + name + '\'' +
+ ", age=" + age +
+ '}';
+ }
+}
diff --git a/API_project/Packaging_module/Packaging_module.iml b/API_project/Packaging_module/Packaging_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Packaging_module/Packaging_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Packaging_module/src/Case_package/case_demo1.java b/API_project/Packaging_module/src/Case_package/case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f8176f1617828f8fbaf3121385dab042f62f381
--- /dev/null
+++ b/API_project/Packaging_module/src/Case_package/case_demo1.java
@@ -0,0 +1,51 @@
+package Case_package;
+
+import java.util.ArrayList;
+import java.util.Scanner;
+
+public class case_demo1 {
+ public static void main(String[] args) {
+ /*
+ 键盘录入一些1~100之间的整数,并添加到集合中。
+ 直到集合中所有数据和超过200为止。
+ */
+
+ //1、创建一个集合用来添加整数
+ ArrayList list = new ArrayList<>();
+
+ //2、键盘录入数据添加到集合中
+ while (true) {
+ System.out.println("请输入一个整数:");
+ Scanner sc = new Scanner(System.in);
+ String numStr = sc.nextLine();
+ int num = Integer.parseInt(numStr);
+
+ //先把异常数据先进行过滤
+ if (num < 1 || num > 100) {
+ System.out.println("当前数字不在1~100的范围当中,请重新输入");
+ continue;
+ }
+ //添加到集合中
+ //细节:
+ //num:基本数据类型
+ //集合里面的数据是Integer
+ //在添加数据的时候触发了自动装箱
+ list.add(num);
+
+ //统计集合中所有的数据和
+ int sum = getSum(list);
+ if (sum > 200) {
+ System.out.println("集合中所有的数据和已经满足要求");
+ break;
+ }
+ }
+ }
+
+ private static int getSum(ArrayList list) {
+ int sum = 0;
+ for (int i = 0; i < list.size(); i++) {
+ sum += list.get(i);
+ }
+ return sum;
+ }
+}
diff --git a/API_project/Packaging_module/src/Case_package/case_demo2.java b/API_project/Packaging_module/src/Case_package/case_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c7b3ddbae9283394dbb9f2cef48078cfe4f19f3a
--- /dev/null
+++ b/API_project/Packaging_module/src/Case_package/case_demo2.java
@@ -0,0 +1,38 @@
+package Case_package;
+
+public class case_demo2 {
+ public static void main(String[] args) {
+ /*
+ 自己实现parseInt方法的效果,将字符串形式的数据转成整数。
+ 要求:
+ 字符串中只能是数字,不能有其他字符
+ 最后一位,最多10位
+ 0不能开头
+ */
+
+ //1、定义一个字符串
+ String str = "123456789";
+ //2、校验字符串
+ //习惯:会先把异常数据进行过滤,剩下了就是正常的数据
+ if (!str.matches("[1-9]\\d{0,9}")) {
+ //错误的数据
+ System.out.println("数据格式有误");
+ } else {
+ //正确的数据
+ System.out.println("数据格式正确");
+
+ //3、定义一个变量表示最终的结果
+ int number = 0;
+
+ //4、遍历字符串得到里面的每一个字符
+ // 1 2 3 4
+ for (int i = 0; i < str.length(); i++) {
+ int c = str.charAt(i) - '0';
+ //把每一位数字放到number当中
+ number = number * 10 + c;
+ }
+
+ System.out.println(number);
+ }
+ }
+}
diff --git a/API_project/Packaging_module/src/Case_package/case_demo3.java b/API_project/Packaging_module/src/Case_package/case_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2b532816ac41c10a1d84e5ad9956935bd72f957
--- /dev/null
+++ b/API_project/Packaging_module/src/Case_package/case_demo3.java
@@ -0,0 +1,37 @@
+package Case_package;
+
+public class case_demo3 {
+ public static void main(String[] args) {
+ /*
+ 定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制
+ */
+
+ System.out.println(toBinaryString(123));
+ System.out.println(Integer.toBinaryString(123));
+ }
+
+ public static String toBinaryString(int number) {
+ //核心逻辑:不断的去除以2,得到余数,一直到商为0就结束
+ //还需要把余数倒着拼接起来
+
+ //定义一个StringBuilder用来拼接余数
+ StringBuilder sb = new StringBuilder();
+
+ //利用循环不断的除以2获取余数
+ while (true) {
+ if (number == 0) {
+ break;
+ }
+
+ //获取余数 %
+ int remainder = number % 2;
+ //倒着拼接
+ sb.insert(0, remainder);
+
+ //除以2 /
+ number /= 2;
+ }
+
+ return sb.toString();
+ }
+}
diff --git a/API_project/Packaging_module/src/Case_package/case_demo4.java b/API_project/Packaging_module/src/Case_package/case_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..a330552950e65d4eff55026d608dca636335efca
--- /dev/null
+++ b/API_project/Packaging_module/src/Case_package/case_demo4.java
@@ -0,0 +1,40 @@
+package Case_package;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+
+public class case_demo4 {
+ public static void main(String[] args) throws ParseException {
+ //请使用代码实现计算你活了多少天,用JDK7和JDK8两种方式完成
+
+ //JDK7
+ //规则:只要对时间进行计算或者判断,都需要先获取当前时间的毫秒值
+
+ //1、计算出生年月日的毫秒值
+ String birthday = "2002年3月7日";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+ Date date = sdf.parse(birthday);
+
+ long birthdayTime = date.getTime();
+
+ //2、获取当前时间的毫秒值
+ long todayTime = System.currentTimeMillis();
+
+ //3、计算间隔了多少天
+ long time = todayTime - birthdayTime;
+ System.out.println(time / 1000 / 60 / 60 / 24);
+
+
+ //JDK8
+ LocalDate ld1 = LocalDate.of(2002, 3, 7);
+ LocalDate ld2 = LocalDate.now();
+
+ long days = ChronoUnit.DAYS.between(ld1, ld2);
+ System.out.println(days);
+
+ }
+}
diff --git a/API_project/Packaging_module/src/Case_package/case_demo5.java b/API_project/Packaging_module/src/Case_package/case_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..92ba28986ffc41f0f1ba315d6c27fc5796562c69
--- /dev/null
+++ b/API_project/Packaging_module/src/Case_package/case_demo5.java
@@ -0,0 +1,39 @@
+package Case_package;
+
+import java.time.LocalDate;
+import java.util.Calendar;
+
+public class case_demo5 {
+ public static void main(String[] args) {
+ /*
+ 判断任意的一个年份是闰年还是平年
+ 要求:用JDK7和JDK8两种方式判断
+ 提示:
+ 二月有29天是闰年
+ 一年有366天是闰年
+ */
+
+ //JDK7
+ //我们可以把时间设置为2000年3月1日
+ Calendar c = Calendar.getInstance();
+ c.set(2002, 2, 1);//月份的范围0~11
+ //再把日历往前减一天
+ c.add(Calendar.DAY_OF_MONTH, -1);
+ //看当前的时间是28号还是29号?
+ int day = c.get(Calendar.DAY_OF_MONTH);
+ System.out.println(day);
+
+ //JDK8
+ //月份的范围:1~12
+ //设定时间为2002年的3月1日
+ LocalDate ld = LocalDate.of(2002, 3, 1);
+ //把时间往前减一天
+ LocalDate ld2 = ld.minusDays(1);
+ //获取这一天是一个月中的几号
+ int day2 = ld2.getDayOfMonth();
+ System.out.println(day2);
+ //true:闰年
+ //false:平年
+ System.out.println(ld.isLeapYear());
+ }
+}
diff --git a/API_project/Packaging_module/src/Integer_package/Integer_demo1.java b/API_project/Packaging_module/src/Integer_package/Integer_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed4d078a9d7ff501942a8c261f42840321b81b57
--- /dev/null
+++ b/API_project/Packaging_module/src/Integer_package/Integer_demo1.java
@@ -0,0 +1,52 @@
+package Integer_package;
+
+public class Integer_demo1 {
+ public static void main(String[] args) {
+ /*
+ public Integer (int value) 根据传递的整数创建一个Integer对象
+ public Integer (String s) 根据传递的字符串创建一个Integer对象
+ public static Integer valueOf (int i) 根据传递的整数创建一个Integer对象
+ public static Integer valueOf (String s) 根据传递的字符串创建一个Integer对象
+ public static Integer valueOf (String s, int radix) 根据传递的字符串和进制创建一个Integer对象
+ */
+
+ //1、利用构造方法获取Integer的对象
+// Integer i1 = new Integer(1);
+// Integer i2 = new Integer("1");
+// System.out.println(i1);
+// System.out.println(i2);
+
+ //2、利用静态方法获取Integer的对象
+ Integer i3 = Integer.valueOf(123);
+ Integer i4 = Integer.valueOf("123");
+ Integer i5 = Integer.valueOf("123", 8);
+ System.out.println(i3);
+ System.out.println(i4);
+ System.out.println(i5);
+
+ //3、这两种方式获取对象的区别
+ //底层原理:
+ //因为在实际开发中,-128~127之间的数据,用的比较多
+ //如果每次使用都是new对象,那么太浪费内存了
+ //所以,提前把这个范围之内的每一个数据都创建好对象
+
+ Integer i6 = Integer.valueOf(127);
+ Integer i7 = Integer.valueOf(127);
+ System.out.println(i6 == i7);//true
+
+ Integer i8 = Integer.valueOf(128);
+ Integer i9 = Integer.valueOf(128);
+ System.out.println(i8 == i9);//false
+
+
+ //因为看到了new关键字,在Java中,每一次new都是创建了一个新的对象
+ //所以下面的两个对象都是new出来,地址值不一样
+// Integer i10 = new Integer(127);
+// Integer i11 = new Integer(127);
+// System.out.println(i10 == i11);//false
+//
+// Integer i12 = new Integer(128);
+// Integer i13 = new Integer(128);
+// System.out.println(i12 == i13);//false
+ }
+}
diff --git a/API_project/Packaging_module/src/Integer_package/Integer_demo2.java b/API_project/Packaging_module/src/Integer_package/Integer_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..69b9c3457a03ec6cbc2999c903b417a6f558d7be
--- /dev/null
+++ b/API_project/Packaging_module/src/Integer_package/Integer_demo2.java
@@ -0,0 +1,35 @@
+package Integer_package;
+
+public class Integer_demo2 {
+ public static void main(String[] args) {
+ /*
+ public static String toBinaryString (int i) 得到二进制
+ public static String toOctalString (int i) 得到八进制
+ public static String toHexString (int i) 得到十六进制
+ public static int parseInt (String s) 将字符串类型的整数转成int类型的整数
+ */
+
+ //1、把整数转成二进制、十六进制
+ String str1 = Integer.toBinaryString(100);
+ System.out.println(str1);
+
+ //2、把整数转成八进制
+ String str2 = Integer.toOctalString(100);
+ System.out.println(str2);
+
+ //3、把整数转成十六进制
+ String str3 = Integer.toHexString(100);
+ System.out.println(str3);
+
+ //4、将字符串类型的整数转成int类型的整数
+ int i = Integer.parseInt("123");
+ System.out.println(i);
+ //细节1:
+ //在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错
+ //细节2:
+ //8种包装类当中,除了Character都有对应的parseXxx的方法,进行类型转换
+ String s = "true";
+ boolean b = Boolean.parseBoolean(s);
+ System.out.println(b);
+ }
+}
diff --git a/API_project/Packaging_module/src/Integer_package/Integer_demo3.java b/API_project/Packaging_module/src/Integer_package/Integer_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..e35f69a7aa263cd7d703647da2136725e45fa6ad
--- /dev/null
+++ b/API_project/Packaging_module/src/Integer_package/Integer_demo3.java
@@ -0,0 +1,26 @@
+package Integer_package;
+
+import java.util.Scanner;
+
+public class Integer_demo3 {
+ public static void main(String[] args) {
+ //键盘录入
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入一个字符串:");
+
+ //弊端:
+ //当我们在使用next,nextInt,nextDouble在接收数据的时候,遇到空格,回车,制表符的时候就停止了
+ //键盘录入的是123 123 那么此时只能接收到空格前面的数据
+ //我想要的是接收一整行数据
+ //约定:
+ //以后我们想要键盘录入,不管什么类型,统一使用nextLine
+ //特点遇到回车才停止
+
+ String line = sc.nextLine();
+ System.out.println(line);
+
+ double v = Double.parseDouble(line);
+ System.out.println(v);
+
+ }
+}
diff --git a/API_project/Regular_expression_module/Regular_expression_module.iml b/API_project/Regular_expression_module/Regular_expression_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Regular_expression_module/Regular_expression_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo1.java b/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..73565f41af79367c0f09e25ac753748131639c6a
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo1.java
@@ -0,0 +1,72 @@
+package Regular_expression_Case_package;
+
+import javax.xml.transform.Source;
+
+public class Regex_demo1 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 请编写正则表达式验证用户输入的手机号码是否满足要求。
+ 请编写正则表达式验证用户输入的邮箱号是否满足要求。
+ 请编写正则表达式验证用户输入的电话号码是否满足要求。
+
+ 验证手机号码 13112345678 13712345667 13945679027 139456790271
+ 验证座机电话号码 020-2324242 02122442 027-42424 0712-3242434
+ 验证邮箱号码 3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn
+ */
+
+ //心得:
+ //拿着一个正确的数据,从左到右依次去写
+ //13112345678
+ //分成三部分:
+ //第一部分:1 表示手机号码只能以1开头
+ //第二部分:[3-9] 表示手机号码第二位只能是3-9之间的
+ //第三部分:\\d{9} 表示任意数字可以出现9次,也只能出现9次
+ String regex1 = "1[3-9]\\d{9}";
+ System.out.println("13112345678".matches(regex1));
+ System.out.println("13712345667".matches(regex1));
+ System.out.println("13945679027".matches(regex1));
+ System.out.println("139456790271".matches(regex1));
+
+
+ //座机电话号码
+ //020-2324242 02122442 027-42424 0712-3242434
+ //思路:
+ //在书写座机号正则的时候需要把正确的数据分为三部分
+ //一:区号 0\\d{2,3}
+ // 0:表示区号一定是以0开头的
+ // \\d{2,3}:表示区号从第二位开始可以是任意的数字,可以出现2到3次
+ //二:- ?表示次数,0次或1次
+ //三:号码 号码的第一位也不能以0开头,从第二位开始可以是任意的数字,号码的总长度:5-10
+ String regex2 = "0\\d{2,3}-?[1-9]\\d{4,9}";
+ System.out.println("020-2324242".matches(regex2));
+ System.out.println("02122442".matches(regex2));
+ System.out.println("027-42424".matches(regex2));
+ System.out.println("0712-3242434".matches(regex2));
+
+
+ //邮箱号码
+ //3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn
+ //思路:
+ //在书写邮箱号码正则的时候需要把正确的数据分为三部分
+ //第一部分:@的左边
+ // \\w+ 任意的字母数字下划线,至少出现一次就可以了
+ //第二部分:@ 只能出现一次
+ //第三部分:
+ // 3.1 .的左边 [\\w&&[^_]]{2,6}
+ // 任意的字母加数字,总共出现2-6次(此时不能出现下划线)
+ // 3.2 . \\.
+ // 3.3 大写字母,小写字母都可以,只能出现2-3次 [a-zA-Z]{2,3}
+ // 我们可以把3.2和3.3看成一组,这一组可以出现1次或者2次
+ String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";
+ System.out.println("3232323@qq.com".matches(regex3));
+ System.out.println("zhangsan@itcast.cnn".matches(regex3));
+ System.out.println("dlei0009@163.com".matches(regex3));
+ System.out.println("dlei0009@pci.com.cn".matches(regex3));
+
+
+ //24小时的正则表达式
+ String regex4 = "([01]\\d|2[0-3])(:[0-5]\\d){2}";
+ System.out.println("23:11:11".matches(regex4));
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo2.java b/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1b23918c2630631a5a37ed9d21adaf6a139a5dd
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Regular_expression_Case_package/Regex_demo2.java
@@ -0,0 +1,65 @@
+package Regular_expression_Case_package;
+
+public class Regex_demo2 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 请编写正则表达式验证用户名是否满足要求。
+ 要求:大小写字母,数字,下划线一共4-16位
+ 请编写正则表达式验证身份证号码是否满足要求。
+ 简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x
+ 复杂要求:按照身份证号码的格式
+
+ 身份证号码:
+ 吴海港 14042419861123283X
+ 汪少明 350122198009090517
+ 黄陈晓 331023199303277190
+ 邝建鸿 370103199302090953
+ */
+
+ //用户名要求:大小写字母,数字,下划线一共4-16位 [a-zA-Z0-9_]
+ String regex1 = "\\w{4,16}";
+ System.out.println("zhangsan".matches(regex1));
+ System.out.println("$1234".matches(regex1));
+
+ //身份证号码的简单校验:
+ //18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x
+ String regex2 = "[1-9]\\d{16}(\\d|X|x)";
+ System.out.println("14042419861123283X".matches(regex2));
+ System.out.println("350122198009090517".matches(regex2));
+ System.out.println("331023199303277190".matches(regex2));
+ System.out.println("370103199302090953".matches(regex2));
+
+
+ //忽略大小写的书写方式
+ //在匹配的时候忽略bc的大小写
+ String regex4 = "a(?i)bc";
+ System.out.println("----------------------");
+ System.out.println("abc".matches(regex4));
+ System.out.println("ABC".matches(regex4));
+ System.out.println("aBC".matches(regex4));
+
+
+ //身份证号码的严格校验
+ //编写正则的小心得:
+ //第一步:按照正确的数据进行拆分
+ //第二步:找每一部分的规律,并编写正则表达式
+ //第三步:把每一部分的正则拼接在一起,就是最终的结果
+ //书写的时候:从左到右去书写
+
+
+ //14042419861123283X
+ //前面6位:省份,市区,派出所等信息 第一位不能是0,后面5位是任意数字 [1-9]\\d{5}
+ //年的前半段:18 19 20 (18|19|20)
+ //年的后半段:任意数字出现两次 \\d{2}
+ //月份: 12个月 0[1-9]|1[0-2]
+ //日期: 1~31 0[1-9]|[12]\\d|3[01]
+ //后面四位:任意数字出现3次,最后一位可以是数字也可以是大写X或者小写x \\d{3}[\\dXx]
+ String regex5 = "[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";
+ System.out.println("----------------------");
+ System.out.println("14042419861123283X".matches(regex5));
+ System.out.println("350122198009090517".matches(regex5));
+ System.out.println("331023199303277190".matches(regex5));
+ System.out.println("370103199302090953".matches(regex5));
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo1.java b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d9c16b05850db1b2391fd30a9c942caa738d6bd6
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo1.java
@@ -0,0 +1,46 @@
+package Regular_expression_package;
+
+public class Regex_demo1 {
+ public static void main(String[] args) {
+ /*
+ 假如现在要求校验一个QQ号码是否正确,
+ 规则:6位及20位之内,0不能在开头,必须全部是数字。
+ 先使用目前所学知识完成校验需求
+ 然后体验一下正则表达式检验
+ */
+
+ String qq = "1234567890";
+ System.out.println(checkQQ(qq));
+
+ System.out.println(qq.matches("[1-9]\\d{5,19}"));
+
+ }
+
+ public static boolean checkQQ(String qq) {
+ //规则:6位及20位之内,0不能在开头,必须全部是数字
+ //核心思想:
+ //先把异常数据进行过滤
+ //下面的就是满足要求的数据了
+ int len = qq.length();
+
+ if ((len < 6) || (len > 20)) {
+ return false;
+ }
+
+ //0不能在开头
+ if (qq.startsWith("0")) {
+ return false;
+ }
+
+ //必须全部是数字
+ for (int i = 0; i < qq.length(); i++) {
+ char c = qq.charAt(i);
+ if (c < '0' || c > '9'){
+ return false;
+ }
+ }
+
+ return true;
+
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo2.java b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..2dd7aeb6be9f21a89fe43a5c9c2ceddd0396609c
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo2.java
@@ -0,0 +1,68 @@
+package Regular_expression_package;
+
+public class Regex_demo2 {
+ public static void main(String[] args) {
+ //public boolean matches (String regex):判断是否与正则表达式匹配,匹配返回true
+
+ //只能是 a b c
+ System.out.println("------------1-------------");
+ System.out.println("a".matches("[abc]")); //true
+ System.out.println("z".matches("[abc]")); //false
+ System.out.println("ab".matches("[abc]")); //false
+ System.out.println("ab".matches("[abc][abc]")); //true
+
+ //不能出现 a b c
+ System.out.println("------------2-------------");
+ System.out.println("a".matches("[^abc]")); // false
+ System.out.println("z".matches("[^abc]")); // true
+ System.out.println("zz".matches("[^abc]")); // false
+ System.out.println("zz".matches("[^abc][^abc]")); //true
+
+
+ // a到z A到Z (包含头尾范围)
+ System.out.println("------------3-------------");
+ System.out.println("a".matches("[a-zA-Z]")); // true
+ System.out.println("z".matches("[a-zA-Z]")); // true
+ System.out.println("aa".matches("[a-zA-Z]")); // false
+ System.out.println("zz".matches("[a-zA-Z]")); // false
+ System.out.println("zz".matches("[a-zA-Z][a-zA-Z]")); // true
+ System.out.println("0".matches("[a-zA-Z]")); // false
+ System.out.println("0".matches("[a-zA-Z0-9]")); // true
+
+
+ //[a-d[m-p]] a到d,或m到p
+ System.out.println("------------4-------------");
+ System.out.println("a".matches("[a-d[m-p]]"));//true
+ System.out.println("d".matches("[a-d[m-p]]"));//true
+ System.out.println("m".matches("[a-d[m-p]]"));//true
+ System.out.println("p".matches("[a-d[m-p]]"));//true
+ System.out.println("e".matches("[a-d[m-p]]"));//false
+ System.out.println("0".matches("[a-d[m-p]]"));//false
+
+
+ //[a-z&&[def]] a-z和def的交集,为:d,e,f
+ //细节:如果要求两个范围的交集,那么需要写符号 &&
+ //如果写成&,那么此时&表示就不是交集了,而是一个简简单单的&符号
+ System.out.println("------------5-------------");
+ System.out.println("a".matches("[a-z&[def]]")); //true
+ System.out.println("&".matches("[a-z&[def]]")); //true
+ System.out.println("d".matches("[a-z&&[def]]")); //true
+ System.out.println("0".matches("[a-z&&[def]]")); //false
+
+
+ //[a-z&&[^bc]] a-z和非bc的交集
+ System.out.println("------------6-------------");
+ System.out.println("a".matches("[a-z&&[^bc]]")); //true
+ System.out.println("b".matches("[a-z&&[^bc]]")); //false
+ System.out.println("0".matches("[a-z&&[^bc]]")); //false
+
+
+ //[a-z&&[^m-p]] a-z和除m-p的交集
+ System.out.println("------------7-------------");
+ System.out.println("a".matches("[a-z&&[^m-p]]")); //true
+ System.out.println("m".matches("[a-z&&[^m-p]]")); //false
+ System.out.println("0".matches("[a-z&&[^m-p]]")); //false
+
+
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo3.java b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..368ba1d7d373a547ed38ed48a7ae70c5d6953840
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Regular_expression_package/Regex_demo3.java
@@ -0,0 +1,53 @@
+package Regular_expression_package;
+
+public class Regex_demo3 {
+ public static void main(String[] args) {
+ // \ 转义字符 改变后面那个字符原本的含义
+ //练习:以字符串的形式打印一个双引号
+ //" 在Java中表示字符串的开头或者结尾
+
+ //此时\表示转义字符,改变了后面那个双引号原本的含义
+ //把其变成了一个普普通通的双引号而已
+ System.out.println("\"\"");
+
+ // \\前面的\是一个转义字符,改变了后面\原本的含义,把他变成一个普普通通的\而已
+ System.out.println("\\");
+
+
+ // .表示任意字符
+ System.out.println("你".matches("..")); //false
+ System.out.println("你a".matches("..")); //true
+
+
+ // \\d只能是任意的一位数字
+ // 简单来记:两个\表示一个\
+ System.out.println("a".matches("\\d")); //false
+ System.out.println("3".matches("\\d")); //true
+ System.out.println("333".matches("\\d")); //false
+
+
+ // \\w只能是一位单词字符 [a-zA-Z_0-9]
+ System.out.println("z".matches("\\w")); //true
+ System.out.println("2".matches("\\w")); //true
+ System.out.println("21".matches("\\w")); //false
+ System.out.println("你".matches("\\w")); //false
+
+
+ //非单词字符
+ System.out.println("你".matches("\\W")); //true
+ System.out.println("--------------------");
+ //以上正则匹配只能校验单个字符
+
+
+ //必须是数字 字母 下划线 至少6位
+ System.out.println("2442fsfsf".matches("\\w{6,}")); //true
+ System.out.println("244f".matches("\\w{6,}")); //false
+
+
+ //必须是数字和字符 必须是4位
+ System.out.println("23dF".matches("[a-zA-Z0-9]{4}"));//true
+ System.out.println("23_F".matches("[a-zA-Z0-9]{4}"));//false
+ System.out.println("23dF".matches("[\\w&&[^_]]{4}"));//true
+ System.out.println("23_F".matches("[\\w&&[^_]]{4}"));//false
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo1.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd6fe0e8b2e526303b68bc0e2308d9b0694ab556
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo1.java
@@ -0,0 +1,61 @@
+package Reptile_package;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class Reptile_demo1 {
+ public static void main(String[] args) {
+ /*如下文本,请按要求爬取数据。
+ java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11,
+ 因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台
+ 要求:找出里面所有的javaXX
+ */
+
+ String str = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11," +
+ "因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台";
+
+ //method1(str);
+
+ //1、获取正则表达式的对象
+ Pattern p = Pattern.compile("java\\d{0,2}");
+
+ //2、获取文件匹配器的对象
+ //拿着m去读取str,找符合p规则的子串
+ Matcher m = p.matcher(str);
+
+ //3、利用循环获取
+ while (m.find()) {
+ String s = m.group();
+ System.out.println(s);
+
+ }
+ }
+
+ private static void method1(String str) {
+ //Pattern:表示正则表达式
+ //Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读
+ //在大串中去找符合匹配规则的子串
+
+ //获取正则表达式的对象
+ Pattern p = Pattern.compile("java\\d{0,2}");
+ //获取文件匹配器的对象
+ //m:文本匹配器的对象
+ //str:大串
+ //p:规则
+ //m要在str中找符合p规则的小串
+ Matcher m = p.matcher(str);
+
+ //拿着文本匹配器从头开始读取,寻找是否有满足规则的子串
+ //如果没有,方法返回false
+ //如果有,返回true。在底层记录子串的起始索引和结束索引+1
+ boolean b = m.find();
+
+ //方法的底层会根据find方法记录的索引进行字符串的截取
+ //sunString(起始索引,结束索引);包头不包尾
+ String s1 = m.group();
+ System.out.println(s1);
+
+ }
+
+
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo2.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f44f4d449e674e37fd0bae192f5530187bcec38
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo2.java
@@ -0,0 +1,41 @@
+package Reptile_package;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class Reptile_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 把链接:http://www.hzxdjm.com/131133.html
+ 中所有的身份证号码都爬取出来。
+ */
+
+ //创建一个URL对象
+ URL url = new URL("http://www.hzxdjm.com/131133.html");
+ //连接上这个网址
+ //细节:保证网络是畅通的
+ URLConnection conn = url.openConnection();
+ //创建一个对象去读取网络中的数据
+ BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+
+ String line;
+ //获取正则表达式的对象
+ String regex = "[1-9]\\d{17}";
+ Pattern pattern = Pattern.compile(regex);
+ //在读取的时候,每次读一整行
+ while ((line = br.readLine()) != null) {
+ //拿着文本匹配器的对象matcher按照pattern的规则去读取当前这一行信息
+ Matcher matcher = pattern.matcher(line);
+ while (matcher.find()) {
+ System.out.println(matcher.group());
+ }
+ }
+ br.close();
+
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo3.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe660f35f17b1f9f75dd7e307ee63264e0f2a041
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo3.java
@@ -0,0 +1,39 @@
+package Reptile_package;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class Reptile_demo3 {
+ public static void main(String[] args) {
+ /*有如下文本,请按照要求爬取数据:
+ java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11,
+ 因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台。
+
+ 需求1:爬取版本号为8,11,17的java文本,但是只要java,不显示版本号。
+ 需求2:爬取版本号为8,11,17的java文本。正确爬取结果为:java8,java11,java17,java17
+ 需求3:爬取除了版本号为8,11,17的java文本
+ */
+
+ String s = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11," +
+ "因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台。";
+
+ //1、定义正则表达式
+ // ?理解为前面的数据java
+ // =表示在java后面要跟随的数据
+ //但是在获取的时候,只获取前半部分
+ //需求1:
+ String regex1 = "((?i)java)(?=8|11|17)";
+ //需求2:
+ String regex2 = "((?i)java)(8|11|17)";
+ String regex3 = "((?i)java)(?:8|11|17)";
+ //需求3:
+ String regex4 = "((?i)java)(?!8|11|17)";
+
+ Pattern p = Pattern.compile(regex4);
+ Matcher m = p.matcher(s);
+ while (m.find()) {
+ System.out.println(m.group());
+ }
+
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo4.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb30c4a33094120fb54c7a04ed261525738d5c2d
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo4.java
@@ -0,0 +1,36 @@
+package Reptile_package;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class Reptile_demo4 {
+ public static void main(String[] args) {
+ /*
+ 只写+和*表示贪婪匹配
+ +? 非贪婪匹配
+ *? 非贪婪匹配
+
+ 贪婪爬取:在爬取数据的时候尽可能的多获取数据
+ 非贪婪爬取:在爬取数据的时候尽可能的少获取数据
+
+ ab+:
+ 贪婪爬取:abbbbbbbbbbb
+ 非贪婪爬取:ab
+
+ java当中,默认的就是贪婪爬取
+ 如果我们在数量词 + * 的后面加上问号,那么此时就是非贪婪爬取
+ */
+
+ String s = "java自从95年问世以来,abbbbbbbbbbb,经历了很多版本,目前企业中用的最多的是java8和java11," +
+ "因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台";
+
+ String regex = "ab+?";
+
+ Pattern p = Pattern.compile(regex);
+ Matcher m = p.matcher(s);
+
+ while (m.find()) {
+ System.out.println(m.group());
+ }
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo5.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef5ad26850f7027c495db03d84ab7d74abf2a554
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo5.java
@@ -0,0 +1,27 @@
+package Reptile_package;
+
+public class Reptile_demo5 {
+ public static void main(String[] args) {
+ //public String replaceAll (String regex, String newStr) 按照正则表达式的规则进行替换
+ //public String[] split (String regex) 按照正则表达式的规则切割字符串
+
+ /*
+ 有一段字符串:小诗诗zxcvredwqen12345小丹丹nieqicix3745小惠惠
+ 要求1:把字符串中三个姓名之间的字母替换为vs
+ 要求2:把字符串中的三个姓名切割出来
+ */
+
+ String s = "小诗诗zxcvredwqen12345小丹丹nieqicix3745小惠惠";
+ //细节:
+ //方法在底层跟之前一样也会创建文本解析器的对象
+ //然后从头开始去读取字符串中的内容,只要有满足的,那么就用第二个参数去替换。
+ String result1 = s.replaceAll("[\\w&&[^_]]+", "vs");
+ System.out.println(result1);
+
+ String[] arr = s.split("[\\w&&[^_]]+");
+ for (int i = 0; i < arr.length; i++) {
+ System.out.println(arr[i]);
+ }
+ }
+
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo6.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c2e0ff34eeccd78a05c1fb355a30a6f75044ce0
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo6.java
@@ -0,0 +1,40 @@
+package Reptile_package;
+//捕获分组1
+public class Reptile_demo6 {
+ public static void main(String[] args) {
+ //需求1:判断一个字符串的开始字符和结束字符是否一致?只考虑一个字符
+ //举例: a123a b456b 17891 &abc& a123b(false)
+ // \\组号:表示把第x组的内容再拿出来用一次
+ String regex1 = "(.).+\\1";
+ System.out.println("a123a".matches(regex1));
+ System.out.println("b456b".matches(regex1));
+ System.out.println("17891".matches(regex1));
+ System.out.println("&abc&".matches(regex1));
+ System.out.println("a123b".matches(regex1));
+ System.out.println("---------------------");
+
+
+ //需求2:判断一个字符串的开始部分和结束部分是否一致?可以有多个字符
+ //举例: abc123abc 123789123 &!@abc&!@ abc123abd(false)
+ String regex2 = "(.+).+\\1";
+ System.out.println("abc123abc".matches(regex2));
+ System.out.println("123789123".matches(regex2));
+ System.out.println("&!@abc&!@".matches(regex2));
+ System.out.println("abc123abd".matches(regex2));
+ System.out.println("---------------------");
+
+ //需求3:判断一个字符串的开始部分和结束部分是否一致?开始部分内部每个字符也需要一致
+ //举例:aaa123aaa bbb456bbb 111789111 &&abc&&
+
+ //* 0次或多次
+ // (.):把首字母看做一组
+ // \\2:把首字母拿出来再次使用
+ // *:作用于\\2,表示后面重复的内容出现0次或多次
+ String regex3 = "((.)\\2*).+\\1";
+ System.out.println("aaa123aaa".matches(regex3));
+ System.out.println("bbb456bbb".matches(regex3));
+ System.out.println("111789111".matches(regex3));
+ System.out.println("&&abc&&".matches(regex3));
+
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo7.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo7.java
new file mode 100644
index 0000000000000000000000000000000000000000..565044dfb9f6f3fbb24e47d6cf53a57332424dc5
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo7.java
@@ -0,0 +1,23 @@
+package Reptile_package;
+//捕获分组2
+public class Reptile_demo7 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 将字符串:我要学学编编编编程程程程程程程
+ 替换为:我要学编程
+ */
+
+ String str = "我要学学编编编编程程程程程程程";
+
+ //需求:把重复的内容 替换为 单个的
+ //学学 学
+
+ //(.) 表示把重复内容的第一个字符看做一组
+ // \\1 表示第一个字符再次出现
+ // + 至少一次
+ // $1 表示把正则表达式中第一组的内容,再拿出来用
+ String result = str.replaceAll("(.)\\1+", "$1");
+ System.out.println(result);
+ }
+}
diff --git a/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo8.java b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo8.java
new file mode 100644
index 0000000000000000000000000000000000000000..32981cb3f75acadae1da3e3947546631bf25e42a
--- /dev/null
+++ b/API_project/Regular_expression_module/src/Reptile_package/Reptile_demo8.java
@@ -0,0 +1,26 @@
+package Reptile_package;
+//非捕获分组
+public class Reptile_demo8 {
+ public static void main(String[] args) {
+ /*
+ 非捕获分组:分组之后不需要再用本组数据,仅仅是把数据括起来。
+
+ 身份证号码:
+ 430723197703082618
+ 11204416541220243X
+ 13072120220327607X
+ 130721202203199908
+ */
+
+ //身份证号码的简易正则表达式
+ //非捕获分组:仅仅是把数据括起来
+ //特点:不占用组号
+ //这里\\1报错原因:(?:)就是非捕获分组,此时是不占用组号的。
+
+ //(?:) (?=) (?!) 都是非捕获分组
+ //更多的使用第一个
+ //error: String regex="[1-9]\\d{16}(?i\\d|X|x)\\1";
+
+ //System.out.println("430723197703082618".matches(regex));
+ }
+}
diff --git a/API_project/Runtime_module/Runtime_module.iml b/API_project/Runtime_module/Runtime_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/Runtime_module/Runtime_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/Runtime_module/src/Runtime_package/Runtime_demo1.java b/API_project/Runtime_module/src/Runtime_package/Runtime_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..8417860e8994374f0a9105c55828e1a7f52e3e5b
--- /dev/null
+++ b/API_project/Runtime_module/src/Runtime_package/Runtime_demo1.java
@@ -0,0 +1,48 @@
+package Runtime_package;
+
+import java.io.IOException;
+
+public class Runtime_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ public static Runtime getRuntime() 当前系统的运行环境对象
+ public void exit(int status) 停止虚拟机
+ public int availableProcessors() 获得CPU的线程数
+ public long maxMemory() JVM能从系统中获取总内存大小(单位byte)
+ public long totalMemory() JVM已经从系统中获取总内存大小(单位byte)
+ public long freeMemory() JVM剩余内存大小(单位byte)
+ public Process exec(String command) 运行cmd命令
+ */
+
+ //1、获取Runtime的对象
+ Runtime r1 = Runtime.getRuntime();
+ Runtime r2 = Runtime.getRuntime();
+
+ System.out.println(r1 == r2);//true --- 只能获取一个Runtime对象
+
+ //2、exit 停止虚拟机
+// r1.exit(0);
+// System.out.println("看看我执行了吗?");
+
+ //3、获取CPU的线程数
+ System.out.println(Runtime.getRuntime().availableProcessors());
+
+ //4、总内存大小
+ System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);
+
+ //5、已经获取的总内存大小
+ System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);
+
+ //6、剩余内存大小
+ System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);
+
+ //7、运行cmd命令
+ //shutdown:关机
+ //加上参数才能执行
+ //-s:默认在1分钟之后关机
+ //-s -t 指定时间:指定关机时间
+ //-a:取消关机操作
+ //-r:关机并重启
+ Runtime.getRuntime().exec("shutdown -a");
+ }
+}
diff --git a/API_project/System_module/System_module.iml b/API_project/System_module/System_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/API_project/System_module/System_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/API_project/System_module/src/System_package/System_demo1.java b/API_project/System_module/src/System_package/System_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab99478d6eba8150c80a2b0087deed94bd371da2
--- /dev/null
+++ b/API_project/System_module/src/System_package/System_demo1.java
@@ -0,0 +1,43 @@
+package System_package;
+
+public class System_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static void exit (int status) 终止当前运行的 Java 虚拟机
+ public static long currentTimeMillis () 返回当前系统的时间毫秒值形式
+ public static void arraycopy (数据源数组,起始索引,目的地数组,起始索引,拷贝个数) 数组拷贝
+ */
+
+ //方法的形参:
+ //状态码:
+ //0:表示当前虚拟机是正常停止
+ //非0:表示当前虚拟机异常停止
+// System.exit(0);
+// System.out.println("看看我执行了吗?");
+
+ long l = System.currentTimeMillis();
+ System.out.println(l);
+
+ //拷贝数组
+ int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+ int[] arr2 = new int[10];
+
+ //把arr1数组中的数据拷贝到arr2中
+ //参数一:数据源,要拷贝的数据从哪个数组而来
+ //参数二:从数据源数组中的第几个索引开始拷贝
+ //参数三:目的地,我要把数据拷贝到哪个数组中
+ //参数四:目的地数组的索引
+ //参数五:拷贝的个数
+ System.arraycopy(arr1, 0, arr2, 0, 5);
+
+ //验证
+ for (int i = 0; i < arr2.length; i++) {
+ System.out.print(arr2[i] + " ");
+ }
+ System.out.println();
+ //细节:
+ //1、如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
+ //2、在拷贝的时候需要考虑数组的长度,如果超出范围也会报错
+ //3、如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型
+ }
+}
diff --git a/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo1.class b/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..215f75f8a645aadb60aa5b02b90c4b699cc38cbb
Binary files /dev/null and b/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo1.class differ
diff --git a/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo2.class b/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..7793e32b8a2b3b982848e6a27e5997588a587930
Binary files /dev/null and b/API_project/out/production/BigDecimal_module/BigDecimal_package/BigDecimal_demo2.class differ
diff --git a/API_project/out/production/BigInteger_module/BigInteger_demo1.class b/API_project/out/production/BigInteger_module/BigInteger_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..13a4e6bfe989b073535ec39fa96c644238ad9fe8
Binary files /dev/null and b/API_project/out/production/BigInteger_module/BigInteger_demo1.class differ
diff --git a/API_project/out/production/BigInteger_module/BigInteger_demo2.class b/API_project/out/production/BigInteger_module/BigInteger_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f7d4dde5fab370d811cdb0f0333d368bef68003a
Binary files /dev/null and b/API_project/out/production/BigInteger_module/BigInteger_demo2.class differ
diff --git a/API_project/out/production/Date_module/Calendar_package/Calendar_demo1.class b/API_project/out/production/Date_module/Calendar_package/Calendar_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..cb5dd1f66210c0701744266b3de4054a014ad479
Binary files /dev/null and b/API_project/out/production/Date_module/Calendar_package/Calendar_demo1.class differ
diff --git a/API_project/out/production/Date_module/Date_package/Date_demo1.class b/API_project/out/production/Date_module/Date_package/Date_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..56092bb6d9562b33401d86867859c1608de8ddd0
Binary files /dev/null and b/API_project/out/production/Date_module/Date_package/Date_demo1.class differ
diff --git a/API_project/out/production/Date_module/Date_package/Date_demo2.class b/API_project/out/production/Date_module/Date_package/Date_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..852da6925be7b89c8a25d5013bdbfac7e810630d
Binary files /dev/null and b/API_project/out/production/Date_module/Date_package/Date_demo2.class differ
diff --git a/API_project/out/production/Date_module/Instant_package/Instant_demo1.class b/API_project/out/production/Date_module/Instant_package/Instant_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..ae922eccb79a17b17035e1c6f090c4c73955b7cf
Binary files /dev/null and b/API_project/out/production/Date_module/Instant_package/Instant_demo1.class differ
diff --git a/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo1.class b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f69b5a101a5f91f03dca77f78b1e1ba861cc241a
Binary files /dev/null and b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo1.class differ
diff --git a/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo2.class b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..5b7283f233c2021f2fc05eb019424fdc8aea62f2
Binary files /dev/null and b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo2.class differ
diff --git a/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo3.class b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..049a0d74d2b3b8c62389edc26e26ebfab5c45704
Binary files /dev/null and b/API_project/out/production/Date_module/SimpleDateFormat_package/SimpleDateFormat_demo3.class differ
diff --git a/API_project/out/production/Date_module/ZoneId_package/ZoneId_demo1.class b/API_project/out/production/Date_module/ZoneId_package/ZoneId_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7208d4563fd099a5ff49d615995ec9dc7b089c81
Binary files /dev/null and b/API_project/out/production/Date_module/ZoneId_package/ZoneId_demo1.class differ
diff --git a/API_project/out/production/Math_module/Math_Case/IsPrime.class b/API_project/out/production/Math_module/Math_Case/IsPrime.class
new file mode 100644
index 0000000000000000000000000000000000000000..8c2e9d8ab6affea942f5de125908c2bad875cea9
Binary files /dev/null and b/API_project/out/production/Math_module/Math_Case/IsPrime.class differ
diff --git a/API_project/out/production/Math_module/Math_Case/Narcissistic_number.class b/API_project/out/production/Math_module/Math_Case/Narcissistic_number.class
new file mode 100644
index 0000000000000000000000000000000000000000..4beeb5bcb777f32e6bc46cb439767ff1d73d85d0
Binary files /dev/null and b/API_project/out/production/Math_module/Math_Case/Narcissistic_number.class differ
diff --git a/API_project/out/production/Math_module/Math_package/Math_demo1.class b/API_project/out/production/Math_module/Math_package/Math_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..fee9d777ec102fb803f75fb7a3480f94265d67e4
Binary files /dev/null and b/API_project/out/production/Math_module/Math_package/Math_demo1.class differ
diff --git a/API_project/out/production/Object_Objects_module/Object_package/Object_demo1.class b/API_project/out/production/Object_Objects_module/Object_package/Object_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..4d2985c951b40a453db2b7dd232f1b9e520fc957
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Object_package/Object_demo1.class differ
diff --git a/API_project/out/production/Object_Objects_module/Object_package/Object_demo2.class b/API_project/out/production/Object_Objects_module/Object_package/Object_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..bbb42b2c399ba913afa9919582d6941dd6389ba4
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Object_package/Object_demo2.class differ
diff --git a/API_project/out/production/Object_Objects_module/Object_package/Object_demo3.class b/API_project/out/production/Object_Objects_module/Object_package/Object_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..ff2efbd783781a4e712ac7b4924e390ff6004f04
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Object_package/Object_demo3.class differ
diff --git a/API_project/out/production/Object_Objects_module/Object_package/Student.class b/API_project/out/production/Object_Objects_module/Object_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..10abbdc943e0a42e4ad22aa029b1bd81ab024a9a
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Object_package/Student.class differ
diff --git a/API_project/out/production/Object_Objects_module/Object_package/User.class b/API_project/out/production/Object_Objects_module/Object_package/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..3547bb126636b4c96ae743d3beb7225c591d2a27
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Object_package/User.class differ
diff --git a/API_project/out/production/Object_Objects_module/Objects_package/Objects_demo1.class b/API_project/out/production/Object_Objects_module/Objects_package/Objects_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..686bb034aa925065f568ff2eed7048ccecde9330
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Objects_package/Objects_demo1.class differ
diff --git a/API_project/out/production/Object_Objects_module/Objects_package/Student.class b/API_project/out/production/Object_Objects_module/Objects_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..ae8d20d70434531b3ef90b55ac88beed38ff7bc0
Binary files /dev/null and b/API_project/out/production/Object_Objects_module/Objects_package/Student.class differ
diff --git a/API_project/out/production/Packaging_module/Case_package/case_demo1.class b/API_project/out/production/Packaging_module/Case_package/case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..8227244354ad901f5596b5fa577967b98f64e075
Binary files /dev/null and b/API_project/out/production/Packaging_module/Case_package/case_demo1.class differ
diff --git a/API_project/out/production/Packaging_module/Case_package/case_demo2.class b/API_project/out/production/Packaging_module/Case_package/case_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..ecad07bafe7cf7f0c8f0cf92dee05f190357dcce
Binary files /dev/null and b/API_project/out/production/Packaging_module/Case_package/case_demo2.class differ
diff --git a/API_project/out/production/Packaging_module/Case_package/case_demo3.class b/API_project/out/production/Packaging_module/Case_package/case_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..deb9229a8fcd53b1e66362cc549e80f0210f6d8a
Binary files /dev/null and b/API_project/out/production/Packaging_module/Case_package/case_demo3.class differ
diff --git a/API_project/out/production/Packaging_module/Case_package/case_demo4.class b/API_project/out/production/Packaging_module/Case_package/case_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..72ed6ad801f933d56689e6e1bb34ecb2b62a5f3c
Binary files /dev/null and b/API_project/out/production/Packaging_module/Case_package/case_demo4.class differ
diff --git a/API_project/out/production/Packaging_module/Case_package/case_demo5.class b/API_project/out/production/Packaging_module/Case_package/case_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..ccda345617560130b06fde3e1fc3090b21b0a543
Binary files /dev/null and b/API_project/out/production/Packaging_module/Case_package/case_demo5.class differ
diff --git a/API_project/out/production/Packaging_module/Integer_package/Integer_demo1.class b/API_project/out/production/Packaging_module/Integer_package/Integer_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ad45ea9cb0a544dc995572dfd5e2d5e105ba559
Binary files /dev/null and b/API_project/out/production/Packaging_module/Integer_package/Integer_demo1.class differ
diff --git a/API_project/out/production/Packaging_module/Integer_package/Integer_demo2.class b/API_project/out/production/Packaging_module/Integer_package/Integer_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..8c5b0d13f0be5eace8da2b138a60f24f5142f60a
Binary files /dev/null and b/API_project/out/production/Packaging_module/Integer_package/Integer_demo2.class differ
diff --git a/API_project/out/production/Packaging_module/Integer_package/Integer_demo3.class b/API_project/out/production/Packaging_module/Integer_package/Integer_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1c25b6cabc948f14667a2ad2cea585ff073323f
Binary files /dev/null and b/API_project/out/production/Packaging_module/Integer_package/Integer_demo3.class differ
diff --git a/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo1.class b/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..dcd8cb41fdf5f896f1aba66c34fb8c95b2587729
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo1.class differ
diff --git a/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo2.class b/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..a24451e388c1055c00cbb02b927f6613b9cb687a
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Regular_expression_Case_package/Regex_demo2.class differ
diff --git a/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo1.class b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..a8e50ba1dc3e7d7f9655c89686ed45f0e294eccf
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo1.class differ
diff --git a/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo2.class b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..c67a66c961e009372f3987895d1eeb99669b6471
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo2.class differ
diff --git a/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo3.class b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..0a45fc5078876417d0abe22f3af1b88a82f1dd02
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Regular_expression_package/Regex_demo3.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo1.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..bd2c13cee63b0fe41e92e359d2221b7eb381e896
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo1.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo2.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..baec12a3a74e66e1444c2717d277fad6d827392e
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo2.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo3.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..ea0d86a8e139a5204a624e6bf89b53b6a84a5d2c
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo3.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo4.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..5037ad0d5cbe1edf0f7242d04176beaf61322451
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo4.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo5.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..c14431f1a6942e340924535b57f47b0eff5cfd1e
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo5.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo6.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo6.class
new file mode 100644
index 0000000000000000000000000000000000000000..1f678a605116e77949446bd297f1d6dccb4ebf61
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo6.class differ
diff --git a/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo7.class b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo7.class
new file mode 100644
index 0000000000000000000000000000000000000000..c139954f4f25eae60f6a0db42ec040d6172cc840
Binary files /dev/null and b/API_project/out/production/Regular_expression_module/Reptile_package/Reptile_demo7.class differ
diff --git a/API_project/out/production/Runtime_module/Runtime_package/Runtime_demo1.class b/API_project/out/production/Runtime_module/Runtime_package/Runtime_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3e826375f1ce8baf29a21b4fe78e0e451554c67
Binary files /dev/null and b/API_project/out/production/Runtime_module/Runtime_package/Runtime_demo1.class differ
diff --git a/API_project/out/production/System_module/System_package/System_demo1.class b/API_project/out/production/System_module/System_package/System_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..0c7367b70285e36155674ef7c06f3626d7161699
Binary files /dev/null and b/API_project/out/production/System_module/System_package/System_demo1.class differ
diff --git a/Algorithm_project/.DS_Store b/Algorithm_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..c0fdcb5ee638874139d89a74f31204678750e189
Binary files /dev/null and b/Algorithm_project/.DS_Store differ
diff --git a/Algorithm_project/.idea/.gitignore b/Algorithm_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Algorithm_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Algorithm_project/.idea/misc.xml b/Algorithm_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Algorithm_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/.idea/modules.xml b/Algorithm_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1fe6f893328c964e33fc72c7f4bc6b0149b287a1
--- /dev/null
+++ b/Algorithm_project/.idea/modules.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/.idea/uiDesigner.xml b/Algorithm_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/Algorithm_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/.idea/workspace.xml b/Algorithm_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2787488df3a07c520fcb29c0c0ad844a9cbf36db
--- /dev/null
+++ b/Algorithm_project/.idea/workspace.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677035989106
+
+
+ 1677035989106
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Algorithm_project.iml b/Algorithm_project/Algorithm_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Algorithm_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Arrays_module/Arrays_module.iml b/Algorithm_project/Arrays_module/Arrays_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Arrays_module/Arrays_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo1.java b/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..1253ec84c468b9b08b22433c3fead03efd3fa190
--- /dev/null
+++ b/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo1.java
@@ -0,0 +1,65 @@
+package Arrays_package;
+
+import java.util.Arrays;
+
+public class Arrays_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static String toString (数组) 把数组拼接成一个字符串
+ public static int binarySearch (数组, 查找元素) 二分查找法查找元素
+ public static int[] copyOf (原数组, 新数组长度) 拷贝数组
+ public static int[] copyOfRange (原数组, 起始索引, 结束索引) 拷贝数组(指定范围)
+ public static void fill (数组, 元素) 填充数组
+ public static void sort (数组) 按照默认方式进行数组排序
+ public static void sort (数组, 排序规则) 按照指定的规则排序
+ */
+
+ //toString:将数组变成字符串
+ System.out.println("-------------toString--------------");
+ int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+ System.out.println(Arrays.toString(arr));
+
+
+ //binarySearch:二分查找法查找元素
+ //细节1:二分查找的前提,数组中的元素必须是有序的
+ //细节2:如果要查找的元素是存在的,那么返回的是真实索引
+ //但是,如果要查找的元素是不存在的,返回的是 -插入点 - 1
+ System.out.println("-------------binarySearch--------------");
+ System.out.println(Arrays.binarySearch(arr, 10));//-10
+ System.out.println(Arrays.binarySearch(arr, 5));
+ System.out.println(Arrays.binarySearch(arr, 3));
+
+
+ //copyOf:拷贝数组
+ //参数1:老数组
+ //参数2:新数组的长度
+ //方法的底层会根据第二个参数来创建新的数组
+ //如果新数组的长度小于老数组的长度,会部分拷贝
+ //如果新数组的长度等于老数组的长度,会完全拷贝
+ //如果新数组的长度大于老数组的长度,会补上默认初始值
+ System.out.println("-------------copyOf--------------");
+ int[] newArr1 = Arrays.copyOf(arr, 20);
+ System.out.println(Arrays.toString(newArr1));
+
+
+ //copyOfRange:拷贝数组(指定范围)
+ //细节:包头不包尾,包左不包右
+ System.out.println("-------------copyOfRange--------------");
+ int[] newArr2 = Arrays.copyOfRange(arr, 0, 5);
+ System.out.println(Arrays.toString(newArr2));
+
+
+ //fill:填充数组
+ System.out.println("-------------fill--------------");
+ Arrays.fill(arr, 100);
+ System.out.println(Arrays.toString(arr));
+
+
+ //sort:排序。默认情况下,给基本数据类型进行升序排序,底层使用的是快速排序。
+ System.out.println("-------------sort--------------");
+ int[] arr2 = {10, 2, 3, 5, 6, 1, 7, 8, 4, 9};
+ Arrays.sort(arr2);
+ System.out.println(Arrays.toString(arr2));
+
+ }
+}
diff --git a/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo2.java b/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e265e38cd10b30ff056adfd4472cae76c35db070
--- /dev/null
+++ b/Algorithm_project/Arrays_module/src/Arrays_package/Arrays_demo2.java
@@ -0,0 +1,36 @@
+package Arrays_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Arrays_demo2 {
+ public static void main(String[] args) {
+ /*
+ public static void sort (数组, 排序规则) 按照指定的规则排序
+
+ 参数一:要排序的数组
+ 参数二:排序的规则
+ 细节:
+ 只能给引用数据类型的数组进行排序
+ 如果数组是基本数据类型的,需要变成其对应的包装类
+ */
+
+ Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
+
+ //第二个参数是一个接口,所以我们在调用方法的时候,需要传递这个接口的实现类对象,作为排序的规则。
+ //但是这个实现类,我们只要使用一次,所以就没有必要单独的去写一个类,直接采取匿名内部类的方式就可以了。
+
+ //简单理解:
+ //o1 - o2:升序排列
+ //o2 - o1:降序排列
+ Arrays.sort(arr, new Comparator() {
+ @Override
+ public int compare(Integer o1, Integer o2) {
+ return o1 - 02;
+ }
+ });
+
+ System.out.println(Arrays.toString(arr));
+
+ }
+}
diff --git a/Algorithm_project/Case_module/Case_module.iml b/Algorithm_project/Case_module/Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Case_module/Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Case_module/src/Case1_package/GirlFriend.java b/Algorithm_project/Case_module/src/Case1_package/GirlFriend.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b4b4a527bce25ec564e359419437c488502ef12
--- /dev/null
+++ b/Algorithm_project/Case_module/src/Case1_package/GirlFriend.java
@@ -0,0 +1,50 @@
+package Case1_package;
+
+public class GirlFriend {
+ //要求1:属性有姓名、年龄、身高。
+ private String name;
+ private int age;
+ private double height;
+
+ public GirlFriend(String name, int age, double height) {
+ this.name = name;
+ this.age = age;
+ this.height = height;
+ }
+
+ public GirlFriend() {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public double getHeight() {
+ return height;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+ @Override
+ public String toString() {
+ return "GirlFriend{" +
+ "name='" + name + '\'' +
+ ", age=" + age +
+ ", height=" + height +
+ '}';
+ }
+}
diff --git a/Algorithm_project/Case_module/src/Case1_package/Test.java b/Algorithm_project/Case_module/src/Case1_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b51e3e116393e17be7f59edbb895fa310ece9c1
--- /dev/null
+++ b/Algorithm_project/Case_module/src/Case1_package/Test.java
@@ -0,0 +1,66 @@
+package Case1_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 定义数组并存储一些女朋友对象,利用Arrays中的sort方法进行排序
+ 要求1:属性有姓名、年龄、身高。
+ 要求2:按照年龄的大小进行排序,年龄一样,按照身高排序,身高一样按照姓名的字母进行排序
+ */
+
+ //1、创建三个女朋友的对象
+ GirlFriend gf1 = new GirlFriend("xiaoshishi", 18, 1.67);
+ GirlFriend gf2 = new GirlFriend("xiaodandan", 19, 1.78);
+ GirlFriend gf3 = new GirlFriend("xiaohuihui", 19, 1.72);
+
+ //2、定义数组存储女朋友的信息
+ GirlFriend[] arr = {gf1, gf2, gf3};
+
+ //3、利用Arrays中的sort方法进行排序
+ //匿名内部类 Lambda表达式
+ Arrays.sort(arr, new Comparator() {
+ @Override
+ public int compare(GirlFriend o1, GirlFriend o2) {
+ //按照年龄的大小进行排序,年龄一样,按照身高排序,身高一样按照姓名的字母进行排序
+ double temp = o1.getAge() - o2.getAge();
+
+ temp = temp == 0 ? o1.getHeight() - o2.getHeight() : temp;
+
+ temp = temp == 0 ? o1.getName().compareTo(o2.getName()) : temp;
+
+ if (temp > 0) {
+ return 1;
+ } else if (temp < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ }
+ });
+
+ //Lambda表达式
+ Arrays.sort(arr, (o1, o2) -> {
+ //按照年龄的大小进行排序,年龄一样,按照身高排序,身高一样按照姓名的字母进行排序
+ double temp = o1.getAge() - o2.getAge();
+
+ temp = temp == 0 ? o1.getHeight() - o2.getHeight() : temp;
+
+ temp = temp == 0 ? o1.getName().compareTo(o2.getName()) : temp;
+
+ if (temp > 0) {
+ return 1;
+ } else if (temp < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ }
+ );
+
+ //4、展示一下数组中的内容
+ System.out.println(Arrays.toString(arr));
+ }
+}
diff --git a/Algorithm_project/Case_module/src/Case2_package/Test.java b/Algorithm_project/Case_module/src/Case2_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..6569df1ad73cdfefd10667fb5cc483465b905d46
--- /dev/null
+++ b/Algorithm_project/Case_module/src/Case2_package/Test.java
@@ -0,0 +1,49 @@
+package Case2_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 有一对兔子,从出生后第三个月起,每个月都生一对兔子
+ 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月的兔子对数为多少?
+ 1月:1
+ 2月:1
+ 3月:2
+ 4月:3
+ 5月:5
+ ……
+
+ 特点:从第三个数据开始,是前两个数据和(斐波那契数列)
+ */
+
+ //求解1:
+ //1、创建一个长度为12的数组
+ int[] arr = new int[12];
+
+ //2、手动给0索引和1索引的数据进行赋值
+ arr[0] = 1;
+ arr[1] = 1;
+
+ //3、利用循环给剩余的数据进行赋值
+ for (int i = 2; i < arr.length; i++) {
+ arr[i] = arr[i - 1] + arr[i - 2];
+ }
+
+ //4、获取最大索引上的数据即可
+ System.out.println(arr[11]);
+
+
+ //求解2:
+ //递归的方式去完成
+ //1、递归的出口
+ //2、找到递归的规律
+ System.out.println(getSum(12));
+ }
+
+ public static int getSum(int month) {
+ if (month == 1 || month == 2) {
+ return 1;
+ }
+
+ return getSum(month - 1) + getSum(month - 2);
+ }
+}
diff --git a/Algorithm_project/Case_module/src/Case3_package/Test.java b/Algorithm_project/Case_module/src/Case3_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec77f87d243e807876f325e3e19d3abd05964d0e
--- /dev/null
+++ b/Algorithm_project/Case_module/src/Case3_package/Test.java
@@ -0,0 +1,36 @@
+package Case3_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个;
+ 以后每天猴子都吃当前剩下来的一半,然后再多吃一个,
+ 第10天的时候(还没吃),发现只剩下一个桃子了。请问,最初总共多少个桃子?
+ day10:1
+ day9:(day10 + 1) * 2 = 4
+
+ 1、出口
+ day == 10 剩下1
+ 2、规律
+ 每一天的桃子数量都是后一天数量+1,乘以2
+ */
+
+ System.out.println(getCount(1));
+ }
+
+ public static int getCount(int day) {
+ if (day <= 0 || day >= 11) {
+ System.out.println("当前时间错误");
+ return -1;
+ }
+
+ //递归的出口
+ if (day == 10) {
+ return 1;
+ }
+
+ //书写规律
+ //每一天的桃子数量都是后一天数量+1,乘以2
+ return (getCount(day + 1) + 1) * 2;
+ }
+}
diff --git a/Algorithm_project/Case_module/src/Case4_package/Test.java b/Algorithm_project/Case_module/src/Case4_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..6fd013b7bdd71ed8dc07d45baee19005e59f686c
--- /dev/null
+++ b/Algorithm_project/Case_module/src/Case4_package/Test.java
@@ -0,0 +1,22 @@
+package Case4_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 可爱的小明特别喜欢爬楼梯,他有时候一次爬一个台阶,有时候一次爬两个台阶。
+ 如果这个楼梯有100个台阶,小明一共有多少种爬法?
+ */
+ System.out.println(getCount(20));
+ }
+
+ public static int getCount(int n) {
+ if (n == 1) {
+ return 1;
+ }
+ if (n == 2) {
+ return 2;
+ }
+
+ return getCount(n - 1) + getCount(n - 2);
+ }
+}
diff --git a/Algorithm_project/Lambda_module/Lambda_module.iml b/Algorithm_project/Lambda_module/Lambda_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Lambda_module/Lambda_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo1.java b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..2fc96a18d6ca6cc9b264dcc1412d7ce759c0ae4d
--- /dev/null
+++ b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo1.java
@@ -0,0 +1,25 @@
+package Lambda_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Lambda_demo1 {
+ public static void main(String[] args) {
+ //初识lambda表达式
+ Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
+
+// Arrays.sort(arr, new Comparator() {
+// @Override
+// public int compare(Integer o1, Integer o2) {
+// return o1-o2;
+// }
+// });
+
+ Arrays.sort(arr, (Integer o1, Integer o2) -> {
+ return o1 - o2;
+ }
+ );
+
+ System.out.println(Arrays.toString(arr));
+ }
+}
diff --git a/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo2.java b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee3773f1009c92e43317d7fdc93c56d64c5a0598
--- /dev/null
+++ b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo2.java
@@ -0,0 +1,39 @@
+package Lambda_package;
+
+public class Lambda_demo2 {
+ public static void main(String[] args) {
+ /*
+ Lambda表达式的注意点:
+ 1、Lambda表达式可以用来简化匿名内部类的书写
+ 2、Lambda表达式只能简化函数式接口的匿名内部类的写法
+ 3、函数式接口:
+ 有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解
+ */
+
+ //1、利用匿名内部类的形式去调用下面的方法
+ //调用一个方法的时候,如果方法的形参是一个接口,那么我们要传递这个接口的实现类对象
+ //如果实现类对象只要用到一次,就可以用匿名内部类的形式进行书写
+
+ method(new Swim() {
+ @Override
+ public void swimming() {
+ System.out.println("正在游泳~");
+ }
+ });
+
+ //2、利用Lambda表达式进行改写
+ method(() -> {
+ System.out.println("正在游泳~");
+ }
+ );
+ }
+
+ public static void method(Swim s) {
+ s.swimming();
+ }
+}
+
+@FunctionalInterface
+interface Swim {
+ public abstract void swimming();
+}
diff --git a/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo3.java b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..27be2d8b44988bf3ee3fb7050f0237ddae2631c8
--- /dev/null
+++ b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo3.java
@@ -0,0 +1,36 @@
+package Lambda_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Lambda_demo3 {
+ public static void main(String[] args) {
+ /*
+ Lambda的省略规则:
+ 1、参数类型可以省略不写
+ 2、如果只有一个参数,参数类型可以省略,同时()也可以省略。
+ 3、如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略
+ */
+
+ Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
+
+ Arrays.sort(arr, new Comparator() {
+ @Override
+ public int compare(Integer o1, Integer o2) {
+ return o1 - o2;
+ }
+ });
+
+ //Lambda完整格式
+ Arrays.sort(arr, (Integer o1, Integer o2) -> {
+ return o1 - o2;
+ }
+ );
+
+ //Lambda省略写法
+ Arrays.sort(arr, (o1, o2) -> o1 - o2);
+
+
+ System.out.println(Arrays.toString(arr));
+ }
+}
diff --git a/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo4.java b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4b7639d20f1d7374cc1e07eeb06d20ef4b0cc1e
--- /dev/null
+++ b/Algorithm_project/Lambda_module/src/Lambda_package/Lambda_demo4.java
@@ -0,0 +1,41 @@
+package Lambda_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Lambda_demo4 {
+ public static void main(String[] args) {
+ /*
+ 定义数组并存储一些字符串,利用Arrays中的sort方法进行排序
+ 要求:
+ 按照字符串的长度进行排序,短的在前面,长的在后面。
+ (暂时不比较字符串里面的内容)
+ */
+
+ String[] arr = {"a", "aaaa", "aaa", "aa"};
+
+ Arrays.sort(arr, new Comparator() {
+ @Override
+ public int compare(String o1, String o2) {
+ //字符串的长度进行排序
+ return o1.length() - o2.length();
+ }
+ });
+
+ //Lambda 完整格式
+ Arrays.sort(arr, (String o1, String o2) -> {
+ //字符串的长度进行排序
+ return o1.length() - o2.length();
+ }
+ );
+
+ //Lambda 简写格式
+ //小括号:数据类型可以省略,如果参数只有一个,小括号还可以省略
+ //大括号:如果方法体只有一行,return,分号,大括号都可以省略
+ Arrays.sort(arr, (o1, o2) -> o1.length() - o2.length());
+
+ //打印数组
+ System.out.println(Arrays.toString(arr));
+ }
+
+}
diff --git a/Algorithm_project/Lookup_algorithm_module/Lookup_algorithm_module.iml b/Algorithm_project/Lookup_algorithm_module/Lookup_algorithm_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Lookup_algorithm_module/Lookup_algorithm_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo1.java b/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..582788cc5fead97487bbc66520a703a65556bc85
--- /dev/null
+++ b/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo1.java
@@ -0,0 +1,33 @@
+package Basic_Find_package;
+
+public class Basic_Find_demo1 {
+ public static void main(String[] args) {
+ //基本查找/顺序查找
+ //核心:
+ //从0索引开始挨个往后查找
+
+ //需求:定义一个方法利用基本查找,查询某个元素是否存在
+ //数据如下:{131, 127, 147, 81, 103, 23, 7, 79}
+
+ int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};
+ int number = 82;
+ boolean b = basicSearch(arr, number);
+ System.out.println(b);
+ }
+
+ //参数:
+ //一:数组
+ //二:要查找的元素
+
+ //返回值:
+ //元素是否存在
+ public static boolean basicSearch(int[] arr, int number) {
+ //利用基本查找来查找number在数组中国是否存在
+ for (int i = 0; i < arr.length; i++) {
+ if (number == arr[i]) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo2.java b/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..4652dec16d098b92e6a31506ca9ca93f102183da
--- /dev/null
+++ b/Algorithm_project/Lookup_algorithm_module/src/Basic_Find_package/Basic_Find_demo2.java
@@ -0,0 +1,38 @@
+package Basic_Find_package;
+
+import java.util.ArrayList;
+
+public class Basic_Find_demo2 {
+ public static void main(String[] args) {
+ //课堂练习1:
+ //需求:定义一个方法利用基本查找,查询某个元素在数组中的索引
+ //要求:不需要考虑数组中元素是否重复
+
+
+ //课堂练习2:
+ //需求:定义一个方法利用基本查找,查询某个元素在数组中的索引
+ //要求:需要考虑数组中元素重复的情况
+ //{131, 127, 147, 81, 103, 23, 7, 79, 81}
+ //我要查找81,想要返回的是所有的索引
+ }
+
+ //参数:
+ //一:数组
+ //二:要查找的元素
+
+ //返回值:
+ //元素是否存在
+
+ //心得:
+ //如果我们要返回多个数据的话,可以把这些数据放到数组或者集合中。
+ public static ArrayList basicSearch(int[] arr, int number) {
+ ArrayList list=new ArrayList<>();
+ //利用基本查找来查找number在数组中国是否存在
+ for (int i = 0; i < arr.length; i++) {
+ if (number == arr[i]) {
+ list.add(i);
+ }
+ }
+ return list;
+ }
+}
diff --git a/Algorithm_project/Lookup_algorithm_module/src/Block_search_package/Block_search_demo1.java b/Algorithm_project/Lookup_algorithm_module/src/Block_search_package/Block_search_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6f572caee19fc73d02bf0f9c1d254290061a75f
--- /dev/null
+++ b/Algorithm_project/Lookup_algorithm_module/src/Block_search_package/Block_search_demo1.java
@@ -0,0 +1,110 @@
+package Block_search_package;
+
+public class Block_search_demo1 {
+ public static void main(String[] args) {
+ /*
+ 分块查找
+ 核心思想:
+ 块内无序,块间有序
+ 实现步骤:
+ 1、创建数组blockArr存放每一块对象的信息
+ 2、先查找blockArr确定要查找的数据属于哪一块
+ 3、再单独遍历这一块数据即可
+ */
+ int[] arr = {16, 5, 9, 12, 21, 18,
+ 32, 23, 37, 26, 45, 34,
+ 50, 48, 61, 52, 73, 66};
+
+ //创建三个块的对象
+ Block b1 = new Block(21, 0, 5);
+ Block b2 = new Block(45, 6, 11);
+ Block b3 = new Block(73, 12, 17);
+
+ //定义数组用来管理三个块的对象(索引表)
+ Block[] blockArr = {b1, b2, b3};
+
+ //定义一个变量用来记录要查找的元素
+ int number = 32;
+
+ //调用方法:传递索引表,数组,要查找的元素
+ int index = getIndex(blockArr, arr, number);
+
+ //打印
+ System.out.println(index);
+
+ }
+
+ //利用分块查找的原理,查询number的索引
+ private static int getIndex(Block[] blockArr, int[] arr, int number) {
+ //1、确定number是在哪一块当中
+ int indexBlock = findIndexBlock(blockArr, number);
+
+ if (indexBlock == -1) {
+ //表示number不在数组中
+ return -1;
+ }
+
+ //2、获取这一块的起始索引和结束索引
+ int startIndex = blockArr[indexBlock].getStartIndex();
+ int endIndex = blockArr[indexBlock].getEndIndex();
+
+ //3、遍历
+ for (int i = startIndex; i < endIndex; i++) {
+ if(arr[i]==number){
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ //定义一个方法,用来确定number在哪一块当中
+ public static int findIndexBlock(Block[] blockArr, int number) {
+ //从0索引开始遍历blockArr,如果number小于max,那么就表示number是在这一块当中的
+ for (int i = 0; i < blockArr.length; i++) {
+ if (number < blockArr[i].getMax()) {
+ return i;
+ }
+ }
+ return -1;
+ }
+}
+
+class Block {
+ private int max;//最大值
+ private int startIndex;//起始索引
+ private int endIndex;//结束索引
+
+ public Block() {
+ }
+
+ public Block(int max, int startIndex, int endIndex) {
+ this.max = max;
+ this.startIndex = startIndex;
+ this.endIndex = endIndex;
+ }
+
+ public int getMax() {
+ return max;
+ }
+
+ public void setMax(int max) {
+ this.max = max;
+ }
+
+ public int getStartIndex() {
+ return startIndex;
+ }
+
+ public void setStartIndex(int startIndex) {
+ this.startIndex = startIndex;
+ }
+
+ public int getEndIndex() {
+ return endIndex;
+ }
+
+ public void setEndIndex(int endIndex) {
+ this.endIndex = endIndex;
+ }
+}
diff --git a/Algorithm_project/Lookup_algorithm_module/src/Dichotomy_search_package/Dichotomy_search_demo1.java b/Algorithm_project/Lookup_algorithm_module/src/Dichotomy_search_package/Dichotomy_search_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..de55d033866023f8e81ba25a8d2027029a8445d4
--- /dev/null
+++ b/Algorithm_project/Lookup_algorithm_module/src/Dichotomy_search_package/Dichotomy_search_demo1.java
@@ -0,0 +1,47 @@
+package Dichotomy_search_package;
+
+public class Dichotomy_search_demo1 {
+ public static void main(String[] args) {
+ //二分查找/折半查找
+ //核心:
+ //每次排除一半的查找范围
+
+ //需求:定义一个方法利用二分法查找,查询某个元素在数组中的索引
+ //数据如下:{7, 23, 79, 81, 103, 127, 131, 147}
+ int[] arr = {7, 23, 79, 81, 103, 127, 131, 147};
+
+ int index = binarySearch(arr, 81);
+ System.out.println(index);
+ }
+
+ public static int binarySearch(int[] arr, int number) {
+ //1、定义两个变量记录要查找的范围
+ int min = 0;
+ int max = arr.length - 1;
+
+ //2、利用循环不断的去找要查找的数据
+ while (true) {
+ if (min > max) {
+ return -1;
+ }
+
+ //3、找到min和max的中间位置
+ int mid = (min + max) / 2;
+
+ //4、拿着mid指向的元素跟要查找的元素进行比较
+ if (arr[mid] > number) {
+ //number在mid的左边
+ //min不变,max = mid-1
+ max = mid - 1;
+ } else if (arr[mid] < number) {
+ //number在mid的右边
+ //max不变,min = mid + 1;
+ min = mid + 1;
+ } else {
+ //number跟mid指向的元素一致
+ //找到了
+ return mid;
+ }
+ }
+ }
+}
diff --git a/Algorithm_project/Sort_algorithm_module/Sort_algorithm_module.iml b/Algorithm_project/Sort_algorithm_module/Sort_algorithm_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/Sort_algorithm_module/Sort_algorithm_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/Sort_algorithm_module/src/Bubble_sort_package/Bubble_sort_demo1.java b/Algorithm_project/Sort_algorithm_module/src/Bubble_sort_package/Bubble_sort_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e497ed25e8d6e4cda34b89d75d80c0c064a6989
--- /dev/null
+++ b/Algorithm_project/Sort_algorithm_module/src/Bubble_sort_package/Bubble_sort_demo1.java
@@ -0,0 +1,38 @@
+package Bubble_sort_package;
+
+public class Bubble_sort_demo1 {
+ public static void main(String[] args) {
+ /*
+ 冒泡排序:
+ 核心思想:
+ 1、相邻的元素两两比较,大的放右边,小的放左边。
+ 2、第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面以此类推
+ 3、如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以。
+ */
+
+ //1、定义数组
+ int[] arr = {2, 4, 5, 3, 1};
+
+ //2、利用冒泡排序将数组中的数据变成 1 2 3 4 5
+ //外循环:表示我要执行多少轮
+ for (int i = 0; i < arr.length - 1; i++) {
+ //内循环
+ for (int j = 0; j < arr.length - 1 - i; j++) {
+ if (arr[j] > arr[j + 1]) {
+ int temp = arr[j];
+ arr[j] = arr[j + 1];
+ arr[j + 1] = temp;
+ }
+ }
+ }
+
+ printArr(arr);
+ }
+
+ public static void printArr(int[] arr) {
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i] + " ");
+ }
+ System.out.println();
+ }
+}
diff --git a/Algorithm_project/Sort_algorithm_module/src/Insert_Sort_package/Insert_Sort_demo1.java b/Algorithm_project/Sort_algorithm_module/src/Insert_Sort_package/Insert_Sort_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..189baad98cd2fd68c49118eb9c4520ba87cd8eb2
--- /dev/null
+++ b/Algorithm_project/Sort_algorithm_module/src/Insert_Sort_package/Insert_Sort_demo1.java
@@ -0,0 +1,43 @@
+package Insert_Sort_package;
+
+import static Bubble_sort_package.Bubble_sort_demo1.printArr;
+
+public class Insert_Sort_demo1 {
+ public static void main(String[] args) {
+ /*
+ 插入排序:
+ 将0索引的元素到N索引的元素看做是有序的,把N+1索引的元素到最后一个当成是无序的。
+ 遍历无序的数据,将遍历到的元素插入有序序列中适当的位置,如遇到相同数据,插在后面。
+ N的范围:0~最大索引
+ */
+
+ int[] arr = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
+
+ //1、找到无序是从哪个索引开始的
+ int startIndex = -1;
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] > arr[i + 1]) {
+ startIndex = i + 1;
+ break;
+ }
+ }
+
+ //2、遍历从startIndex开始到最后一个元素,依次得到其中的每一个元素
+ for (int i = startIndex; i < arr.length; i++) {
+ //问题:如何把遍历到的数据,插入到前面有序的数组中
+
+ //记录当前要插入数据的索引
+ int j = i;
+
+ while (j > 0 && arr[j] < arr[j - 1]) {
+ //交换位置
+ int temp = arr[j];
+ arr[j] = arr[j - 1];
+ arr[j - 1] = temp;
+ j--;
+ }
+ }
+
+ printArr(arr);
+ }
+}
diff --git a/Algorithm_project/Sort_algorithm_module/src/Quick_Sort_package/Quick_Sort_demo1.java b/Algorithm_project/Sort_algorithm_module/src/Quick_Sort_package/Quick_Sort_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..59f10861b695faab188d315d10b264bf1af0df29
--- /dev/null
+++ b/Algorithm_project/Sort_algorithm_module/src/Quick_Sort_package/Quick_Sort_demo1.java
@@ -0,0 +1,71 @@
+package Quick_Sort_package;
+
+import static Bubble_sort_package.Bubble_sort_demo1.printArr;
+
+public class Quick_Sort_demo1 {
+ public static void main(String[] args) {
+ /*
+ 快速排序:
+ 第一轮:以0索引的数字为基准数,确定基准数在数组中正确的位置。
+ 比基准数小的全部在左边,比基准数大的全部在右边。
+ 后面以此类推
+ */
+
+ int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
+
+ quickSort(arr, 0, arr.length - 1);
+
+ printArr(arr);
+ }
+
+ /*
+ * 参数一:我们要排序的数组
+ * 参数二:要排序数组的起始索引
+ * 参数三:要排序数组的结束索引
+ */
+ public static void quickSort(int[] arr, int i, int j) {
+ //定义两个变量记录要查找的范围
+ int start = i;
+ int end = j;
+
+ //递归的出口
+ if (start > end) {
+ return;
+ }
+
+ //记录基准数
+ int baseNumber = arr[i];
+
+ //利用循环找到要交换的数字
+ while (start != end) {
+ //利用end,从后往前开始找,找比基准数小的数字
+ while (true) {
+ if (end <= start || arr[end] < baseNumber) {
+ break;
+ }
+ end--;
+ }
+
+ //利用start,从前往后找,找比基准数大的数字
+ while (true) {
+ if (end <= start || arr[start] > baseNumber) {
+ break;
+ }
+ start++;
+ }
+
+ //把end和start指向的元素进行交换
+ int temp = arr[start];
+ arr[start] = arr[end];
+ arr[end] = temp;
+ }
+
+ //基准数归位
+ int temp = arr[i];
+ arr[i] = arr[start];
+ arr[start] = temp;
+
+ quickSort(arr, i, start - 1);
+ quickSort(arr, start + 1, j);
+ }
+}
diff --git a/Algorithm_project/Sort_algorithm_module/src/Select_Sort_package/Select_Sort_demo1.java b/Algorithm_project/Sort_algorithm_module/src/Select_Sort_package/Select_Sort_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..9e23127879d4fd27cdf234e66f7e26b428df0b7d
--- /dev/null
+++ b/Algorithm_project/Sort_algorithm_module/src/Select_Sort_package/Select_Sort_demo1.java
@@ -0,0 +1,35 @@
+package Select_Sort_package;
+
+import static Bubble_sort_package.Bubble_sort_demo1.printArr;
+
+public class Select_Sort_demo1 {
+ public static void main(String[] args) {
+ /*
+ 选择排序:
+ 1、从0索引开始,跟后面的元素一一比较。
+ 2、小的放在前面,大的放后面
+ 3、第一次循环结束后,最小的数据已经确定。
+ 4、第二次循环从1索引开始以此类推。
+ */
+
+ //1、定义数组
+ int[] arr = {2, 4, 5, 3, 1};
+
+ //2、利用选择排序让数组变成 1 2 3 4 5
+ //外循环:
+ //i:表示这一轮中,我拿着哪个索引上的数据跟后面的数据进行比较并交换
+ for (int i = 0; i < arr.length - 1; i++) {
+ //内循环:每一轮我要干什么事情
+ //拿着i跟i后面的数据进行比较交换
+ for (int j = i + 1; j < arr.length; j++) {
+ if (arr[i] > arr[j]) {
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+ }
+ }
+
+ printArr(arr);
+ }
+}
diff --git a/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo1.class b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..6802b0d7254ae203383bbfe2fa21ef4e7aec81c6
Binary files /dev/null and b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo1.class differ
diff --git a/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2$1.class b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..790f71f2d7f5cabee4e22de634e6e3e7829a6eb5
Binary files /dev/null and b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2$1.class differ
diff --git a/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2.class b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..cf60e212895e6a92677cf9db0e56c0b7e970836d
Binary files /dev/null and b/Algorithm_project/out/production/Arrays_module/Arrays_package/Arrays_demo2.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case1_package/GirlFriend.class b/Algorithm_project/out/production/Case_module/Case1_package/GirlFriend.class
new file mode 100644
index 0000000000000000000000000000000000000000..942915067cb4a76dd3b3e1633bee3f698fbacec0
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case1_package/GirlFriend.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case1_package/Test$1.class b/Algorithm_project/out/production/Case_module/Case1_package/Test$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..ad664ba12580c2c6492f4eeec89213fed1d5ff8e
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case1_package/Test$1.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case1_package/Test.class b/Algorithm_project/out/production/Case_module/Case1_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..597823b0e537cdfcef1d7f0f33febe9d9f6065d9
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case1_package/Test.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case2_package/Test.class b/Algorithm_project/out/production/Case_module/Case2_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..6d24d993e06fed2fbb488094e973d3819e1012d7
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case2_package/Test.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case3_package/Test.class b/Algorithm_project/out/production/Case_module/Case3_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..1a59b32c38a18789309add3db14b16d04352d4c5
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case3_package/Test.class differ
diff --git a/Algorithm_project/out/production/Case_module/Case4_package/Test.class b/Algorithm_project/out/production/Case_module/Case4_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..6cc10084603bb716fbfaa7c0198d692ffe258600
Binary files /dev/null and b/Algorithm_project/out/production/Case_module/Case4_package/Test.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo1.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..e5a4ebc47775855284d83ce6311dcacd7ba76d1c
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo1.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2$1.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..9662f026b1e7bd70f473718fa99b3759518144b1
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2$1.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..9c16bac0b74780496ac73fe3b517d2f575477fec
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo2.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3$1.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5a8890e382eeabc4ed435d2100804f7fa04c62bd
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3$1.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..9c73cc6f5a70394a72569d7bbad754251c9c460a
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo3.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4$1.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..62d012ec28207622b65ebbc8b48de3f18a124099
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4$1.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..9b75aff5236a5c0c0b6705888c2376993cd6a9f9
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Lambda_demo4.class differ
diff --git a/Algorithm_project/out/production/Lambda_module/Lambda_package/Swim.class b/Algorithm_project/out/production/Lambda_module/Lambda_package/Swim.class
new file mode 100644
index 0000000000000000000000000000000000000000..43b39767425a95d9153399cf94ae3ea9e6fae3c0
Binary files /dev/null and b/Algorithm_project/out/production/Lambda_module/Lambda_package/Swim.class differ
diff --git a/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo1.class b/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..b313c0567da6a6f1e53309395413ab07f76f97f4
Binary files /dev/null and b/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo1.class differ
diff --git a/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo2.class b/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..293bcb709c2d02374fe5321b31937f23f9cea486
Binary files /dev/null and b/Algorithm_project/out/production/Lookup_algorithm_module/Basic_Find_package/Basic_Find_demo2.class differ
diff --git a/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block.class b/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block.class
new file mode 100644
index 0000000000000000000000000000000000000000..f2a94ac1f1d4f2f1db6249e1cbe5b1866786ae9b
Binary files /dev/null and b/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block.class differ
diff --git a/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block_search_demo1.class b/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block_search_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..97e398a1ad72f84c71ca506f9f10b095be7a630b
Binary files /dev/null and b/Algorithm_project/out/production/Lookup_algorithm_module/Block_search_package/Block_search_demo1.class differ
diff --git a/Algorithm_project/out/production/Lookup_algorithm_module/Dichotomy_search_package/Dichotomy_search_demo1.class b/Algorithm_project/out/production/Lookup_algorithm_module/Dichotomy_search_package/Dichotomy_search_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f7d5a39c636d2318767af6fb99e4ec996a10f828
Binary files /dev/null and b/Algorithm_project/out/production/Lookup_algorithm_module/Dichotomy_search_package/Dichotomy_search_demo1.class differ
diff --git a/Algorithm_project/out/production/Sort_algorithm_module/Bubble_sort_package/Bubble_sort_demo1.class b/Algorithm_project/out/production/Sort_algorithm_module/Bubble_sort_package/Bubble_sort_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5244074ab210531ed5d6ad632e456b2d6cef007a
Binary files /dev/null and b/Algorithm_project/out/production/Sort_algorithm_module/Bubble_sort_package/Bubble_sort_demo1.class differ
diff --git a/Algorithm_project/out/production/Sort_algorithm_module/Insert_Sort_package/Insert_Sort_demo1.class b/Algorithm_project/out/production/Sort_algorithm_module/Insert_Sort_package/Insert_Sort_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..2e39d8ced2c8a19973b34cf217a46cd264f0b2b0
Binary files /dev/null and b/Algorithm_project/out/production/Sort_algorithm_module/Insert_Sort_package/Insert_Sort_demo1.class differ
diff --git a/Algorithm_project/out/production/Sort_algorithm_module/Quick_Sort_package/Quick_Sort_demo1.class b/Algorithm_project/out/production/Sort_algorithm_module/Quick_Sort_package/Quick_Sort_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..6bfc10d476712060b965a69b2c3e4c3319c1411e
Binary files /dev/null and b/Algorithm_project/out/production/Sort_algorithm_module/Quick_Sort_package/Quick_Sort_demo1.class differ
diff --git a/Algorithm_project/out/production/Sort_algorithm_module/Select_Sort_package/Select_Sort_demo1.class b/Algorithm_project/out/production/Sort_algorithm_module/Select_Sort_package/Select_Sort_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..095aa953c79c8e5f036f01a86324e7096f014e4e
Binary files /dev/null and b/Algorithm_project/out/production/Sort_algorithm_module/Select_Sort_package/Select_Sort_demo1.class differ
diff --git a/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo1.class b/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..8ff686571dcb043b1fb344b499231e6a05dda963
Binary files /dev/null and b/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo1.class differ
diff --git a/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo2.class b/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..90f9eebf9c06cd2848221d8169e2af54d6b3dc3e
Binary files /dev/null and b/Algorithm_project/out/production/recursive_algorithm_module/recursive_algorithm_package/recursive_algorithm_demo2.class differ
diff --git a/Algorithm_project/recursive_algorithm_module/recursive_algorithm_module.iml b/Algorithm_project/recursive_algorithm_module/recursive_algorithm_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algorithm_project/recursive_algorithm_module/recursive_algorithm_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo1.java b/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..3c3ee46722428283d8b2a382609ae4237d5089f7
--- /dev/null
+++ b/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo1.java
@@ -0,0 +1,22 @@
+package recursive_algorithm_package;
+
+public class recursive_algorithm_demo1 {
+ public static void main(String[] args) {
+ //需求:利用递归算法求1-100之间的和
+ //100 + 99 + …… + 1
+
+ //大问题拆解成小问题
+ //1~100之间的和 = 100 + (1~99之间的和)
+
+ System.out.println(getSum(100));
+ }
+
+ public static int getSum(int number) {
+ if (number == 1) {
+ return 1;
+ }
+
+ //如果number不是1
+ return number + getSum(number - 1);
+ }
+}
diff --git a/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo2.java b/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2eae295d8b66b77a4e6581de933c0f13b4f5ab7
--- /dev/null
+++ b/Algorithm_project/recursive_algorithm_module/src/recursive_algorithm_package/recursive_algorithm_demo2.java
@@ -0,0 +1,17 @@
+package recursive_algorithm_package;
+
+public class recursive_algorithm_demo2 {
+ public static void main(String[] args) {
+ //需求:利用递归求5的阶乘
+
+ System.out.println(getFactorial(5));
+ }
+
+ public static int getFactorial(int number) {
+ if (number == 1) {
+ return 1;
+ }
+
+ return number * getFactorial(number - 1);
+ }
+}
diff --git a/ArrayList_project/.DS_Store b/ArrayList_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..fd3a92f7623ef7e857504d1a161b42e52f4d96f6
Binary files /dev/null and b/ArrayList_project/.DS_Store differ
diff --git a/ArrayList_project/.idea/.gitignore b/ArrayList_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/ArrayList_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/ArrayList_project/.idea/misc.xml b/ArrayList_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce297c628542f349cb2f347344bfbc492db22d83
--- /dev/null
+++ b/ArrayList_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/.idea/modules.xml b/ArrayList_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bccf6c01af84140c5ee36f1a8447d108f9f06350
--- /dev/null
+++ b/ArrayList_project/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/.idea/uiDesigner.xml b/ArrayList_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/ArrayList_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/.idea/workspace.xml b/ArrayList_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5dd3dceea31a8011e330d4042dbd3f7ff85ee67a
--- /dev/null
+++ b/ArrayList_project/.idea/workspace.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1676204617506
+
+
+ 1676204617506
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/ArrayList_Case_module/ArrayList_Case_module.iml b/ArrayList_project/ArrayList_Case_module/ArrayList_Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/ArrayList_Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo1.java b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..0857e0054632c96d8d4aaa637b8766b59ee6dfae
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo1.java
@@ -0,0 +1,47 @@
+package Find_users_package;
+
+import java.util.ArrayList;
+
+public class Find_Users_demo1 {
+ /*
+ 需求:
+ 1、main方法中定义一个集合,存入三个用户对象。
+ 用户属性:id, username, password
+ 2、要求:定义一个方法,根据id查找对应的用户信息
+ 如果存在,返回true
+ 如果不存在,返回false
+ */
+
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+
+ //2、创建3个用户对象
+ User u1 = new User("001", "张三", "123456");
+ User u2 = new User("002", "李四", "12345678");
+ User u3 = new User("003", "王五", "123456qaz");
+
+ //3、把用户对象添加到集合当中
+ list.add(u1);
+ list.add(u2);
+ list.add(u3);
+
+ //4、调用方法查看id是否存在
+ boolean flag=contains(list,"001");
+
+ //5、打印结果
+ System.out.println(flag);
+
+ }
+
+ public static boolean contains(ArrayList list, String id) {
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i).getId().equals(id)) {
+ //如果找到了,直接返回true
+ return true;
+ }
+ }
+ //当循环结束表示集合里面的所有元素都已经比较完毕,还没有一样的,那么返回false就可以了
+ return false;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo2.java b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb73f2bd616185a16723e809dcc26bffacf1e61b
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/Find_Users_demo2.java
@@ -0,0 +1,47 @@
+package Find_users_package;
+
+import java.util.ArrayList;
+
+public class Find_Users_demo2 {
+ /*
+ 需求:
+ 1、main方法中定义一个集合,存入三个用户对象。
+ 用户属性:id, username, password
+ 2、要求:定义一个方法,根据id查找对应的用户信息
+ 如果存在,返回 索引
+ 如果不存在,返回 -1
+ */
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+
+ //2、创建3个用户对象
+ User u1 = new User("001", "张三", "123456");
+ User u2 = new User("002", "李四", "12345678");
+ User u3 = new User("003", "王五", "123456qaz");
+
+ //3、把用户对象添加到集合当中
+ list.add(u1);
+ list.add(u2);
+ list.add(u3);
+
+ //4、查找索引
+ int index = getIndex(list, "001");
+
+ //5、打印
+ System.out.println(index);
+ }
+
+ public static int getIndex(ArrayList list, String id) {
+ for (int i = 0; i < list.size(); i++) {
+ User u = list.get(i);
+ String uid = u.getId();
+
+ if (uid.equals(id)) {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Find_users_package/User.java b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..29fb54dc1297b9ec62dec42e01d8babd9ef7c7b1
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Find_users_package/User.java
@@ -0,0 +1,40 @@
+package Find_users_package;
+
+public class User {
+ private String id;
+ private String username;
+ private String password;
+
+ public User() {
+ }
+
+ public User(String id, String username, String password) {
+ this.id = id;
+ this.username = username;
+ this.password = password;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Phone.java b/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Phone.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d05e572ea434ad0f24b5e379c014d5ed4106b0e
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Phone.java
@@ -0,0 +1,31 @@
+package Return_multiple_data_package;
+
+public class Phone {
+ //Phone属性:品牌、价格
+ private String brand;
+ private int price;
+
+ public Phone() {
+ }
+
+ public Phone(String brand, int price) {
+ this.brand = brand;
+ this.price = price;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Test.java b/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..f37614c6127de01f5a94430a9b6026134c1d8f30
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Return_multiple_data_package/Test.java
@@ -0,0 +1,58 @@
+package Return_multiple_data_package;
+
+import java.util.ArrayList;
+
+public class Test {
+ /*
+ 需要:
+ 定义Javabean类:Phone
+ Phone属性:品牌、价格
+ main方法中定义一个集合,存入三个手机对象
+ 分别为:小米1000。苹果8000。锤子2999。
+ 定义一个方法,将价格低于3000的手机信息返回。
+ */
+ public static void main(String[] args) {
+ //1、创建集合对象
+ ArrayList list = new ArrayList<>();
+
+ //2、创建手机的对象
+ Phone p1 = new Phone("小米", 1000);
+ Phone p2 = new Phone("苹果", 8000);
+ Phone p3 = new Phone("锤子", 2999);
+
+ //3、添加数据
+ list.add(p1);
+ list.add(p2);
+ list.add(p3);
+
+ //4、调用方法
+ ArrayList infoList = getPhoneInfo(list);
+
+ //5、遍历集合
+ for (int i = 0; i < infoList.size(); i++) {
+ Phone p = infoList.get(i);
+ System.out.println(p.getBrand() + ", " + p.getPrice());
+ }
+
+ }
+
+ //技巧:
+ //如果我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
+ //集合、数组
+ public static ArrayList getPhoneInfo(ArrayList list) {
+ //定义一个集合用于存储价格低于3000的手机对象
+ ArrayList resultList = new ArrayList<>();
+
+ //遍历集合
+ for (int i = 0; i < list.size(); i++) {
+ Phone p = list.get(i);
+ int price = p.getPrice();
+ //如果当前手机的价格低于3000,那么就把手机对象添加到resultList中
+ if (price < 3000) {
+ resultList.add(p);
+ }
+ }
+
+ return resultList;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo1.java b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..21051761c5b6be901a48c6a2f6d89dad26be3c88
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo1.java
@@ -0,0 +1,28 @@
+package Traversal_of_sets_package1;
+
+import java.util.ArrayList;
+
+public class Traversal_of_sets_demo1 {
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+
+ //2、添加元素
+ list.add("点赞了吗?");
+ list.add("收藏了吗?");
+ list.add("投币了吗?");
+ list.add("转发了吗?");
+
+ //3、遍历
+ System.out.print("[");
+ for (int i = 0; i < list.size(); i++) {
+ if (i == list.size() - 1) {
+ System.out.print(list.get(i));
+ } else {
+ System.out.print(list.get(i) + ", ");
+ }
+ }
+
+ System.out.println("]");
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo2.java b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f4e80c3e4c13def39494792884652b08597f1f3
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package1/Traversal_of_sets_demo2.java
@@ -0,0 +1,28 @@
+package Traversal_of_sets_package1;
+
+import java.util.ArrayList;
+
+public class Traversal_of_sets_demo2 {
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+
+ //2、添加元素
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ list.add(4);
+ list.add(5);
+
+ //3、遍历集合
+ System.out.print("[");
+ for (int i = 0; i < list.size(); i++) {
+ if (i == list.size() - 1) {
+ System.out.print(list.get(i));
+ } else {
+ System.out.print(list.get(i) + ", ");
+ }
+ }
+ System.out.println("]");
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Student.java b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..067979d3fc01cd976eecb6311b7c22ca2b06e161
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Student.java
@@ -0,0 +1,35 @@
+package Traversal_of_sets_package2;
+
+public class Student {
+ //1、私有化成员变量
+ private String name;
+ private int age;
+
+ //2、空参构造方法
+ public Student() {
+ }
+
+
+ //3、带全部参数的构造方法
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ //4、get/set方法
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo1.java b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..1eb7325e82d98bd85e3274f31b7d79e92a09beb0
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo1.java
@@ -0,0 +1,27 @@
+package Traversal_of_sets_package2;
+
+import java.util.ArrayList;
+
+public class Traversal_of_sets_demo1 {
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+
+ //2、创建学生对象
+ Student s1 = new Student("张三", 23);
+ Student s2 = new Student("李四", 24);
+ Student s3 = new Student("王五", 25);
+
+ //3、添加元素
+ list.add(s1);
+ list.add(s2);
+ list.add(s3);
+
+ //4、遍历集合
+ for (int i = 0; i < list.size(); i++) {
+ //i 索引 list.get(i) 元素/学生对象
+ Student stu = list.get(i);
+ System.out.println(stu.getName() + ", " + stu.getAge());
+ }
+ }
+}
diff --git a/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo2.java b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c67c91272ae2a3c9f5f6e8eadf5293abfd02ec1f
--- /dev/null
+++ b/ArrayList_project/ArrayList_Case_module/src/Traversal_of_sets_package2/Traversal_of_sets_demo2.java
@@ -0,0 +1,34 @@
+package Traversal_of_sets_package2;
+
+import java.util.ArrayList;
+import java.util.Scanner;
+
+public class Traversal_of_sets_demo2 {
+ public static void main(String[] args) {
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+ //长度为0
+
+ Scanner sc = new Scanner(System.in);
+
+ //2、键盘录入学生的信息并添加到集合当中
+ for (int i = 0; i < 3; i++) {
+ Student s = new Student();
+ System.out.println("请输入学生的姓名:");
+ String name = sc.next();
+ System.out.println("请输入学生的年龄:");
+ int age = sc.nextInt();
+
+ //把name和age赋值给学生对象
+ s.setName(name);
+ s.setAge(age);
+
+ //把学生对象添加到集合当中
+ list.add(s);
+ }
+
+
+ //集合里面是否有学生对象
+ System.out.println(list);
+ }
+}
diff --git a/ArrayList_project/ArrayList_module/.DS_Store b/ArrayList_project/ArrayList_module/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..87a24996a9a19dbce5ae1a1915596012b4020da1
Binary files /dev/null and b/ArrayList_project/ArrayList_module/.DS_Store differ
diff --git a/ArrayList_project/ArrayList_module/ArrayList_module.iml b/ArrayList_project/ArrayList_module/ArrayList_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/ArrayList_project/ArrayList_module/ArrayList_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/ArrayList_module/src/.DS_Store b/ArrayList_project/ArrayList_module/src/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..30c20361657b8749e0eb7448e93a8187dea6b706
Binary files /dev/null and b/ArrayList_project/ArrayList_module/src/.DS_Store differ
diff --git a/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo1.java b/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..853c0aeedaa1b36c2cff9cd76cc64948c1120cc4
--- /dev/null
+++ b/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo1.java
@@ -0,0 +1,18 @@
+package ArrayList_package;
+
+import java.util.ArrayList;
+
+public class ArrayList_demo1 {
+ public static void main(String[] args) {
+ //1、创建集合的对象
+ //泛型:限定集合中存储数据的类型
+ ArrayList list = new ArrayList<>();
+
+ //此时我们创建的是ArrayList的对象,而ArrayList是Java已经写好的一个类
+ //这个类在底层做了一些处理
+ //打印对象不是地址值,而是集合中存储数据内容
+ //在展示的时候会拿[]把所有的数据进行包裹
+ System.out.println(list);
+
+ }
+}
diff --git a/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo2.java b/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..4159f9f48ebc66572f5e39d397ee5d2f5fb2a16d
--- /dev/null
+++ b/ArrayList_project/ArrayList_module/src/ArrayList_package/ArrayList_demo2.java
@@ -0,0 +1,57 @@
+package ArrayList_package;
+
+import java.util.ArrayList;
+
+public class ArrayList_demo2 {
+ /*
+ boolean add(E e) 添加
+
+ boolean remove(E e) 删除
+ E remove(int index)
+
+ E set(int index,E e) 修改
+
+ E get(int index) 查询
+
+ int size() 获取长度
+ */
+ public static void main(String[] args) {
+ //1、创建一个集合
+ ArrayList list = new ArrayList<>();
+
+ //2、添加元素
+ boolean result1 = list.add("aaa");
+ list.add("bbb");
+ list.add("ccc");
+ list.add("ddd");
+ System.out.println(result1);
+
+ System.out.println(list);
+
+ //3、删除元素
+ boolean result2 = list.remove("aaa");
+ System.out.println(result2);
+
+ boolean result3 = list.remove("eee");
+ System.out.println(result3);
+
+ String str = list.remove(0);
+ System.out.println(str);
+
+ //4、修改元素
+ String result4 = list.set(0, "ddd");
+ System.out.println(list);
+
+ //5、查询元素
+ String str2 = list.get(0);
+ System.out.println(str2);
+
+ //遍历
+ for (int i = 0; i < list.size(); i++) {
+ //i 索引
+ //list.get(i) 元素
+ String s = list.get(i);
+ System.out.println(s);
+ }
+ }
+}
diff --git a/ArrayList_project/ArrayList_project.iml b/ArrayList_project/ArrayList_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/ArrayList_project/ArrayList_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo1.class b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5a54825626b6092f4db9dd3e8b6733f7e5bc4b07
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo1.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo2.class b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f3cd1f06c43683929a1af879af25ec5fa656a2ef
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/Find_Users_demo2.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/User.class b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..d7414245972232ad4884075a79a101320207db8c
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Find_users_package/User.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Phone.class b/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Phone.class
new file mode 100644
index 0000000000000000000000000000000000000000..6852ab21e30276e23b613230b6c92137b3351963
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Phone.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Test.class b/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..9d71a1389916a88aa7b25361bfcd1c14a9ef7b20
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Return_multiple_data_package/Test.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo1.class b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..87d64d4dbb3ce1bec2076fe3d8c7c598a2fa16c2
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo1.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo2.class b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..260ca56ae238c2948104b1f453a67065ca68714c
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package1/Traversal_of_sets_demo2.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Student.class b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..1ccbf69435ffd3c62a0c830641c27db276045424
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Student.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo1.class b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7f9788802750ddd015e21923ec71321e59e6327f
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo1.class differ
diff --git a/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo2.class b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..444d334d6b0d2da31e756d31314727e19ae42d1b
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_Case_module/Traversal_of_sets_package2/Traversal_of_sets_demo2.class differ
diff --git a/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo1.class b/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7f8a41aba00a8632f8cd5cf29a294c32e069e1a4
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo1.class differ
diff --git a/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo2.class b/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d54ca6b6bc4d6db05c08b81b2dc1d4f95da1b62
Binary files /dev/null and b/ArrayList_project/out/production/ArrayList_project/ArrayList_package/ArrayList_demo2.class differ
diff --git a/Array_project/.DS_Store b/Array_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..9c4b116d57f17a1a5648ff89dc6ca198797f629a
Binary files /dev/null and b/Array_project/.DS_Store differ
diff --git a/Array_project/.idea/.gitignore b/Array_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Array_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Array_project/.idea/misc.xml b/Array_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Array_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Array_project/.idea/modules.xml b/Array_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cf42906ee5a8289ebfaaa304c31786ec9dd3e2cb
--- /dev/null
+++ b/Array_project/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Array_project/.idea/workspace.xml b/Array_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca33b054cd2874325f1c018fa5351127dfc791ef
--- /dev/null
+++ b/Array_project/.idea/workspace.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1675740828633
+
+
+ 1675740828633
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Array_project/Array_module/Array_module.iml b/Array_project/Array_module/Array_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Array_project/Array_module/Array_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Array_project/Array_module/src/Array_Case_package/case1_Find_the_maximum.java b/Array_project/Array_module/src/Array_Case_package/case1_Find_the_maximum.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab7d9d534670e06fe49c17d20ed683d91e9d28eb
--- /dev/null
+++ b/Array_project/Array_module/src/Array_Case_package/case1_Find_the_maximum.java
@@ -0,0 +1,39 @@
+package Array_Case_package;
+
+public class case1_Find_the_maximum {
+ public static void main(String[] args) {
+ //定义数组求最大值:33,5,22,44,55
+
+ //拓展问题:
+ //1、根据求最大值的思路,自己改写一下求最小值
+ //2、为什么max要记录为arr[0],默认值不能为0吗?
+ //不能写0
+ //max的初始化值,一定要是数组中的值
+ //3、循环中开始条件一定是0吗?
+ //循环的开始条件如果为0,那么第一次循环的时候是自己跟自己比了一下,对结果没有任何影响,但是效率偏低
+ //为了提高效率,减少一次循环的次数,循环的开始条件可以写1
+
+
+ //1、定义数组用来存储5个值
+ int[] arr = {33, 5, 22, 44, 55};
+
+ //2、定义一个变量max用来存储最大值
+ //临时认为0索引的数据是最大的
+ int max = arr[0];
+
+ //3、循环获取数组中的每一个元素
+ //拿着每一个元素跟max进行比较
+ for (int i = 1; i < arr.length; i++) {
+ //i 索引 arr[i] 元素
+ if (arr[i] > max) {
+ max = arr[i];
+ }
+ }
+
+ //4、当循环结束之后,max记录的就是数组中的最大值
+ System.out.println(max);
+
+
+ //最小值
+ }
+}
diff --git a/Array_project/Array_module/src/Array_Case_package/case2_Sum_of_traversal.java b/Array_project/Array_module/src/Array_Case_package/case2_Sum_of_traversal.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb218c293ff50bb4cda3276655c9d56a7f0d568e
--- /dev/null
+++ b/Array_project/Array_module/src/Array_Case_package/case2_Sum_of_traversal.java
@@ -0,0 +1,64 @@
+package Array_Case_package;
+
+import java.util.Random;
+
+public class case2_Sum_of_traversal {
+ public static void main(String[] args) {
+ /*
+ 需求:生成10个1~100之间的随机数存入数组
+ 1)求出所有数据的和
+ 2)求所有数据的平均数
+ 3)统计有多少个数据比平均值小
+ */
+
+ //分析:
+ //1、定义数组
+ int[] arr = new int[10];
+
+ //2、把随机数存入到数组当中
+ Random r = new Random();
+ for (int i = 0; i < arr.length; i++) {
+ //每循环一次,就会生成一个新的随机数
+ int number = r.nextInt(100) + 1;
+
+ //把生成的随机数添加到数组中
+ //数组名[索引] = 数据;
+ arr[i] = number;
+ }
+
+ //遍历数组
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i] + " ");
+ }
+ System.out.println();
+
+ //1)求出所有数据的和
+ //定义求和变量
+ int sum = 0;
+ for (int i = 0; i < arr.length; i++) {
+ //循环得到每一个元素
+ //并把元素累加到sum当中
+ sum += arr[i];
+ }
+ System.out.println("数组中所有数据的和为:" + sum);
+
+
+ //2)求所有数据的平均数
+ int avg = sum / arr.length;
+ System.out.println("数组中平均数为:" + avg);
+
+
+ //3)统计有多少个数据比平均数小
+ int count = 0;
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] < avg) {
+ count++;
+ }
+ }
+
+ //当循环结束之后,就表示我已经找到了所有的比平均数小的数据
+ System.out.println("在数组中,一共有" + count + "个数据,比平均数小。");
+
+
+ }
+}
diff --git a/Array_project/Array_module/src/Array_Case_package/case3_Exchange_data.java b/Array_project/Array_module/src/Array_Case_package/case3_Exchange_data.java
new file mode 100644
index 0000000000000000000000000000000000000000..63e1da9b0e64724c89f1a3a47c29ae4f8203ee2e
--- /dev/null
+++ b/Array_project/Array_module/src/Array_Case_package/case3_Exchange_data.java
@@ -0,0 +1,27 @@
+package Array_Case_package;
+
+public class case3_Exchange_data {
+ public static void main(String[] args) {
+ /*
+ 需求:定义一个数组,存入1,2,3,4,5.交换首尾索引对应的元素
+ 交换前:1,2,3,4,5
+ 交换后:5,4,3,2,1
+ */
+
+ //1、定义数组存储数据
+ int[] arr = {1, 2, 3, 4, 5};
+
+ //2、利用循环去交换数据
+ for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
+ //交换变量i和变量j指向的元素
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+
+ //当循环结束之后,那么数组中的数据就实现了头尾交换
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i] + " ");
+ }
+ }
+}
diff --git a/Array_project/Array_module/src/Array_Case_package/case4_Scramble_data.java b/Array_project/Array_module/src/Array_Case_package/case4_Scramble_data.java
new file mode 100644
index 0000000000000000000000000000000000000000..31115c0cf485977c57406e211daeac704f5ae61c
--- /dev/null
+++ b/Array_project/Array_module/src/Array_Case_package/case4_Scramble_data.java
@@ -0,0 +1,38 @@
+package Array_Case_package;
+
+import java.util.Random;
+
+public class case4_Scramble_data {
+ public static void main(String[] args) {
+ //需求:定义一个数组,存入1~5,要求打乱数组中所有数据的顺序
+
+ //难点:
+ //如何获取数组中的随机索引
+// int[] arr = {1, 2, 3, 4, 5};
+
+ //索引范围:0 1 2 3 4
+// Random r = new Random();
+// int randomIndex = r.nextInt(arr.length);
+// System.out.println(randomIndex);
+
+ //1、定义数组存储1~5
+ int[] arr = {1, 2, 3, 4, 5};
+
+ Random r = new Random();
+ //2、循环遍历数组,从0索引开始打乱数据的顺序
+ for (int i = 0; i < arr.length; i++) {
+ //生成一个随机索引
+ int randomIndex = r.nextInt(arr.length);
+
+ //拿着随机索引指向的元素,跟 i 指向的元素进行交换
+ int temp = arr[i];
+ arr[i] = arr[randomIndex];
+ arr[randomIndex] = temp;
+ }
+
+ //当循环结束之后,那么数组中所有的数据已经打乱顺序了
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i] + " ");
+ }
+ }
+}
diff --git a/Array_project/Array_module/src/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.java b/Array_project/Array_module/src/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..f202dc2de5e388a048f40ba66b6c398f33960c30
--- /dev/null
+++ b/Array_project/Array_module/src/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.java
@@ -0,0 +1,39 @@
+package Array_Dynamic_initialization_package;
+
+public class Array_Dynamic_initialization_demo1 {
+ public static void main(String[] args) {
+ /*
+ 定义一个数组,用来存班级中50个学生的姓名
+ 姓名未知,等学生报道之后,再进行添加。
+ */
+
+ //格式:
+ //数据类型[] 数组名 = new 数据类型[数组长度];
+ //在创建的时候,由我们自己指定数组长度,由虚拟机给出默认的初始化值
+
+ String[] arr = new String[50];
+
+ //添加学生
+ arr[0] = "张三";
+ arr[1] = "李四";
+
+ //获取
+ System.out.println(arr[0]);
+ System.out.println(arr[1]);
+ System.out.println(arr[2]);//null
+
+ //数组默认初始化值的规律
+ //整数类型:默认初始化值0
+ //小数类型:默认初始化值0.0
+ //字符类型:默认初始化值'/u0000'空格
+ //布尔类型:默认初始化值 false
+ //引用数据类型:默认初始化值 null
+
+ int[] arr2 = new int[3];
+ System.out.println(arr2[0]);
+ System.out.println(arr2[1]);
+ System.out.println(arr2[2]);
+
+
+ }
+}
diff --git a/Array_project/Array_module/src/Array_common_problem_package/Array_common_problem_demo1.java b/Array_project/Array_module/src/Array_common_problem_package/Array_common_problem_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..c42b071ec13b87b80e1a1fcf10b1783fb6c26fdc
--- /dev/null
+++ b/Array_project/Array_module/src/Array_common_problem_package/Array_common_problem_demo1.java
@@ -0,0 +1,20 @@
+package Array_common_problem_package;
+
+public class Array_common_problem_demo1 {
+ public static void main(String[] args) {
+ //1、定义一个数组
+ int[] arr = {1, 2, 3, 4, 5};
+ //长度:5
+ //最小索引:0
+ //最大索引:4(数组长度 - 1)
+
+ //error: System.out.println(arr[10]);
+
+ //小结:
+ //索引越界异常
+ //原因:访问了不存在的索引
+ //避免:超出索引的范围
+ //最小索引:0
+ //最大索引:数组长度 - 1
+ }
+}
diff --git a/Array_project/Array_module/src/Array_element_access_package/Array_element_access_demo1.java b/Array_project/Array_module/src/Array_element_access_package/Array_element_access_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c19ba5e7717419435d872cc637f2efa722f5507
--- /dev/null
+++ b/Array_project/Array_module/src/Array_element_access_package/Array_element_access_demo1.java
@@ -0,0 +1,25 @@
+package Array_element_access_package;
+
+public class Array_element_access_demo1 {
+ public static void main(String[] args) {
+ //利用索引对数组中的元素进行访问
+ //1、获取数组里面的元素
+ // 格式:数组名[索引]
+
+ int[] arr = {1, 2, 3, 4, 5};
+ //获取数组中的第一个元素
+ //其实就是0索引上对应的元素
+ int number = arr[0];
+ System.out.println(number);//1
+
+ //获取数组中1索引上对应的数据,并直接打印出来
+ System.out.println(arr[1]);//2
+
+
+ //2、把数据存储到数组当中
+ //格式:数组名[索引] = 具体数据/变量;
+ //细节:一旦覆盖之后,原来的数据就不存在了。
+ arr[0]=100;
+ System.out.println(arr[0]);//100
+ }
+}
diff --git a/Array_project/Array_module/src/Array_static_initialization_package/Array_static_initialization_demo1.java b/Array_project/Array_module/src/Array_static_initialization_package/Array_static_initialization_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb5c55f02ace2cc6f7acc4960c9a3cfda3f0bb75
--- /dev/null
+++ b/Array_project/Array_module/src/Array_static_initialization_package/Array_static_initialization_demo1.java
@@ -0,0 +1,33 @@
+package Array_static_initialization_package;
+
+public class Array_static_initialization_demo1 {
+ public static void main(String[] args) {
+ //格式:
+ //静态初始化
+ //完整格式:
+ //数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,……};
+ //简化格式:
+ //数据类型 [] 数组名 = {元素1,元素2,……};
+
+ //需求1:定义数组存储5个学生的年龄
+ int[] arr1 = new int[]{11, 12, 13, 14, 15};
+ int[] arr2 = {11, 12, 13, 14, 15};
+
+ //需求2:定义数组存储3个学生的姓名
+ String[] arr3 = new String[]{"张三", "李四", "王五"};
+ String[] arr4 = {"张三", "李四", "王五"};
+
+ //需求3:定义数组存储4个学生的身高
+ double[] arr5 = new double[]{1.93, 1.75, 1.73, 1.81};
+ double[] arr6 = {1.93, 1.75, 1.73, 1.81};
+
+ System.out.println(arr6);//[D@372f7a8d 地址值
+
+ //拓展:
+ //解释一下地址值的格式含义 [D@372f7a8d
+ //[ : 表示当前是一个数组
+ //D :表示当前数组里面的元素都是double类型的
+ //@ :表示一个间隔符号,<固定格式>
+ //372f7a8d:才是数组真正的地址值(十六进制)
+ }
+}
diff --git a/Array_project/Array_module/src/Array_traversal_package/Array_traversal_demo1.java b/Array_project/Array_module/src/Array_traversal_package/Array_traversal_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..f646546930a039d5e81891ffd785fb6322f1fd0f
--- /dev/null
+++ b/Array_project/Array_module/src/Array_traversal_package/Array_traversal_demo1.java
@@ -0,0 +1,22 @@
+package Array_traversal_package;
+
+public class Array_traversal_demo1 {
+ public static void main(String[] args) {
+ //1、定义数组
+ int[] arr = {1, 2, 3, 4, 5};
+
+ //2、获取数组里面所有的元素
+ //格式:数组名[索引];
+
+ //利用循环
+ //开始条件:0
+ //结束条件:数组的长度 - 1 (最大索引)
+ for (int i = 0; i < arr.length; i++) {
+ System.out.println(arr[i]);
+ }
+
+ //在Java当中,关于数组的一个长度属性,length
+ //调用方式:数组名.length
+ System.out.println(arr.length);
+ }
+}
diff --git a/Array_project/Array_module/src/Array_traversal_package/case1_Ergodic_summation.java b/Array_project/Array_module/src/Array_traversal_package/case1_Ergodic_summation.java
new file mode 100644
index 0000000000000000000000000000000000000000..820e38680682b40ba39f3cd8b7af5ffa2ef1f0e4
--- /dev/null
+++ b/Array_project/Array_module/src/Array_traversal_package/case1_Ergodic_summation.java
@@ -0,0 +1,27 @@
+package Array_traversal_package;
+
+public class case1_Ergodic_summation {
+ public static void main(String[] args) {
+ /*
+ 定义一个数组,存储1,2,3,4,5
+ 遍历数组得到每一个元素,求数组里面所有的数据和
+ */
+
+ //分析:
+ //1、定义一个数组,并添加数据1,2,3,4,5
+ int[] arr = {1, 2, 3, 4, 5};
+
+ //求和变量
+ int sum = 0;
+
+ //2、遍历数组得到每一个数据,累加求和
+ for (int i = 0; i < arr.length; i++) {
+ //i 依次表示数组里面的每一个索引
+ //arr[i] 依次表示数组里面的每一个元素
+ sum += arr[i];
+ }
+
+ //当循环结束之后,sum的值就是累加之后的结果
+ System.out.println(sum);
+ }
+}
diff --git a/Array_project/Array_module/src/Array_traversal_package/case2_Statistics.java b/Array_project/Array_module/src/Array_traversal_package/case2_Statistics.java
new file mode 100644
index 0000000000000000000000000000000000000000..c033248b8f402230b3f131cecb65984d0674c741
--- /dev/null
+++ b/Array_project/Array_module/src/Array_traversal_package/case2_Statistics.java
@@ -0,0 +1,34 @@
+package Array_traversal_package;
+
+public class case2_Statistics {
+ public static void main(String[] args) {
+ /*
+ 定义一个数组,存储1,2,3,4,5,6,7,8,9,10
+ 遍历数组得到每一个元素,统计数组里面一共有多少个能被3整除的数字
+ */
+
+ //分析:
+ //1、定义一个数组 存储1,2,3,4,5,6,7,8,9,10
+ int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+
+ //定义一个变量,用来统计次数
+ int count = 0;
+
+ //2、遍历数组得到每一个元素
+ for (int i = 0; i < arr.length; i++) {
+ //i 表示数组里面的每一个索引
+ //arr[i] 表示数组里面的每一个元素
+
+ //3、判断当前的元素是否为3的倍数,如果是那么统计变量就需要自增一次。
+ if (arr[i] % 3 == 0) {
+ System.out.println(arr[i]);
+ count++;
+ }
+ }
+
+ //当循环结束之后,就表示数组里面所有的数字都判断完毕了,直接打印count即可。
+ System.out.println("count = " + count);
+
+
+ }
+}
diff --git a/Array_project/Array_module/src/Array_traversal_package/case3_Change_data.java b/Array_project/Array_module/src/Array_traversal_package/case3_Change_data.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a056970dfdb74ba65189cd84bbbb0c7fbd501f1
--- /dev/null
+++ b/Array_project/Array_module/src/Array_traversal_package/case3_Change_data.java
@@ -0,0 +1,38 @@
+package Array_traversal_package;
+
+public class case3_Change_data {
+ public static void main(String[] args) {
+ /*
+ 定义一个数组,存储1,2,3,4,5,6,7,8,9,10
+ 遍历数组得到每一个元素。
+ 要求:
+ 1、如果是奇数,则将当前数字扩大两倍
+ 2、如果是偶数,则将当前数字变成二分之一
+ */
+
+ //分析:
+ //1、定义一个数组,存1,2,3,4,5,6,7,8,9,10
+ int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+
+ //2、遍历数组得到每一个元素
+ for (int i = 0; i < arr.length; i++) {
+ // i 依次表示数组里面的每一个索引
+ // arr[i] 依次表示数组里面的每一个元素
+
+ //3、对每一个元素进行判断
+ if (arr[i] % 2 == 0) {
+ //偶数 变成二分之一
+ arr[i] = arr[i] / 2;
+ } else {
+ //奇数 扩大两倍
+ arr[i] = arr[i] * 2;
+ }
+ }
+
+ //遍历数组
+ for (int i = 0; i < arr.length; i++) {
+ System.out.println(arr[i]);
+ }
+
+ }
+}
diff --git a/Array_project/Array_module/src/Two_dimensional_array_package/case1_Quarterly_turnover.java b/Array_project/Array_module/src/Two_dimensional_array_package/case1_Quarterly_turnover.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac37bb731fd42b2f30c54eb94310e679344c9b12
--- /dev/null
+++ b/Array_project/Array_module/src/Two_dimensional_array_package/case1_Quarterly_turnover.java
@@ -0,0 +1,49 @@
+package Two_dimensional_array_package;
+
+public class case1_Quarterly_turnover {
+ public static void main(String[] args) {
+ /*
+ 某商场每个季度的营业额如下:单位(万元)
+ 第一季度:22,66,44 一维数组
+ 第二季度:77,33,88 一维数组
+ 第三季度:25,45,65 一维数组
+ 第四季度:11,66,99 一维数组
+
+ 要求计算出每个季度的总营业额和全年的总营业额。
+ */
+
+ //1、创建二维数组并存储数据
+ int[][] yearArr = {
+ {22, 66, 44},
+ {77, 33, 88},
+ {25, 45, 65},
+ {11, 66, 99}
+ };
+
+ //表示全年的营业额
+ int yearSum = 0;
+
+ //2、遍历二维数组,得到每一个一维数组并求和
+ for (int i = 0; i < yearArr.length; i++) {
+ //i 二维数组中的每一个索引
+ //yearArr[i] 元素(一维数组)
+
+ int[] quarterArr = yearArr[i];
+ int sum = getSum(quarterArr);
+ System.out.println("第" + (i + 1) + "个季度的总营业额为:" + sum);
+ yearSum += sum;
+ }
+
+ System.out.println("全年的总营业额为:" + yearSum);
+ }
+
+ //定义一个方法,计算出每一个季度的营业额
+ public static int getSum(int[] arr) {
+ int sum = 0;
+ for (int i = 0; i < arr.length; i++) {
+ //i arr[i]
+ sum += arr[i];
+ }
+ return sum;
+ }
+}
diff --git a/Array_project/Array_module/src/Two_dimensional_array_package/dynamic_initialization.java b/Array_project/Array_module/src/Two_dimensional_array_package/dynamic_initialization.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e17251d3512e3cbdceddea1347c0f9520d51add
--- /dev/null
+++ b/Array_project/Array_module/src/Two_dimensional_array_package/dynamic_initialization.java
@@ -0,0 +1,30 @@
+package Two_dimensional_array_package;
+
+public class dynamic_initialization {
+ public static void main(String[] args) {
+ /*
+ 二维数组动态初始化格式:
+ 数据类型[][] 数组名 = new 数据类型[m][n];
+ m表示这个二维数组,可以存放多少个一维数组
+ n表示每一个一维数组,可以存放多少个元素
+ */
+
+ //1、利用动态初始化格式创建二维数组
+ //3:表示二维数组长度为3,可以装3个一维数组
+ //5:表示每一个一维数组的长度都是5,可以装5个int类型的元素
+ int[][] arr=new int[3][5];
+
+ //给二维数组赋值一个元素
+ arr[0][0]=10;
+
+ //遍历二维数组
+ //外循环:遍历二维数组获取里面的每一个一维数组
+ //内循环:遍历一维数组获取每一个元素
+ for (int i = 0; i < arr.length; i++) {
+ for (int j = 0; j < arr[i].length; j++) {
+ System.out.print(arr[i][j]+" ");
+ }
+ System.out.println();
+ }
+ }
+}
diff --git a/Array_project/Array_module/src/Two_dimensional_array_package/initiate_static.java b/Array_project/Array_module/src/Two_dimensional_array_package/initiate_static.java
new file mode 100644
index 0000000000000000000000000000000000000000..806481017ec46757148776c6584ba494ef45db82
--- /dev/null
+++ b/Array_project/Array_module/src/Two_dimensional_array_package/initiate_static.java
@@ -0,0 +1,57 @@
+package Two_dimensional_array_package;
+
+public class initiate_static {
+
+ public static void main(String[] args) {
+ /*
+ 二维数组静态初始化格式:
+ 数据类型[][] 数组名 = new 数据类型[][] {{元素1,元素2}, {元素1,元素2}};
+
+ 简化格式:
+ 数据类型[][] 数组名 = {{元素1,元素2}, {元素1,元素2}};
+
+ 元素格式:
+ 数组名[索引][索引];
+
+ 二维数组遍历:
+ 先得到一维数组,再遍历一维数组获取元素
+
+ */
+
+ //1、二维数组静态初始化格式
+ //数据类型[][] 数组名 = new 数据类型[][] {{元素1,元素2}, {元素1,元素2}};
+ int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5, 6, 7, 8}};
+ int[][] arr2 = {{1, 2, 3}, {4, 5, 6, 7, 8}};
+
+ //以后建议这样定义,把每一个一维数组,单独写成一行
+ //注意:每一个一维数组其实是二维数组中的元素,所以每一个一维数组之间需要用逗号隔开,最后一个一维数组后面不需要加逗号
+ int[][] arr3 = {
+ {1, 2, 3},
+ {4, 5, 6, 7, 8}
+ };
+
+ //2、获取元素
+ //arr[i][j]
+ //arr:二维数组
+ //i:二维数组的索引,获取出来的是里面的一维数组
+ //j:表示一维数组中的索引,获取出来的是真正的元素
+
+ System.out.println(arr3[0]);//表示获取二维数组中的第一个一维数组
+
+ System.out.println(arr3[0][0]);//获取第一个一维数组中0索引的元素
+
+ //3、二维数组遍历
+ //外循环:遍历二维数组,得到里面的每一个一维数组
+ for (int i = 0; i < arr3.length; i++) {
+ //i:表示二维数组中的每一个索引
+ //arr3[i]:表示二维数组中的每一个元素(一维数组)
+
+ //内循环:遍历一维数组,得到里面的每一个一维数组
+ for (int j = 0; j < arr3[i].length; j++) {
+ //j:表示一维数组中的每一个元素
+ System.out.print(arr3[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+}
diff --git a/Array_project/Array_project.iml b/Array_project/Array_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Array_project/Array_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Array_project/out/production/Array_module/Array_Case_package/case1_Find_the_maximum.class b/Array_project/out/production/Array_module/Array_Case_package/case1_Find_the_maximum.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d9a8dfdd3a185c44101db791db2590d381f43c1
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_Case_package/case1_Find_the_maximum.class differ
diff --git a/Array_project/out/production/Array_module/Array_Case_package/case2_Sum_of_traversal.class b/Array_project/out/production/Array_module/Array_Case_package/case2_Sum_of_traversal.class
new file mode 100644
index 0000000000000000000000000000000000000000..790ffffd5bc4eb77676555d23dff9e719698e3fe
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_Case_package/case2_Sum_of_traversal.class differ
diff --git a/Array_project/out/production/Array_module/Array_Case_package/case3_Exchange_data.class b/Array_project/out/production/Array_module/Array_Case_package/case3_Exchange_data.class
new file mode 100644
index 0000000000000000000000000000000000000000..d43166c77f74dc2046e328efdb7d0d1ee8d0613f
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_Case_package/case3_Exchange_data.class differ
diff --git a/Array_project/out/production/Array_module/Array_Case_package/case4_Scramble_data.class b/Array_project/out/production/Array_module/Array_Case_package/case4_Scramble_data.class
new file mode 100644
index 0000000000000000000000000000000000000000..3a7681304cf1a07bafe80c53f10ebe44b1e241bd
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_Case_package/case4_Scramble_data.class differ
diff --git a/Array_project/out/production/Array_module/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.class b/Array_project/out/production/Array_module/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..2e0708851dc56a6d5dfde1b101217aaba050cab4
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_Dynamic_initialization_package/Array_Dynamic_initialization_demo1.class differ
diff --git a/Array_project/out/production/Array_module/Array_common_problem_package/Array_common_problem_demo1.class b/Array_project/out/production/Array_module/Array_common_problem_package/Array_common_problem_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..1ac74625eb25fe51f757bafcaaf13b982f2b22f3
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_common_problem_package/Array_common_problem_demo1.class differ
diff --git a/Array_project/out/production/Array_module/Array_element_access_package/Array_element_access_demo1.class b/Array_project/out/production/Array_module/Array_element_access_package/Array_element_access_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..60fa102efaff6653e4a5786f0ff5e6a08b48f16f
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_element_access_package/Array_element_access_demo1.class differ
diff --git a/Array_project/out/production/Array_module/Array_static_initialization_package/Array_static_initialization_demo1.class b/Array_project/out/production/Array_module/Array_static_initialization_package/Array_static_initialization_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..243ef582c252b7d21fbee09dc6be3c83d63acb66
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_static_initialization_package/Array_static_initialization_demo1.class differ
diff --git a/Array_project/out/production/Array_module/Array_traversal_package/Array_traversal_demo1.class b/Array_project/out/production/Array_module/Array_traversal_package/Array_traversal_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..6e446002cf0113d79ab98b6fdd4c0b201be626f9
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_traversal_package/Array_traversal_demo1.class differ
diff --git a/Array_project/out/production/Array_module/Array_traversal_package/case1_Ergodic_summation.class b/Array_project/out/production/Array_module/Array_traversal_package/case1_Ergodic_summation.class
new file mode 100644
index 0000000000000000000000000000000000000000..ff5940200c82cfd94c01a31658d552221d18d2bb
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_traversal_package/case1_Ergodic_summation.class differ
diff --git a/Array_project/out/production/Array_module/Array_traversal_package/case2_Statistics.class b/Array_project/out/production/Array_module/Array_traversal_package/case2_Statistics.class
new file mode 100644
index 0000000000000000000000000000000000000000..6d95fa75b868c1a103bc8e3731ccf8f7c96e2f0d
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_traversal_package/case2_Statistics.class differ
diff --git a/Array_project/out/production/Array_module/Array_traversal_package/case3_Change_data.class b/Array_project/out/production/Array_module/Array_traversal_package/case3_Change_data.class
new file mode 100644
index 0000000000000000000000000000000000000000..5e1cfddb5399f9debc34fa7aa9ea16d675908e15
Binary files /dev/null and b/Array_project/out/production/Array_module/Array_traversal_package/case3_Change_data.class differ
diff --git a/Array_project/out/production/Array_module/Two_dimensional_array_package/case1_Quarterly_turnover.class b/Array_project/out/production/Array_module/Two_dimensional_array_package/case1_Quarterly_turnover.class
new file mode 100644
index 0000000000000000000000000000000000000000..6d22e42a8755afc070fd1074f74da55e505be02b
Binary files /dev/null and b/Array_project/out/production/Array_module/Two_dimensional_array_package/case1_Quarterly_turnover.class differ
diff --git a/Array_project/out/production/Array_module/Two_dimensional_array_package/dynamic_initialization.class b/Array_project/out/production/Array_module/Two_dimensional_array_package/dynamic_initialization.class
new file mode 100644
index 0000000000000000000000000000000000000000..912d0775a273592674d6f99b4e831eb363e200cb
Binary files /dev/null and b/Array_project/out/production/Array_module/Two_dimensional_array_package/dynamic_initialization.class differ
diff --git a/Array_project/out/production/Array_module/Two_dimensional_array_package/initiate_static.class b/Array_project/out/production/Array_module/Two_dimensional_array_package/initiate_static.class
new file mode 100644
index 0000000000000000000000000000000000000000..a0880f4305cc0ac7804f850d92b6ca74d59330b6
Binary files /dev/null and b/Array_project/out/production/Array_module/Two_dimensional_array_package/initiate_static.class differ
diff --git a/Dynamic_proxy_project/.DS_Store b/Dynamic_proxy_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..8063010bf27fa4cbfa18467e6059d10864da258f
Binary files /dev/null and b/Dynamic_proxy_project/.DS_Store differ
diff --git a/Dynamic_proxy_project/.idea/.gitignore b/Dynamic_proxy_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Dynamic_proxy_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Dynamic_proxy_project/.idea/misc.xml b/Dynamic_proxy_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Dynamic_proxy_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dynamic_proxy_project/.idea/modules.xml b/Dynamic_proxy_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9b3a9f6e87ccbcbc51d3603628ca30f276a08be3
--- /dev/null
+++ b/Dynamic_proxy_project/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dynamic_proxy_project/.idea/workspace.xml b/Dynamic_proxy_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c570b92d080ead9865c348ceaffa7d3f4bc0356
--- /dev/null
+++ b/Dynamic_proxy_project/.idea/workspace.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1678017525992
+
+
+ 1678017525992
+
+
+
+
\ No newline at end of file
diff --git a/Dynamic_proxy_project/Dynamic_proxy_module/Dynamic_proxy_module.iml b/Dynamic_proxy_project/Dynamic_proxy_module/Dynamic_proxy_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_module/Dynamic_proxy_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/BigStar.java b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/BigStar.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a3213ec413fd81ea32477f64f5079194a5ccb95
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/BigStar.java
@@ -0,0 +1,47 @@
+package Dynamic_proxy_package;
+
+public class BigStar implements Star {
+ private String name;
+
+ public BigStar() {
+ }
+
+ public BigStar(String name) {
+ this.name = name;
+ }
+
+ //唱歌
+ @Override
+ public String sing(String name) {
+ System.out.println(this.name + "正在唱" + name);
+ return "谢谢";
+ }
+
+ //跳舞
+ @Override
+ public void dance() {
+ System.out.println(this.name + "正在跳舞");
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String toString() {
+ return "BigStar{name = " + name + "}";
+ }
+}
diff --git a/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/ProxyUtil.java b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/ProxyUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..400ebd51832bbcd2d04225c36eabfd7d3ebcfc3a
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/ProxyUtil.java
@@ -0,0 +1,64 @@
+package Dynamic_proxy_package;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+/*
+ *类的作用:
+ * 创建一个代理
+ */
+public class ProxyUtil {
+
+ /*
+ * 方法的作用:
+ * 给一个明星的对象,创建一个代理
+ *
+ * 形参:
+ * 被代理的明星对象
+ *
+ * 返回值:
+ * 给明星创建的代理
+ *
+ * 需求:
+ * 外面的人想要大明星唱一首歌
+ * 1、获取代理的对象
+ * 代理对象 = ProxyUtil.createProxy(大明星)
+ * 2、再调用代理的唱歌方法
+ * 代理对象.唱歌的方法();
+ * */
+ public static Star createProxy(BigStar bigStar) {
+ /* java.lang.reflect.Proxy类提供了为对象产生代理对象的方法:
+
+ public static Object newProxyInstance (ClassLoader loader, Class>[] interfaces, InvocationHandler h)
+ 参数一:用于指定用哪个类的加载器,去加载生成的代理类
+ 参数二:指定接口,这些接口用于指定生成的代理长什么,也就是有哪些方法
+ 参数三:用来指定生成的代理对象要干什么事情
+
+ */
+ Star star = (Star) Proxy.newProxyInstance(
+ ProxyUtil.class.getClassLoader(),
+ new Class[]{Star.class},
+ new InvocationHandler() {
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ /*
+ * 参数一:代理的对象
+ * 参数二:要运行的方法 sing
+ * 参数三:调用sing方法时,传递的实参
+ */
+
+ if ("sing".equals(method.getName())) {
+ System.out.println("准备话筒,收钱");
+ } else if ("dance".equals(method.getName())) {
+ System.out.println("准备场地,收钱");
+ }
+ //调用大明星里面唱歌或者跳舞的方法
+ return method.invoke(bigStar, args);
+
+ }
+ }
+ );
+ return star;
+ }
+}
diff --git a/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Star.java b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Star.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e7f89fb1d2938c0a0319ad4327bfbe3332e14c4
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Star.java
@@ -0,0 +1,11 @@
+package Dynamic_proxy_package;
+
+public interface Star {
+
+ //我们可以把所有想要被代理的方法定义在接口当中
+ //唱歌
+ public abstract String sing(String name);
+
+ //跳舞
+ public abstract void dance();
+}
diff --git a/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Test.java b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..6cdb478c06e576e5c58a1bb6389c40b79325dae5
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_module/src/Dynamic_proxy_package/Test.java
@@ -0,0 +1,24 @@
+package Dynamic_proxy_package;
+
+public class Test {
+ public static void main(String[] args) {
+// 需求:
+// 外面的人想要大明星唱一首歌
+// 1、获取代理的对象
+// 代理对象 = ProxyUtil.createProxy(大明星)
+// 2、再调用代理的唱歌方法
+// 代理对象.唱歌的方法();
+
+ //1、获取代理的对象
+ BigStar bigStar = new BigStar("鸡哥");
+ Star proxy = ProxyUtil.createProxy(bigStar);
+
+ //2、调用唱歌的方法
+ String result = proxy.sing("鸡你太美~");
+ System.out.println(result);
+
+ //3、调用跳舞的方法
+ proxy.dance();
+
+ }
+}
diff --git a/Dynamic_proxy_project/Dynamic_proxy_project.iml b/Dynamic_proxy_project/Dynamic_proxy_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Dynamic_proxy_project/Dynamic_proxy_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/BigStar.class b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/BigStar.class
new file mode 100644
index 0000000000000000000000000000000000000000..ddde5a1d5bbf76ff772157c507d6496c0bd2b489
Binary files /dev/null and b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/BigStar.class differ
diff --git a/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil$1.class b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..fe821708651bb6190160db111135d2af5cc795bf
Binary files /dev/null and b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil$1.class differ
diff --git a/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil.class b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil.class
new file mode 100644
index 0000000000000000000000000000000000000000..abecedad2311599b804024acff30f4eb3801c9b6
Binary files /dev/null and b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/ProxyUtil.class differ
diff --git a/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Star.class b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Star.class
new file mode 100644
index 0000000000000000000000000000000000000000..b553fad90931fd1e69c9a428e14ac91d6c3c518f
Binary files /dev/null and b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Star.class differ
diff --git a/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Test.class b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..fca325bd613e21bde06824a03fb4e18745b7c5ef
Binary files /dev/null and b/Dynamic_proxy_project/out/production/Dynamic_proxy_module/Dynamic_proxy_package/Test.class differ
diff --git a/Exception_project/.DS_Store b/Exception_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..01283a5f41b49cb2b2616f220a519f62123d7be7
Binary files /dev/null and b/Exception_project/.DS_Store differ
diff --git a/Exception_project/.idea/.gitignore b/Exception_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Exception_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Exception_project/.idea/misc.xml b/Exception_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Exception_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exception_project/.idea/modules.xml b/Exception_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b7f24166bce5d77af3de88393e2dd4468efb2c7
--- /dev/null
+++ b/Exception_project/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exception_project/.idea/workspace.xml b/Exception_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ee3024953c04ee4186cd9222112a5eb023c2c24b
--- /dev/null
+++ b/Exception_project/.idea/workspace.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677483686216
+
+
+ 1677483686216
+
+
+
+
\ No newline at end of file
diff --git a/Exception_project/Exception_module/Exception_module.iml b/Exception_project/Exception_module/Exception_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Exception_project/Exception_module/Exception_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exception_project/Exception_module/src/Exception_Case_package/AgeOutOfBoundsException.java b/Exception_project/Exception_module/src/Exception_Case_package/AgeOutOfBoundsException.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b14f0139476c005888834e8a840647cbfba9389
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_Case_package/AgeOutOfBoundsException.java
@@ -0,0 +1,10 @@
+package Exception_Case_package;
+
+public class AgeOutOfBoundsException extends RuntimeException {
+ public AgeOutOfBoundsException() {
+ }
+
+ public AgeOutOfBoundsException(String message) {
+ super(message);
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_Case_package/GirlFriend.java b/Exception_project/Exception_module/src/Exception_Case_package/GirlFriend.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b547c3002313166cfa09f743f75afc30bf2ef49
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_Case_package/GirlFriend.java
@@ -0,0 +1,61 @@
+package Exception_Case_package;
+
+public class GirlFriend {
+ private String name;
+ private int age;
+
+ public GirlFriend() {
+ }
+
+ public GirlFriend(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ int len = name.length();
+ if (len < 3 || len > 10) {
+ throw new NameFormatException(name + "格式有误,长度应该为:3~10");
+ }
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ *
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ *
+ * @param age
+ */
+ public void setAge(int age) {
+ if (age < 18 || age > 40) {
+ throw new AgeOutOfBoundsException(age + "超出了范围");
+ }
+ this.age = age;
+ }
+
+ public String toString() {
+ return "GirlFriend{name = " + name + ", age = " + age + "}";
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_Case_package/NameFormatException.java b/Exception_project/Exception_module/src/Exception_Case_package/NameFormatException.java
new file mode 100644
index 0000000000000000000000000000000000000000..396047d796e129a62408d37a934770cc4ff15ee7
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_Case_package/NameFormatException.java
@@ -0,0 +1,19 @@
+package Exception_Case_package;
+
+//自定义异常
+public class NameFormatException extends RuntimeException {
+ //技巧:
+ //NameFormat:当前异常的名字,表示姓名格式化问题
+ //Exception:表示当前类是一个异常类
+
+ //运行时:RuntimeException 核心 就表示由于参数错误而导致的问题
+ //编译时:Exception 核心 提醒程序员检查本地信息
+
+
+ public NameFormatException() {
+ }
+
+ public NameFormatException(String message) {
+ super(message);
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_Case_package/Test.java b/Exception_project/Exception_module/src/Exception_Case_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..bbd620f0c861dcb1e4c054de954a583d463732ec
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_Case_package/Test.java
@@ -0,0 +1,52 @@
+package Exception_Case_package;
+
+import java.util.Scanner;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 键盘录入自己心仪的女朋友姓名和年龄。
+ 姓名的长度在 3 - 10 之间
+ 年龄的范围为 18 - 40岁
+ 超出这个范围是异常数据不能赋值,需要重新录入,一直录到正确为止。
+
+ 提示:
+ 需要考虑用户在键盘录入时的所有情况
+ 比如:录入年龄时超出范围,录入年龄时录入了abc等情况
+ */
+
+ //1、创建键盘录入的对象
+ Scanner sc = new Scanner(System.in);
+ //2、创建女朋友的对象
+ GirlFriend gf = new GirlFriend();
+
+ while (true) {
+ try {
+ //3、接收女朋友的姓名
+ System.out.println("请输入你心仪的女朋友名字:");
+ String name = sc.nextLine();
+ gf.setName(name);
+
+ //4、接收女朋友的年龄
+ System.out.println("请输入你心仪的女朋友年龄:");
+ String ageStr = sc.nextLine();
+ int age = Integer.parseInt(ageStr);
+ gf.setAge(age);
+ //如果所有的数据都是正确的,那么跳出循环
+ break;
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+
+ } catch (NameFormatException e) {
+ e.printStackTrace();
+ } catch (AgeOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ }
+
+ //5、打印
+ System.out.println(gf);
+
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package1/Exception_demo1.java b/Exception_project/Exception_module/src/Exception_package1/Exception_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..eab42efe7992b4db9d726501f1589f97d7567ca8
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package1/Exception_demo1.java
@@ -0,0 +1,21 @@
+package Exception_package1;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class Exception_demo1 {
+ public static void main(String[] args) throws ParseException {
+
+ //编译时异常(在编译阶段,必须要手动处理,否则代码报错)
+ String time = "2030年1月1日";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+ Date date = sdf.parse(time);
+ System.out.println(date);
+
+
+ //运行时异常(在编译阶段是不需要处理的,是代码运行时出现的异常)
+ int[] arr = {1, 2, 3, 4, 5};
+ System.out.println(arr[10]);//ArrayIndexOutOfBoundsException
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package1/Exception_demo2.java b/Exception_project/Exception_module/src/Exception_package1/Exception_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e196d566c2ab77ab2eb241f4594b682fc00cb516
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package1/Exception_demo2.java
@@ -0,0 +1,20 @@
+package Exception_package1;
+
+public class Exception_demo2 {
+ public static void main(String[] args) {
+ /*
+ 异常作用一:异常是用来查询bug的关键参考信息
+ 异常作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
+ */
+
+ //1、查询bug
+ Student[] arr = new Student[3];//null null null
+ //arr[0] = new Student();
+ String name = arr[0].getName();
+ System.out.println(name);
+
+ //2、特殊返回值
+ Student s1 = new Student();
+ s1.setAge(50);
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package1/Exception_demo3.java b/Exception_project/Exception_module/src/Exception_package1/Exception_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..e56992fecdbf0390739012241879b9798a086eb1
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package1/Exception_demo3.java
@@ -0,0 +1,16 @@
+package Exception_package1;
+
+public class Exception_demo3 {
+ public static void main(String[] args) {
+ /*
+ JVM默认处理异常的方式:
+ 1、把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
+ 2、程序停止执行,异常下面的代码不会再执行了
+ */
+
+ System.out.println("qqq");
+ System.out.println(1/0);//算术异常:ArithmeticException
+ System.out.println("aaaa");
+ System.out.println("bbbb");
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package1/Student.java b/Exception_project/Exception_module/src/Exception_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..09c4a95fc64f57d00cde5788cff0e3a4e443f075
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package1/Student.java
@@ -0,0 +1,49 @@
+package Exception_package1;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public Student() {
+ }
+
+ public Student(String str) { // "张三,23"
+ String[] arr = str.split(",");
+ this.name = arr[0];
+ this.age = Integer.parseInt(arr[1]);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ if (age < 18 || age > 40) {
+ //System.out.println("年龄超出范围");
+ throw new RuntimeException();
+ } else {
+ this.age = age;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "Student{" +
+ "name='" + name + '\'' +
+ ", age=" + age +
+ '}';
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package2/Exception_demo4.java b/Exception_project/Exception_module/src/Exception_package2/Exception_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..a317fbdab0b0a04ebc226dbdaafe2d762afa97bf
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package2/Exception_demo4.java
@@ -0,0 +1,36 @@
+package Exception_package2;
+
+public class Exception_demo4 {
+ public static void main(String[] args) {
+ /*
+ public String getMessage () 返回此throwable的详细消息字符串
+ public String toString () 返回此可抛出的简短描述
+
+ public void printStackTrace () 在底层是利用System.err.println进行输出
+ 把异常的错误信息以红色字体输出在控制台
+ 细节:仅仅是打印信息,不会停止程序运行
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ System.out.println(arr[10]);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ String message = e.getMessage();
+ System.out.println(message); //Index 10 out of bounds for length 6
+
+ String str = e.toString();
+ System.out.println(str);//java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 6
+
+ e.printStackTrace();
+ }
+
+ System.out.println("看看我执行了吗?");
+
+ //正常的输出语句
+ System.out.println(123);
+
+ //错误的输出语句(而是用来打印错误信息)
+ System.err.println(123);
+ }
+}
diff --git a/Exception_project/Exception_module/src/Exception_package2/Exception_demo5.java b/Exception_project/Exception_module/src/Exception_package2/Exception_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2c1881885e68dcb1a93c00798f7495d07ff53fa
--- /dev/null
+++ b/Exception_project/Exception_module/src/Exception_package2/Exception_demo5.java
@@ -0,0 +1,45 @@
+package Exception_package2;
+
+public class Exception_demo5 {
+ public static void main(String[] args) {
+ /*
+ throws:写在方法定义处,表示声明一个异常。告诉调用者,使用本方法可能会有哪些异常
+ throw:写在方法内,结束方法。手动抛出异常对象,交给调用者。方法中下面的代码不再执行了。
+
+ 需求:
+ 定义一个方法求数组最大值
+ */
+
+ int[] arr = null;
+ int max = 0;
+
+ try {
+ max = getMax(arr);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ System.out.println(max);
+ }
+
+ private static int getMax(int[] arr) throws NullPointerException, ArrayIndexOutOfBoundsException {
+ if (arr == null) {
+ //手动创建一个异常对象,并把这个异常交给方法的调用者处理
+ //此时方法就会结束,下面的代码不会再执行了
+ throw new NullPointerException();
+ }
+
+ if (arr.length == 0) {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+
+ System.out.println("看看我执行了吗?");
+ int max = arr[0];
+ for (int i = 1; i < arr.length; i++) {
+ if (arr[i] > max) {
+ max = arr[i];
+ }
+ }
+ return max;
+ }
+}
diff --git a/Exception_project/Exception_module/src/try_catch_package/try_catch_demo1.java b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..22f0e03837baf1d4fda059a8d8c586d57e08d222
--- /dev/null
+++ b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo1.java
@@ -0,0 +1,34 @@
+package try_catch_package;
+
+public class try_catch_demo1 {
+ public static void main(String[] args) {
+ /*
+ 自己处理(捕获异常)
+ 格式:
+ try {
+ 可能出现异常的代码;
+ } catch (异常类名 变量名) {
+ 异常的处理代码;
+ }
+
+ 好处:可以让程序继续往下执行,不会停止
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ //可能出现异常的代码
+ System.out.println(arr[10]);//此处出现了异常,程序就会在这里创建一个ArrayIndexOutOfBoundsException对象
+ // new ArrayIndexOutOfBoundsException();
+ //拿着这个对象到catch的小括号中对比,看括号中的变量是否可以接收这个对象
+ //如果能被接收,就表示该异常就被捕获(抓住),执行catch里面对应的代码
+ //当catch里面所有的代码执行完毕,继续执行try...catch体系下面的其他代码
+
+ } catch (ArrayIndexOutOfBoundsException e) {
+ //如果出现了ArrayIndexOutOfBoundsException异常,我们该如何处理
+ System.out.println("索引越界了");
+ }
+
+ System.out.println("看看我执行了吗?");
+ }
+}
diff --git a/Exception_project/Exception_module/src/try_catch_package/try_catch_demo2.java b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9d74513d18dd843f537d2419cd0481fb95d2433
--- /dev/null
+++ b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo2.java
@@ -0,0 +1,23 @@
+package try_catch_package;
+
+public class try_catch_demo2 {
+ public static void main(String[] args) {
+ /*
+ 自己处理(捕获异常)灵魂四问:
+ 灵魂一问:如果try中没有遇到问题,怎么执行?
+ 会把try里面所有的代码全部执行完毕,不会执行catch里面的代码
+ 注意:
+ 只有出现了异常才会执行catch里面的代码
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ System.out.println(arr[0]);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ System.out.println("索引越界");
+ }
+
+ System.out.println("看看我执行了吗?");
+ }
+}
diff --git a/Exception_project/Exception_module/src/try_catch_package/try_catch_demo3.java b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..fddc3ba8fbec988e9b43decc6a8a98f357805853
--- /dev/null
+++ b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo3.java
@@ -0,0 +1,34 @@
+package try_catch_package;
+
+public class try_catch_demo3 {
+ public static void main(String[] args) {
+ /*
+ 自己处理(捕获异常)灵魂四问:
+ 灵魂二问:如果try中可能会遇到多个问题,怎么执行?
+ 会写多个catch与之对应
+ 细节:
+ 如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ System.out.println(arr[10]);//ArrayIndexOutOfBoundsException
+ System.out.println(2 / 0);//ArithmeticException
+ String s = null;
+ System.out.println(s.equals("abc"));//NullPointerException
+
+ } catch (ArrayIndexOutOfBoundsException | NullPointerException e) {
+ System.out.println("索引越界了或者空指针异常");
+
+ } catch (ArithmeticException e) {
+ System.out.println("除数不能为0");
+
+ } catch (Exception e) {
+ System.out.println("Exception");
+
+ }
+
+ System.out.println("看看我执行了吗?");
+ }
+}
diff --git a/Exception_project/Exception_module/src/try_catch_package/try_catch_demo4.java b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..de7ed1ab9c872b30bd6ee3564789a18227f4b963
--- /dev/null
+++ b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo4.java
@@ -0,0 +1,20 @@
+package try_catch_package;
+
+public class try_catch_demo4 {
+ public static void main(String[] args) {
+ /*
+ 自己处理(捕获异常)灵魂四问:
+ 灵魂三问:如果try中遇到的问题没有被捕获,怎么执行?
+ 相当于try...catch的代码白写了,最终还是会交给虚拟机进行处理
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ System.out.println(arr[10]);//ArrayIndexOutOfBoundsException
+ } catch (NullPointerException e) {
+ System.out.println("空指针异常");
+ }
+ System.out.println("看看我执行了吗?");
+ }
+}
diff --git a/Exception_project/Exception_module/src/try_catch_package/try_catch_demo5.java b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..42e1bec1aa399e7e30eae2277c0206b3d2c7a756
--- /dev/null
+++ b/Exception_project/Exception_module/src/try_catch_package/try_catch_demo5.java
@@ -0,0 +1,23 @@
+package try_catch_package;
+
+public class try_catch_demo5 {
+ public static void main(String[] args) {
+ /*
+ 自己处理(捕获异常)灵魂四问:
+ 灵魂四问:如果try中遇到了问题,那么try下面的其他代码还会执行吗?
+ 下面的代码就不会执行了,直接跳转到对应的catch当中,执行catch里面的语句体
+ 但是如果没有对应catch与之匹配,那么还是会交给虚拟机进行处理
+ */
+
+ int[] arr = {1, 2, 3, 4, 5, 6};
+
+ try {
+ System.out.println(arr[10]);
+ System.out.println("看看我执行了吗?...try");
+ } catch (ArrayIndexOutOfBoundsException e) {
+ System.out.println("索引越界了");
+ }
+
+ System.out.println("看看我执行了吗?...其他代码");
+ }
+}
diff --git a/Exception_project/Exception_project.iml b/Exception_project/Exception_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Exception_project/Exception_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exception_project/out/production/Exception_module/Exception_Case_package/AgeOutOfBoundsException.class b/Exception_project/out/production/Exception_module/Exception_Case_package/AgeOutOfBoundsException.class
new file mode 100644
index 0000000000000000000000000000000000000000..3b06576001148a4ac9f8a727c1a3e0581de0e5d9
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_Case_package/AgeOutOfBoundsException.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_Case_package/GirlFriend.class b/Exception_project/out/production/Exception_module/Exception_Case_package/GirlFriend.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d9301c5689446c6e07134b03235436d8e33d59d
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_Case_package/GirlFriend.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_Case_package/NameFormatException.class b/Exception_project/out/production/Exception_module/Exception_Case_package/NameFormatException.class
new file mode 100644
index 0000000000000000000000000000000000000000..a31c62f23a220602a20c7cbcf26dad0d8be4d1a0
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_Case_package/NameFormatException.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_Case_package/Test.class b/Exception_project/out/production/Exception_module/Exception_Case_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..e378ccba9708dee5b958f8df8cf40e492ed8a63f
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_Case_package/Test.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo1.class b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..e34de9178f530066effb6b0cab880a3ad8127c2a
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo1.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo2.class b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..58ce194771178db4e7d4374faa75280e2a89ce89
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo2.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo3.class b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..fbaa4d5f684d74044854eea5a9a9d648cb19c03c
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package1/Exception_demo3.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package1/Student.class b/Exception_project/out/production/Exception_module/Exception_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..b58e97b67cb3c3464055f3e8eed091cca659bec7
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package1/Student.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo4.class b/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..e0e44a321941d0eb4e05bf9db9380693a73b6a19
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo4.class differ
diff --git a/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo5.class b/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..3d3038bfaceaa91d28f94588c170b320a597c18b
Binary files /dev/null and b/Exception_project/out/production/Exception_module/Exception_package2/Exception_demo5.class differ
diff --git a/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo1.class b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..9cd6f7f926e65d84a99b109fff805d36ce920325
Binary files /dev/null and b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo1.class differ
diff --git a/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo2.class b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..840789cd399f8fc2101210f0295cfbe6c3a64feb
Binary files /dev/null and b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo2.class differ
diff --git a/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo3.class b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..967bf72a424293b316c1a846c5aae11a250aa1dc
Binary files /dev/null and b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo3.class differ
diff --git a/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo4.class b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..57486a97b3dad944e062128e9710a1446495ab0e
Binary files /dev/null and b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo4.class differ
diff --git a/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo5.class b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..a1938cda0521bd07900fc3670174d843d927cb9d
Binary files /dev/null and b/Exception_project/out/production/Exception_module/try_catch_package/try_catch_demo5.class differ
diff --git a/File_project/.DS_Store b/File_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..22388e1fb27ad7b7721312939ea16108abd80d16
Binary files /dev/null and b/File_project/.DS_Store differ
diff --git a/File_project/.idea/.gitignore b/File_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/File_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/File_project/.idea/misc.xml b/File_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/File_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/File_project/.idea/modules.xml b/File_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..38626d892858f131155b371195e216c0e29b28a0
--- /dev/null
+++ b/File_project/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/File_project/.idea/uiDesigner.xml b/File_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/File_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/File_project/.idea/workspace.xml b/File_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..05c46a47bf9e1d38d6870a4275807d23c0b90df1
--- /dev/null
+++ b/File_project/.idea/workspace.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677496346168
+
+
+ 1677496346168
+
+
+
+
\ No newline at end of file
diff --git a/File_project/File_module/File_module.iml b/File_project/File_module/File_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/File_project/File_module/File_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/File_project/File_module/src/File_Case_package/case_demo1.java b/File_project/File_module/src/File_Case_package/case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..72bc7c565c4669a71b8061d0cad735f485b7eb2a
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo1.java
@@ -0,0 +1,29 @@
+package File_Case_package;
+
+import java.io.File;
+import java.io.IOException;
+
+public class case_demo1 {
+ public static void main(String[] args) throws IOException {
+ //在当前模块下的rough_draft文件夹中创建一个a.txt文件
+
+ //1、创建a.txt的父级路径
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/rough_draft");
+
+ //2、创建父级路径
+ //如果rough_draft是存在的,那么此时创建失败
+ //如果rough_draft是不存在的,那么此时创建成功
+ file.mkdirs();
+
+ //3、拼接父级路径和子级路径
+ File f1 = new File(file, "a.txt");
+ boolean b = f1.createNewFile();
+ if(b){
+ System.out.println("创建成功");
+ }else{
+ System.out.println("创建失败");
+ }
+
+
+ }
+}
diff --git a/File_project/File_module/src/File_Case_package/case_demo2.java b/File_project/File_module/src/File_Case_package/case_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c4273b554e602ae2a2169c34b3825bff9373c6b3
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo2.java
@@ -0,0 +1,37 @@
+package File_Case_package;
+
+import java.io.File;
+
+public class case_demo2 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 定义一个方法找某一个文件夹中,是否有以avi结尾的电影。
+ 不考虑子文件夹
+ */
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/rough_draft");
+ boolean b = haveAVI(file);
+ System.out.println(b);
+ }
+
+ /*
+ * 作用:用来找某一个文件夹中,是否有以avi结尾的电影
+ * 形参:要查找的文件夹
+ * 返回值:查找的结果 存在true 不存在false
+ * */
+ public static boolean haveAVI(File file) {
+ //1、进入rough_draft文件夹,而且要获取里面所有的内容
+ File[] files = file.listFiles();
+
+ //2、遍历数组获取里面的每一个元素
+ for (File f : files) {
+ //f:依次表示rough_draft文件夹里面的每一个文件或者文件夹的路径
+ if (f.isFile() && f.getName().endsWith("avi")) {
+ return true;
+ }
+ }
+
+ return false;
+
+ }
+}
diff --git a/File_project/File_module/src/File_Case_package/case_demo3.java b/File_project/File_module/src/File_Case_package/case_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..3bc52489d9ce64c0ab0622f422bee3c431c6e541
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo3.java
@@ -0,0 +1,41 @@
+package File_Case_package;
+
+import java.io.File;
+
+public class case_demo3 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 定义一个方法找项目中,是否有以avi结尾的电影。
+ 考虑子文件夹
+ */
+
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module");
+ findAVI(file);
+ }
+
+ public static void findAVI(File file) {
+ //1、进入文件夹file
+ File[] files = file.listFiles();
+
+ if (files == null) {
+ System.out.println(file);
+ }
+
+ //2、遍历数组,依次得到file里面每一个文件或者文件夹
+ for (File f : files) {
+ if (f.isFile()) {
+ //3、判断:如果是文件,就可以执行题目的业务逻辑
+ String name = f.getName();
+ if (name.startsWith("case")) {
+ System.out.println(f);
+ }
+ } else {
+ //4、判断,如果是文件夹,就可以递归
+ //细节:再次调用本方法的时候,参数一定要是file的次一级路径
+ findAVI(f);
+ }
+ }
+
+ }
+}
diff --git a/File_project/File_module/src/File_Case_package/case_demo4.java b/File_project/File_module/src/File_Case_package/case_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..f8bafc75669622fb9246b32d776ccef3d7188373
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo4.java
@@ -0,0 +1,41 @@
+package File_Case_package;
+
+import java.io.File;
+
+public class case_demo4 {
+ public static void main(String[] args) {
+ /*
+ 删除一个多级文件夹
+ 如果我们要删除一个有内容的文件夹
+ 1、先删除文件夹里面所有的内容
+ 2、再删除自己
+ */
+
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module2");
+ delete(file);
+ }
+
+ /*
+ * 作用:删除File_module2文件夹
+ * 参数:要删除的文件夹
+ */
+ public static void delete(File file) {
+ //1、先删除文件夹里面所有的内容
+ //进入file
+ File[] files = file.listFiles();
+ //遍历
+ for (File f : files) {
+ //判断,如果是文件,则删除
+ if (f.isFile()) {
+ f.delete();
+ } else {
+ //如果是文件夹,就递归
+ delete(f);
+ }
+ }
+
+ //2、再删除自己
+ file.delete();
+
+ }
+}
diff --git a/File_project/File_module/src/File_Case_package/case_demo5.java b/File_project/File_module/src/File_Case_package/case_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..563c1961d1f7a6c4ce691f0d5cdd6f13a7213374
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo5.java
@@ -0,0 +1,48 @@
+package File_Case_package;
+
+import java.io.File;
+
+public class case_demo5 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 统计一个文件夹的总大小
+ */
+
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+
+ long len = getLen(file);
+ System.out.println(len);
+ }
+
+ /*
+ * 作用:
+ * 统计一个文件夹的总大小
+ * 参数:
+ * 表示要统计的那个文件夹
+ * 返回值:
+ * 统计之后的结果
+ *
+ */
+ public static long getLen(File file) {
+ //1、定义变量进行累加
+ long len = 0;
+
+ //2、进入src文件夹
+ File[] files = file.listFiles();
+
+ //3、遍历数组
+ for (File f : files) {
+ //4、判断
+ if (f.isFile()) {
+ //我们就把当前文件的大小累加到len当中
+ len = len + f.length();
+ } else {
+ //判断,如果是文件夹就递归
+ len = len + getLen(f);
+ }
+ }
+
+ return len;
+ }
+}
diff --git a/File_project/File_module/src/File_Case_package/case_demo6.java b/File_project/File_module/src/File_Case_package/case_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5f1806f8523813243bf1dddfc4feab44798efe9
--- /dev/null
+++ b/File_project/File_module/src/File_Case_package/case_demo6.java
@@ -0,0 +1,89 @@
+package File_Case_package;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class case_demo6 {
+ public static void main(String[] args) {
+ /*
+ 需求:统计一个文件夹中每种文件的个数并打印。(考虑子文件夹)
+ 打印格式如下:
+ txt:3个
+ doc:4个
+ jpg:6个
+ */
+
+ File file = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/rough_draft");
+
+ HashMap hm = getCount(file);
+ System.out.println(hm);
+
+ }
+
+ /*
+ * 作用:
+ * 统计一个文件夹中每种文件的个数
+ * 参数:
+ * 要统计的那个文件夹
+ * 返回值:
+ * 用来统计map集合
+ * 键:后缀名 值:次数
+ * */
+ public static HashMap getCount(File file) {
+ //1、定义集合用来统计
+ HashMap hm = new HashMap<>();
+ //2、进入file文件夹
+ File[] files = file.listFiles();
+ //3、遍历数组
+ for (File f : files) {
+ //4、判断,如果是文件,统计
+ if (f.isFile()) {
+ // a.txt
+ String name = f.getName();
+ String[] arr = name.split("\\.");
+ if (arr.length >= 2) {
+ String endName = arr[arr.length-1];
+ if (hm.containsKey(endName)) {
+ //存在
+ int count = hm.get(endName);
+ count++;
+ hm.put(endName, count);
+
+ } else {
+ //不存在
+ hm.put(endName, 1);
+
+ }
+ }
+ } else {
+ //5、判断,如果是文件夹,递归
+ //sonMap里面是子文件中每一种文件的个数
+ HashMap sonMap = getCount(f);
+
+ //遍历sonMap把里面的值累加到hm当中
+ Set> entries = sonMap.entrySet();
+
+ for (Map.Entry entry : entries) {
+ String key = entry.getKey();
+ Integer value = entry.getValue();
+
+ if (hm.containsKey(key)) {
+ //存在
+ int count = hm.get(key);
+ count += value;
+ hm.put(key, count);
+
+ } else {
+ //不存在
+ hm.put(key, value);
+
+ }
+
+ }
+ }
+ }
+ return hm;
+ }
+}
diff --git a/File_project/File_module/src/File_package/File1 b/File_project/File_module/src/File_package/File1
new file mode 100644
index 0000000000000000000000000000000000000000..2b97709ee2749bef35b9340ba23ebb94ca9fdf4c
--- /dev/null
+++ b/File_project/File_module/src/File_package/File1
@@ -0,0 +1,3 @@
+zxy 123
+smy 123
+lyb 123
diff --git a/File_project/File_module/src/File_package/File_demo1.java b/File_project/File_module/src/File_package/File_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a5763d3ed5cbae09dc3c16a5ffcfe64a475cbe0
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo1.java
@@ -0,0 +1,31 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo1 {
+ public static void main(String[] args) {
+ /*
+ public File (String pathname) 根据文件路径创建文件对象
+ public File (String parent, String child) 根据父路径名字符串和子路径名字符串创建文件对象
+ public File (File parent, String child) 根据父路径对应文件对象和子路径名字符串创建文件对象
+ */
+
+ //1、根据字符串表示的路径,变成File对象
+ String str = "/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File1";
+ File f1 = new File(str);
+ System.out.println(f1);
+
+ //2、父级路径:/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package
+ //子级路径:File1
+ String parent = "/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package";
+ String child = "File1";
+ File f2 = new File(parent, child);
+ System.out.println(f2);
+
+ //3、把一个File表示的路径和String表示的路径进行拼接
+ File parent2 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ String child2 = "File1";
+ File f3 = new File(parent2, child2);
+ System.out.println(f3);
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo2.java b/File_project/File_module/src/File_package/File_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f9964395bafe802312d994ec322129d1c46e902
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo2.java
@@ -0,0 +1,34 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo2 {
+ public static void main(String[] args) {
+ /*
+ public boolean isDirectory () 判断此路径名表示的File是否为文件夹
+ public boolean isFile () 判断此路径名表示的File是否为文件
+ public boolean exists () 判断此路径名表示的File是否存在
+ */
+
+ //1、对一个文件的路径进行判断
+ File f1 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File1");
+ System.out.println(f1.isDirectory());//false
+ System.out.println(f1.isFile());//true
+ System.out.println(f1.exists());//true
+ System.out.println("---------------------");
+
+ //2、对一个文件夹路径进行判断
+ File f2 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ System.out.println(f2.isDirectory());//true
+ System.out.println(f2.isFile());//false
+ System.out.println(f2.exists());//true
+ System.out.println("---------------------");
+
+ //3、对一个不存在的路径进行判断
+ File f3 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package1");
+ System.out.println(f3.isDirectory());//false
+ System.out.println(f3.isFile());//false
+ System.out.println(f3.exists());//false
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo3.java b/File_project/File_module/src/File_package/File_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..225305af4a6eaf12d54200294531dd2e595f5f48
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo3.java
@@ -0,0 +1,66 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo3 {
+ public static void main(String[] args) {
+ /*
+ public long length () 返回文件的大小(字节数量)
+ public String getAbsolutePath () 返回文件的绝对路径
+ public String getPath () 返回定义文件时使用的路径
+ public String getName () 返回文件的名称,带后缀
+ public long lastModified () 返回文件的最后修改时间(时间毫秒值)
+ */
+
+ //1、length 返回文件的大小(字节数量)
+ //细节1:这个方法只能获取文件的大小,单位是字节
+ //如果单位我们要的是M,G,可以不断的除以1024
+ //细节2:这个方法无法获取文件夹的大小
+ //如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起。
+
+ File f1 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File1");
+ long len = f1.length();
+ System.out.println(len);
+
+ File f2 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ long len2 = f2.length();
+ System.out.println(len2);
+
+ System.out.println("=================");
+
+ //2、getAbsolutePath () 返回文件的绝对路径
+ File f3 = new File("File_module/src/File_package/File1");
+ String path3 = f3.getAbsolutePath();
+ System.out.println(path3);
+ System.out.println("=================");
+
+ //3、getPath () 返回定义文件时使用的路径
+ File f4 = new File("File_module/src/File_package/File1");
+ String path4 = f3.getPath();
+ System.out.println(path4);
+ System.out.println("=================");
+
+ //4、getName () 返回文件的名称,带后缀
+ /*
+ 细节1:
+ 获取文件名字:文件名.后缀名
+ 细节2:
+ 获取文件夹名字:文件夹名
+ */
+ File f5 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File1");
+ String name = f5.getName();
+ System.out.println(name);
+
+ File f6 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ String name1 = f6.getName();
+ System.out.println(name1);
+ System.out.println("=================");
+
+ //5、lastModified () 返回文件的最后修改时间(时间毫秒值)
+ File f7 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File1");
+ long time = f7.lastModified();
+ System.out.println(time);
+
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo4.java b/File_project/File_module/src/File_package/File_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f8c33dd3e981e6ae04a20850b52215c5d4cefbd
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo4.java
@@ -0,0 +1,39 @@
+package File_package;
+
+import java.io.File;
+import java.io.IOException;
+
+public class File_demo4 {
+ public static void main(String[] args) throws IOException {
+ /*
+ public boolean createNewFile () 创建一个新的空文件
+ public boolean mkdir () 创建单级文件夹
+ public boolean mkdirs () 创建多级文件夹
+ public boolean delete () 删除文件、空文件夹
+ */
+
+ //1、createNewFile 创建一个新的空的文件
+ //细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true
+ // 如果当前路径表示的文件是存在的,则创建失败,方法返回false
+ //细节2:如果父级路径是不存在的,那么方法会有异常IOException
+ //细节3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀名的文件
+ File f1 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File2");
+ boolean b = f1.createNewFile();
+ System.out.println(b);
+
+ //2、mkdir () 创建单级文件夹
+ //细节1:路径是唯一的,如果当前路径已经存在,则创建失败,返回false
+ //细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹
+ File f2=new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package2");
+ boolean b2 = f2.mkdir();
+ System.out.println(b2);
+
+ //3、mkdirs () 创建多级文件夹
+ //细节:既可以创建单级的,又可以创建多级的文件夹
+ File f3=new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module2/src/File_package1");
+ boolean b3 = f3.mkdirs();
+ System.out.println(b3);
+
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo5.java b/File_project/File_module/src/File_package/File_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ae4f95b1a6a30fc29c82e435e6a1193c3096611
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo5.java
@@ -0,0 +1,22 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo5 {
+ public static void main(String[] args) {
+ /*
+ delete () 删除文件、空文件夹
+ 细节1:
+ 如果删除的是文件,则直接删除,不走回收站。
+ 如果删除的是空文件夹,则直接删除,不走回收站
+ 如果删除的是有内容的文件夹,则删除失败
+ */
+
+ //1、创建File对象
+ File F1=new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package/File2");
+ //2、删除
+ boolean b = F1.delete();
+ System.out.println(b);
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo6.java b/File_project/File_module/src/File_package/File_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..34c481f875496d226f69af2db76bfda389b29ba4
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo6.java
@@ -0,0 +1,21 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo6 {
+ public static void main(String[] args) {
+
+ //public File[] listFiles () 获取当前该路径下所有的内容
+
+ //1、创建File对象
+ File f = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ //2、listFiles方法
+ //作用:获取File_package文件夹里面的所有内容,把所有内容放到数组中返回
+ File[] files = f.listFiles();
+ for (File file : files) {
+ //file依次表示File_package文件夹里面的每一个文件或者文件夹
+ System.out.println(file);
+ }
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo7.java b/File_project/File_module/src/File_package/File_demo7.java
new file mode 100644
index 0000000000000000000000000000000000000000..71477cd47e6af87cd4ca26de817afae89484ff3c
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo7.java
@@ -0,0 +1,55 @@
+package File_package;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+
+public class File_demo7 {
+ public static void main(String[] args) {
+ /*
+ public static File[] listRoots() 列出可用的文件系统根
+ public String[] list() 获取当前该路径下所有的内容
+ public String[] list(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ public File[] listFiles() 获取当前该路径下所有内容(掌握)
+ public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ */
+
+ //1、listRoots() 获取系统中所有的盘符
+ File[] arr = File.listRoots();
+ System.out.println(Arrays.toString(arr));
+ System.out.println("------------------------");
+
+ //2、list() 获取当前该路径下所有的内容
+ File f1 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ String[] arr2 = f1.list();
+ for (String s : arr2) {
+ System.out.println(s);
+ }
+ System.out.println("------------------------");
+
+ //3、list(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ //需求:我现在要获取File_package文件夹里面所有的demo文件
+ File f2 = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+
+ //accept方法的形参,依次表示File_package文件夹里面每一个文件或者文件夹的路径
+ //参数一:父级路径
+ //参数二:子级路径
+ //返回值:如果返回值为true,就表示当前路径保留
+ // 如果返回值为false,就表示当前路径舍弃不要
+ String[] arr3 = f2.list(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ File src = new File(dir, name);
+ if (src.isFile() && name.startsWith("File_")){
+ return false;
+ }
+
+ return true;
+ }
+ });
+ System.out.println(Arrays.toString(arr3));
+
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo8.java b/File_project/File_module/src/File_package/File_demo8.java
new file mode 100644
index 0000000000000000000000000000000000000000..38aedcc7b4a31fd2cae3994141181682fb78f6d3
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo8.java
@@ -0,0 +1,25 @@
+package File_package;
+
+import java.io.File;
+
+public class File_demo8 {
+ public static void main(String[] args) {
+ /*
+ public File[] listFiles() 获取当前该路径下所有内容(掌握)
+ public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ */
+
+ //1、创建File对象
+ File f = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ //2、需求:打印里面所有的demo文件
+ File[] arr = f.listFiles();
+ for (File file : arr) {
+ //file依次表示File_package文件夹里面每一个文件或者文件夹的路径
+ if (file.isFile() && file.getName().startsWith("File_")) {
+ System.out.println(file);
+ }
+ }
+
+ }
+}
diff --git a/File_project/File_module/src/File_package/File_demo9.java b/File_project/File_module/src/File_package/File_demo9.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f6af055b7cc6aa9c10ff9181ed595e10760f121
--- /dev/null
+++ b/File_project/File_module/src/File_package/File_demo9.java
@@ -0,0 +1,39 @@
+package File_package;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+
+public class File_demo9 {
+ public static void main(String[] args) {
+ /*
+ public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
+ */
+
+ //1、创建File对象
+ File f = new File("/Users/zhaoxiaoyong/Documents/Java/File_project/File_module/src/File_package");
+ //2、调用listFiles(FileFilter filter)
+ File[] arr = f.listFiles(new FileFilter() {
+ @Override
+ public boolean accept(File pathname) {
+ return pathname.getName().startsWith("File_") && pathname.isFile();
+ }
+ });
+
+ System.out.println(Arrays.toString(arr));
+
+ //3、调用listFiles(FilenameFilter filter)
+ File[] arr2 = f.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ File f1 = new File(dir, name);
+ return f1.isFile() && f1.getName().startsWith("File_");
+ }
+ });
+
+ System.out.println(Arrays.toString(arr2));
+
+ }
+}
diff --git a/File_project/File_module/src/rough_draft/a.txt b/File_project/File_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/File_module/src/rough_draft/b.avi b/File_project/File_module/src/rough_draft/b.avi
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/File_module/src/rough_draft/c.doc b/File_project/File_module/src/rough_draft/c.doc
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/File_module/src/rough_draft/d.jpg b/File_project/File_module/src/rough_draft/d.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/File_module/src/rough_draft/e.txt b/File_project/File_module/src/rough_draft/e.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/File_project.iml b/File_project/File_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/File_project/File_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo1.class b/File_project/out/production/File_module/File_Case_package/case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..41307f9d5db6769f13fdfd94b73c441312d58f2a
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo1.class differ
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo2.class b/File_project/out/production/File_module/File_Case_package/case_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..578c602e3358c24a465bfa349b7c7756e03b1fe3
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo2.class differ
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo3.class b/File_project/out/production/File_module/File_Case_package/case_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..70f8e366b9ba618a7dcfe49ff9a4cbe1b89033b1
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo3.class differ
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo4.class b/File_project/out/production/File_module/File_Case_package/case_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..f5ec851e0ec400634b0b8b99ce8c1e5515fd9fc8
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo4.class differ
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo5.class b/File_project/out/production/File_module/File_Case_package/case_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..b79be54dfc28ce97b3caf7c503deae8d0c7ece29
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo5.class differ
diff --git a/File_project/out/production/File_module/File_Case_package/case_demo6.class b/File_project/out/production/File_module/File_Case_package/case_demo6.class
new file mode 100644
index 0000000000000000000000000000000000000000..87b5d9a79a560521bdf99d1041af1d15589bed15
Binary files /dev/null and b/File_project/out/production/File_module/File_Case_package/case_demo6.class differ
diff --git a/File_project/out/production/File_module/File_package/File1 b/File_project/out/production/File_module/File_package/File1
new file mode 100644
index 0000000000000000000000000000000000000000..2b97709ee2749bef35b9340ba23ebb94ca9fdf4c
--- /dev/null
+++ b/File_project/out/production/File_module/File_package/File1
@@ -0,0 +1,3 @@
+zxy 123
+smy 123
+lyb 123
diff --git a/File_project/out/production/File_module/File_package/File_demo1.class b/File_project/out/production/File_module/File_package/File_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c6d939f1eac986c58c0486a7f303369d2fa4bb6b
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo1.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo2.class b/File_project/out/production/File_module/File_package/File_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..78ff8a04506cd1345df1c5a2206a78738b404bc1
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo2.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo3.class b/File_project/out/production/File_module/File_package/File_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..68c1bfd2c2f6e8ed44798bd8f05ccf607c034797
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo3.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo4.class b/File_project/out/production/File_module/File_package/File_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a6e5300dbcd2cdd11198394edd7296d60f01038
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo4.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo5.class b/File_project/out/production/File_module/File_package/File_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..da2dc803cfd3b834247b6684ba18443ff5275650
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo5.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo6.class b/File_project/out/production/File_module/File_package/File_demo6.class
new file mode 100644
index 0000000000000000000000000000000000000000..d3d0e431add5587c88a70d528384ad968a19b566
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo6.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo7$1.class b/File_project/out/production/File_module/File_package/File_demo7$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..0dda6ac1c3d9e7176830370b673464996d8ca5f4
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo7$1.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo7.class b/File_project/out/production/File_module/File_package/File_demo7.class
new file mode 100644
index 0000000000000000000000000000000000000000..30ac018b102cf7656323a7e3f78f97bb078b045f
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo7.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo8.class b/File_project/out/production/File_module/File_package/File_demo8.class
new file mode 100644
index 0000000000000000000000000000000000000000..101982411665874df2fb2cd8b7bac6c04ebed260
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo8.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo9$1.class b/File_project/out/production/File_module/File_package/File_demo9$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..a8aed5c44c69e9e6e38f33a67a32d5f6617b0b11
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo9$1.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo9$2.class b/File_project/out/production/File_module/File_package/File_demo9$2.class
new file mode 100644
index 0000000000000000000000000000000000000000..6b0a530daf4a0026de0d7ad36d4a6fd781032521
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo9$2.class differ
diff --git a/File_project/out/production/File_module/File_package/File_demo9.class b/File_project/out/production/File_module/File_package/File_demo9.class
new file mode 100644
index 0000000000000000000000000000000000000000..94a7a966eb7cc94a47539316f4195d81a7837e29
Binary files /dev/null and b/File_project/out/production/File_module/File_package/File_demo9.class differ
diff --git a/File_project/out/production/File_module/rough_draft/a.txt b/File_project/out/production/File_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/out/production/File_module/rough_draft/b.avi b/File_project/out/production/File_module/rough_draft/b.avi
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/out/production/File_module/rough_draft/c.doc b/File_project/out/production/File_module/rough_draft/c.doc
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/out/production/File_module/rough_draft/d.jpg b/File_project/out/production/File_module/rough_draft/d.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/File_project/out/production/File_module/rough_draft/e.txt b/File_project/out/production/File_module/rough_draft/e.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/IO_stream_project/.DS_Store b/IO_stream_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..ad4108e8b3a0db69eb002debaf0798e73fa821e5
Binary files /dev/null and b/IO_stream_project/.DS_Store differ
diff --git a/IO_stream_project/.idea/.gitignore b/IO_stream_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/IO_stream_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/IO_stream_project/.idea/encodings.xml b/IO_stream_project/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46a35f8ea3bebfc50fe397dcfc95172418be2da2
--- /dev/null
+++ b/IO_stream_project/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/inspectionProfiles/Project_Default.xml b/IO_stream_project/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6528d6a6253ee0b9730b6e2bbe59794a8b82d13
--- /dev/null
+++ b/IO_stream_project/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/libraries/commons_io_2_11_0.xml b/IO_stream_project/.idea/libraries/commons_io_2_11_0.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6bc92de8df22814bc4f3f4d779e9ff42fab846ee
--- /dev/null
+++ b/IO_stream_project/.idea/libraries/commons_io_2_11_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/libraries/commons_io_2_11_0__2_.xml b/IO_stream_project/.idea/libraries/commons_io_2_11_0__2_.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e703b119e465c6f1f8bf4d29b05af92e849353b6
--- /dev/null
+++ b/IO_stream_project/.idea/libraries/commons_io_2_11_0__2_.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/libraries/hutool_all_5_8_10.xml b/IO_stream_project/.idea/libraries/hutool_all_5_8_10.xml
new file mode 100644
index 0000000000000000000000000000000000000000..518cf40be80669c8d89194e448673c55ac20f13c
--- /dev/null
+++ b/IO_stream_project/.idea/libraries/hutool_all_5_8_10.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/libraries/hutool_all_5_8_10__2_.xml b/IO_stream_project/.idea/libraries/hutool_all_5_8_10__2_.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a12d10cb6f7e324aeb99288071ad721ea188cacc
--- /dev/null
+++ b/IO_stream_project/.idea/libraries/hutool_all_5_8_10__2_.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/misc.xml b/IO_stream_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/IO_stream_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/modules.xml b/IO_stream_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bd2c13b2b9c55c8338fe50a953f91a0de227e7b2
--- /dev/null
+++ b/IO_stream_project/.idea/modules.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/uiDesigner.xml b/IO_stream_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/IO_stream_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/.idea/workspace.xml b/IO_stream_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ad49d266182a94b2407f4cd296a40aaffe3c1e19
--- /dev/null
+++ b/IO_stream_project/.idea/workspace.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677576427943
+
+
+ 1677576427943
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Buffered_stream_module/Buffered_stream_module.iml b/IO_stream_project/Buffered_stream_module/Buffered_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/Buffered_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo1.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..bc1608546fe44f76f1094ce59a7bbc1f5b05d2fb
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo1.java
@@ -0,0 +1,35 @@
+package Buffered_stream_package1;
+
+import java.io.*;
+
+public class Buffered_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 需求:
+ 利用字节缓冲流拷贝文件
+
+ 字节缓冲输入流的构造方法:
+ public BufferedInputStream (InputStream is)
+
+ 字节缓冲输出流的构造方法:
+ public BufferedOutputStream (Outputstream os)
+ */
+
+ //1、创建缓冲流的对象
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt"));
+
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt"));
+
+ //2、循环读取并写到目的地
+ int b;
+ while ((b = bis.read()) != -1) {
+ bos.write(b);
+ }
+
+ //3、释放资源
+ bos.close();
+ bis.close();
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo2.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2c447d28e65841d8c6b37b648d866a09ffe0ca3
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo2.java
@@ -0,0 +1,36 @@
+package Buffered_stream_package1;
+
+import java.io.*;
+
+public class Buffered_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 需求:
+ 利用字节缓冲流拷贝文件
+
+ 字节缓冲输入流的构造方法:
+ public BufferedInputStream (InputStream is)
+
+ 字节缓冲输出流的构造方法:
+ public BufferedOutputStream (Outputstream os)
+ */
+
+ //1、创建缓冲流的对象
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt"));
+
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt"));
+
+ //2、拷贝(一次读写多个字节)
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes);
+ }
+
+ //3、释放资源
+ bos.close();
+ bis.close();
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo3.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d87b7eba7050d0b86688d267e1bf07eab1f6b3d
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo3.java
@@ -0,0 +1,37 @@
+package Buffered_stream_package1;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+
+public class Buffered_stream_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 字符缓冲输入流:
+ * 构造方法:
+ * public BufferedReader (Reader r)
+ * 特有方法:
+ * public String readLine () 读一整行
+ */
+
+ //1、创建字符缓冲输入流的对象
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt"));
+
+ //2、读取数据
+ //细节:
+ //readLine方法在读取的时候,一次读一整行,遇到回车换行结束
+ // 但是他不会把回车换行读到内存当中
+ String line = br.readLine();
+ System.out.println(line);
+
+ String line1;
+ while ((line1 = br.readLine()) != null) {
+ System.out.println(line1);
+ }
+
+ //3、释放资源
+ br.close();
+
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo4.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a6a17ef3350951bbe2b6714053d00101d0fe82d
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Buffered_stream_demo4.java
@@ -0,0 +1,31 @@
+package Buffered_stream_package1;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class Buffered_stream_demo4 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 字符缓冲输入流
+ * 构造方法:
+ * public BufferedWriter (Writer r)
+ * 特有方法:
+ * public void newLine () 跨平台的换行
+ */
+
+ //1、创建字符缓冲输出流的对象
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt"));
+
+ //2、写出数据
+ bw.write("我真厉害!");
+ bw.newLine();
+ bw.write("牛逼牛逼大牛逼");
+ bw.newLine();
+
+ //3、释放资源
+ bw.close();
+
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo1.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..19c66604a439eb89e84a21a5c68f261a120a59ac
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo1.java
@@ -0,0 +1,45 @@
+package Buffered_stream_package1;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+public class Case_demo1 {
+ public static void main(String[] args) throws IOException {
+ //需求:把《出师表》的文章顺序进行恢复到一个新文件中
+
+ //1、读取数据
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/copy.txt"));
+
+ String line;
+ ArrayList list = new ArrayList<>();
+ while ((line = br.readLine()) != null) {
+ list.add(line);
+ }
+ br.close();
+
+ //2、排序
+ //排序规则:按照每一行前面的序号进行排列
+ Collections.sort(list, new Comparator() {
+ @Override
+ public int compare(String o1, String o2) {
+ //获取o1,o2的序号
+ int i1 = Integer.parseInt(o1.split("\\.")[0]);
+ int i2 = Integer.parseInt(o2.split("\\.")[0]);
+
+ return i1 - i2;
+ }
+ });
+
+ //3、写出
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/copy2.txt"));
+ for (String s : list) {
+ bw.write(s);
+ bw.newLine();
+ }
+ bw.close();
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo2.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ed2430c89b7b7b790a2e59a116dd84419732294
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo2.java
@@ -0,0 +1,40 @@
+package Buffered_stream_package1;
+
+import java.io.*;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+public class Case_demo2 {
+ public static void main(String[] args) throws IOException {
+ //需求:把《出师表》的文章顺序进行恢复到一个新文件中
+
+ //1、读取数据
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/copy.txt"));
+
+ String line;
+ TreeMap tm = new TreeMap<>();
+ while ((line = br.readLine()) != null) {
+ String[] arr = line.split("\\.");
+ //0:序号 1:内容
+ tm.put(Integer.parseInt(arr[0]), arr[1]);
+ }
+
+ br.close();
+
+ //2、写出数据
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/copy2.txt"));
+
+ Set> entries = tm.entrySet();
+ for (Map.Entry entry : entries) {
+ Integer key = entry.getKey();
+ String value = entry.getValue();
+ bw.write(key + "." + value);
+ bw.newLine();
+ }
+ bw.close();
+
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo3.java b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c2c00a2207100c885d8ca1030cbffd2c988b24c
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/Buffered_stream_package1/Case_demo3.java
@@ -0,0 +1,41 @@
+package Buffered_stream_package1;
+
+import java.io.*;
+
+public class Case_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 实现一个验证程序运行次数的小程序,要求如下:
+ 1、当程序运行超过3次时给出提示:本软件只能免费使用3次,欢迎您注册会员后继续使用
+ 2、程序运行演示如下:
+ 第一次运行控制台输出:欢迎使用本软件,第1次使用免费~
+ 第二次运行控制台输出:欢迎使用本软件,第2次使用免费~
+ 第三次运行控制台输出:欢迎使用本软件,第3次使用免费~
+ 第四次及之后运行控制台输出:本软件只能免费使用3次,欢迎您注册会员后继续使用……
+ */
+
+ //1、把文件中的数字读取到内存中
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/count.txt"));
+ String line = br.readLine();
+ br.close();
+ int count = Integer.parseInt(line);
+ //表示当前软件又运行了一次
+ count++;
+
+ //2、判断
+ if (count <= 3) {
+ System.out.println("欢迎使用本软件,第" + count + "次使用免费~");
+ } else {
+ System.out.println("本软件只能免费使用3次,欢迎您注册会员后继续使用~");
+ }
+
+ //3、把当前自增之后的count写到文件中
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Buffered_stream_module/src/rough_draft/count.txt"));
+
+ bw.write(count+"");
+ bw.close();
+
+ }
+}
diff --git a/IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt b/IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..71ba33577e6662e121a799367cbe34f943e5b5a5
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/rough_draft/a.txt
@@ -0,0 +1,11 @@
+树林里,是谁在停在树枝上叽叽喳喳的唱个不停?是那一只只美丽的黄鹂鸟
+树林里,是谁在参天大树上留下一道道痕迹?是那时光的推移
+生机勃勃的游玩胜地……
+日月如梭……
+转眼三十年过去了
+与子树林游玩
+而树林早已狼狈一片
+饿死的黄鹂鸟
+干枯的树木
+我不禁泪流满面……
+是谁将我的乐园骗走了……
\ No newline at end of file
diff --git a/IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt b/IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e832fb379063313025d90720090e9c92c934d4ba
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/rough_draft/b.txt
@@ -0,0 +1,2 @@
+我真厉害!
+牛逼牛逼大牛逼
diff --git a/IO_stream_project/Buffered_stream_module/src/rough_draft/copy.txt b/IO_stream_project/Buffered_stream_module/src/rough_draft/copy.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8e83c108ee9226903964df5fd8fbc8269f420d1b
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/rough_draft/copy.txt
@@ -0,0 +1,9 @@
+1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
+4.将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
+8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏,臣不胜受恩感激。
+9.今当远离,临表涕零,不知所言。
+5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
+6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
+7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
+2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
+3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
diff --git a/IO_stream_project/Buffered_stream_module/src/rough_draft/copy2.txt b/IO_stream_project/Buffered_stream_module/src/rough_draft/copy2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..541ac7e56e3bf85e869725deef8b0ebd41ff86eb
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/rough_draft/copy2.txt
@@ -0,0 +1,9 @@
+1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
+2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
+3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
+4.将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
+5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
+6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
+7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
+8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏,臣不胜受恩感激。
+9.今当远离,临表涕零,不知所言。
diff --git a/IO_stream_project/Buffered_stream_module/src/rough_draft/count.txt b/IO_stream_project/Buffered_stream_module/src/rough_draft/count.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c227083464fb9af8955c90d2924774ee50abb547
--- /dev/null
+++ b/IO_stream_project/Buffered_stream_module/src/rough_draft/count.txt
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/Byte_stream_module.iml b/IO_stream_project/Byte_stream_module/Byte_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/Byte_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo1.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..c576e34489e30f84952aeb6502cfb9b610e09bf2
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo1.java
@@ -0,0 +1 @@
+package Input_stream_package2;
import java.io.FileInputStream;
import java.io.IOException;
public class Byte_stream_demo1 {
public static void main(String[] args) throws IOException {
/*
* 演示:字节输入流FileInputStream
* 实现需求:读取文件中的数据。(暂时不写中文)
*
* 实现步骤:
* 创建对象
* 读取数据
* 释放资源
*/
//1、创建对象
FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
"IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
//2、读取数据
int b1 = fis.read();
System.out.println((char) b1);
int b2 = fis.read();
System.out.println((char) b2);
int b3 = fis.read();
System.out.println((char) b3);
int b4 = fis.read();
System.out.println((char) b4);
//3、释放资源
fis.close();
}
}
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo2.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc57feeefbde36d9c284ee96255a26b1df5bee7c
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo2.java
@@ -0,0 +1,32 @@
+package Input_stream_package2;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字节输入流的细节:
+ 1、创建字节输入流对象
+ 细节1:如果文件不存在,就直接报错
+
+ 2、写数据
+ 细节1:一次读一个字节,读出来的是数据在ASCII上对应的数字
+ 细节2:读到文件末尾了,read方法返回-1
+
+ 3、释放资源
+ 细节:每次使用完流之后都要释放资源
+ */
+
+ //1、创建对象
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+
+ //2、读取数据
+ int b1 = fis.read();
+ System.out.println((char) b1);
+
+ //3、释放资源
+ fis.close();
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo3.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a0baccd575e8065e188ed0d90ae30b29e2ac046
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo3.java
@@ -0,0 +1,26 @@
+package Input_stream_package2;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字节输入流循环读取
+ */
+
+ //1、创建对象
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+
+ //2、循环读取
+ //read:表示读取数据,而且是读取一个数据就移动一次指针
+ int b;
+ while ((b = fis.read()) != -1) {
+ System.out.print((char) b);
+ }
+
+ //3、释放资源
+ fis.close();
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo4.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..738f56135de5ac7abcb90c6b59559527d67a9898
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo4.java
@@ -0,0 +1 @@
+package Input_stream_package2;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Byte_stream_demo4 {
public static void main(String[] args) throws IOException {
/*
* 练习:
* 文件拷贝
* 把/Users/zhaoxiaoyong/Documents/Java/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt
* 拷贝到当前模块下
*
* 注意:
* 选择一个比较小的文件,不要太大。大文件拷贝我们下一个视频会说。
* */
long start = System.currentTimeMillis();
//1、创建对象
FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
"IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
"IO_stream_project/Byte_stream_module/src/rough_draft/b.txt");
//2、拷贝
//核心思想:边读边写
int b;
while ((b = fis.read()) != -1) {
fos.write(b);
}
//3、释放资源
//规则:先开的最后关闭
fos.close();
fis.close();
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo5.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..8232a72e00c764bf24e62e66d729aa513a34759e
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo5.java
@@ -0,0 +1,29 @@
+package Input_stream_package2;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo5 {
+ public static void main(String[] args) throws IOException {
+ /*
+ public int read (byte[] buffer) 一次读一个字节数组数据
+ */
+
+ //1、创建对象
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+
+ //2、读取数据
+ byte[] bytes = new byte[2];
+ //一次读取多个字节数据,具体读多少,跟数组长度有关
+ //返回值:本次读取到了多少个字节数据
+ int len = fis.read(bytes);
+ System.out.println(len);
+
+ String str = new String(bytes);
+ System.out.println(str);
+
+ //3、释放资源
+ fis.close();
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo6.java b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..f0f64fe4a439e0f80c86c315dae2b7b5ea86db9b
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Input_stream_package2/Byte_stream_demo6.java
@@ -0,0 +1,38 @@
+package Input_stream_package2;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo6 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 练习:
+ * 文件拷贝
+ */
+
+ long start = System.currentTimeMillis();
+
+ //1、创建对象
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/c.txt");
+
+ //2、拷贝
+ int len;
+ byte[] bytes = new byte[1024 * 1024 * 5];
+ while ((len = fis.read(bytes)) != -1) {
+ fos.write(bytes, 0, len);
+ }
+
+ //3、释放资源
+ fos.close();
+ fis.close();
+
+ long end = System.currentTimeMillis();
+
+ System.out.println(end - start);
+
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo1.java b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..68be337a8a855569f9406a1addc0c44deb322ac4
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo1.java
@@ -0,0 +1,28 @@
+package Output_stream_package1;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 演示:字节输出流 FileOutputStream
+ * 实现需求:写出一段文字到本地文件中。(暂时不写中文)
+ *
+ * 实现步骤:
+ * 创建对象
+ * 写出数据
+ * 释放资源
+ */
+
+ //1、创建对象
+ //写出 输出流 OutputStream
+ //本地文件 File
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ //2、写出数据
+ fos.write(97);
+ //3、释放资源
+ fos.close();
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo2.java b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a71672a564ffac97dce3f6af1f6cad2a984066e3
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo2.java
@@ -0,0 +1,29 @@
+package Output_stream_package1;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字节输出流的细节:
+ 1、创建字节输出流对象
+ 细节1:参数是字符串表示的路径或者是File对象都是可以的
+ 细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的
+ 细节3:如果文件已经存在,则会清空文件
+ 2、写数据
+ 细节:write方法的参数是整数,但是实际上写到本地文件中的是整数在ASCII上对应的字符
+ a ---> 97
+ 3、释放资源
+ 每次使用完流之后都要释放资源
+ */
+
+ //1、创建对象
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ //2、写出数据
+ fos.write(97);
+ //3、释放资源
+ fos.close();
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo3.java b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..6477b9c02e9f5e5b60f60e702deb1f55307a47f1
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo3.java
@@ -0,0 +1 @@
+package Output_stream_package1;
import java.io.FileOutputStream;
import java.io.IOException;
public class Byte_stream_demo3 {
public static void main(String[] args) throws IOException {
/*
void write (int b) 一次写一个字节数据
void write (byte[] b) 一次写一个字节数组数据
void write (byte[] b, int off, int len) 一次写一个字节数组的部分数据
参数一:
数组
参数二:
起始索引 off
参数三:
个数 len
*/
//1、创建对象
FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
"IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
//2、写出数据
fos.write(97);
fos.write(98);
byte[] bytes = {97, 98, 99, 100, 101};
fos.write(bytes);
fos.write(bytes,1,2);
//3、释放资源
fos.close();
}
}
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo4.java b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e88284ae20abe9429636f0376f4508c3e1ce17a
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/Output_stream_package1/Byte_stream_demo4.java
@@ -0,0 +1 @@
+package Output_stream_package1;
import java.io.FileOutputStream;
import java.io.IOException;
public class Byte_stream_demo4 {
public static void main(String[] args) throws IOException {
/*
换行写:
再次写出一个换行符就可以了
windows: \r\n
Linux: \n
Mac: \r
细节:
在Windows操作系统当中,Java对回车换行进行了优化。
虽然完整的\r\n,但是我们写其中一个\r或者\n.
Java也可以实现换行,因为Java在底层会补全
建议:
不要省略,还是写全了
续写:
如果想要续写,打开续写开关即可
开关位置:创建对象的第二个参数
默认false:表示关闭续写,此时创建对象会清空文件
手动传递true:表示打开续写,此时创建对象不会清空文件
*/
//1、创建对象
FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents" +
"/Java/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt",true);
//2、写出数据
String str = "zhaoxiaoyongdashuaige";
byte[] bytes1 = str.getBytes();
fos.write(bytes1);
//再次写出一个换行符就可以了
String wrap = "\r\n";
byte[] bytes2 = wrap.getBytes();
fos.write(bytes2);
String str2 = "6666";
byte[] bytes3 = str2.getBytes();
fos.write(bytes3);
//3、释放资源
fos.close();
}
}
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt b/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/rough_draft/a.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/rough_draft/b.txt b/IO_stream_project/Byte_stream_module/src/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/rough_draft/b.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/rough_draft/c.txt b/IO_stream_project/Byte_stream_module/src/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/rough_draft/c.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo10.java b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo10.java
new file mode 100644
index 0000000000000000000000000000000000000000..76bdd3413dc4ee1d6b1154491e9a02575048f0e8
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo10.java
@@ -0,0 +1,39 @@
+package try_catch_package;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo10 {
+ public static void main(String[] args) {
+ /*
+ * JDK7:IO流中捕获异常的写法
+ *
+ * try后面的小括号中写创建对象的代码,
+ * 注意:只有实现了AutoCloseable接口的类,才能在小括号中创建对象。
+ *
+ * try() {
+ *
+ * } catch() {
+ *
+ * }
+ */
+
+ try (FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/b.txt")) {
+
+ //2、拷贝
+ int len;
+ byte[] bytes = new byte[1024 * 1024 * 5];
+ while ((len = fis.read(bytes)) != -1) {
+ fos.write(bytes, 0, len);
+ }
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo11.java b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo11.java
new file mode 100644
index 0000000000000000000000000000000000000000..30b77a862a6b44486eaa53c5a09c53ccabe5a698
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo11.java
@@ -0,0 +1,32 @@
+package try_catch_package;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo11 {
+ public static void main(String[] args) throws FileNotFoundException {
+ /*
+ * JDK9:IO流中捕获异常的写法
+ */
+
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/b.txt");
+
+ try (fis; fos) {
+
+ //2、拷贝
+ int len;
+ byte[] bytes = new byte[1024 * 1024 * 5];
+ while ((len = fis.read(bytes)) != -1) {
+ fos.write(bytes, 0, len);
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo9.java b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo9.java
new file mode 100644
index 0000000000000000000000000000000000000000..3eff974fc275041cf96487e9ebf1c9148715bf26
--- /dev/null
+++ b/IO_stream_project/Byte_stream_module/src/try_catch_package/Byte_stream_demo9.java
@@ -0,0 +1,54 @@
+package try_catch_package;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Byte_stream_demo9 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 利用 try...catch...finally 捕获拷贝文件中代码出现的异常
+ */
+
+ //1、创建对象
+ FileInputStream fis = null;
+ FileOutputStream fos = null;
+
+
+ try {
+ fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/a.txt");
+ fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Byte_stream_module/src/rough_draft/b.txt");
+
+ //2、拷贝
+ int len;
+ byte[] bytes = new byte[1024 * 1024 * 5];
+ while ((len = fis.read(bytes)) != -1) {
+ fos.write(bytes, 0, len);
+ }
+
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ //3、释放资源
+ if (fos != null) {
+ try {
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+}
diff --git a/IO_stream_project/Case_module/Case_module.iml b/IO_stream_project/Case_module/Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..959e6f717e2fd0098f3a4115f71340b308af6b6f
--- /dev/null
+++ b/IO_stream_project/Case_module/Case_module.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Case_module/lib/hutool-all-5.8.10.jar b/IO_stream_project/Case_module/lib/hutool-all-5.8.10.jar
new file mode 100644
index 0000000000000000000000000000000000000000..32d250c230c805de2462257a16007d9d390facdd
--- /dev/null
+++ b/IO_stream_project/Case_module/lib/hutool-all-5.8.10.jar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1960ee1120a2c28a125c32c7c2300a1e5223ac2fc5cbbae1040beccf49d881d2
+size 2409826
diff --git a/IO_stream_project/Case_module/src/NameInfos.txt b/IO_stream_project/Case_module/src/NameInfos.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f58f2782a31ebfa3ec5c90c281758a3eeac7db47
--- /dev/null
+++ b/IO_stream_project/Case_module/src/NameInfos.txt
@@ -0,0 +1,25 @@
+尉俊锦-男-18-1.0
+崔琴迪-女-22-1.0
+从冉惜-女-21-1.0
+金译寅-男-23-1.0
+司芹茆-女-20-1.0
+车芹茆-女-20-1.0
+淳清桃-女-18-0.5
+唐延望-男-21-1.0
+东琛宇-男-23-1.0
+狄顷乘-女-22-1.0
+管顷乘-女-20-1.0
+安芹茆-女-22-1.0
+戴恺易-男-23-1.0
+家然致-女-21-1.0
+党远新-男-26-0.5
+强勤侃-女-19-1.0
+正俊俊-男-18-0.5
+狐情俏-女-19-1.0
+钟晴璨-女-20-1.0
+冯海启-男-24-1.0
+利旻亦-男-26-1.0
+陆宸康-男-21-1.0
+侯然琨-女-21-1.0
+汝情语-女-18-1.0
+沃铨卿-女-20-1.0
diff --git a/IO_stream_project/Case_module/src/case_package1/Login.java b/IO_stream_project/Case_module/src/case_package1/Login.java
new file mode 100644
index 0000000000000000000000000000000000000000..5ce01940f1ba2a3d71652fdf5eaefdfd518706f7
--- /dev/null
+++ b/IO_stream_project/Case_module/src/case_package1/Login.java
@@ -0,0 +1,75 @@
+package case_package1;
+
+import java.io.*;
+import java.util.Scanner;
+
+public class Login {
+ public static void main(String[] args) throws IOException {
+ /*
+ 需求:写一个登录小案例
+
+ 步骤:
+ 将正确的用户名和密码手动保存在本地的userinfo.txt文件中
+ 保存格式为:username=zhangsan&password=123&count=0
+ 让用户键盘录入用户名和密码
+ 比较用户录入的和正确的用户名密码是否一致
+ 如果一致则打印登录成功
+ 如果不一致则打印登录失败
+ */
+
+ //1、读取正确的用户名和密码
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Case_module/src/userinfo.txt"));
+ String line = br.readLine();
+ br.close();
+
+ // username=zhangsan&password=123&count=0
+ String[] userinfo = line.split("&");
+ String[] arr1 = userinfo[0].split("=");
+ String[] arr2 = userinfo[1].split("=");
+ String[] arr3 = userinfo[2].split("=");
+
+ String rightUsername = arr1[1];
+ String rightPassword = arr2[1];
+ int count = Integer.parseInt(arr3[1]);
+
+
+ //2、用户键盘录入用户名和密码
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入用户名:");
+ String username = sc.nextLine();
+ System.out.println("请输入密码:");
+ String password = sc.nextLine();
+
+ //3、比较
+ if (rightUsername.equals(username) && rightPassword.equals(password) && count < 3) {
+ System.out.println("登录成功");
+ } else {
+ count++;
+ if (count < 3) {
+ System.out.println("登录失败,还剩下" + (3 - count) + "次机会");
+ } else {
+ System.out.println("用户账户被锁定");
+ }
+
+ writeInfo("username=" + rightUsername + "&password=" + rightPassword + "&count=" + count);
+
+ }
+
+
+ }
+
+ /*
+ * 作用:
+ * 写出一个字符串到本地文件中
+ * 参数:
+ * 要写的字符串
+ * */
+ private static void writeInfo(String content) throws IOException {
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents/Java" +
+ "/IO_stream_project/Case_module/src/userinfo.txt"));
+
+ bw.write(content);
+ bw.close();
+ }
+}
diff --git a/IO_stream_project/Case_module/src/case_package1/Roll_counter.java b/IO_stream_project/Case_module/src/case_package1/Roll_counter.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd0e5f7ad106a6127fd64af9cc55681a8df13448
--- /dev/null
+++ b/IO_stream_project/Case_module/src/case_package1/Roll_counter.java
@@ -0,0 +1,66 @@
+package case_package1;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class Roll_counter {
+ public static void main(String[] args) throws IOException {
+ //1、把文件中所有的学生信息读取到内存中
+ ArrayList list = new ArrayList<>();
+ BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Case_module/src/NameInfos.txt"));
+
+ String line;
+ while ((line = br.readLine()) != null) {
+ String[] arr = line.split("-");
+ Student stu = new Student(arr[0], arr[1], Integer.parseInt(arr[2]), Double.parseDouble(arr[3]));
+ list.add(stu);
+ }
+ br.close();
+
+ //2、计算权重的总和
+ double weight = 0;
+ for (Student student : list) {
+ weight += student.getWeight();
+ }
+
+ //3、计算每个人的实际占比
+ double[] arr = new double[list.size()];
+ int index = 0;
+
+ for (Student stu : list) {
+ arr[index] = stu.getWeight() / weight;
+ index++;
+ }
+ //System.out.println(Arrays.toString(arr));
+
+ //4、计算每一个人的权重占比范围
+ for (int i = 1; i < arr.length; i++) {
+ arr[i] += arr[i - 1];
+ }
+ //System.out.println(Arrays.toString(arr));
+
+ //5、随机抽取
+ //获取一个 0.0 ~ 1.0 之间的随机数
+ double number = Math.random();
+ //判断number在arr中的位置
+ //二分查找法:方法返回 -插入点-1
+ int result = -Arrays.binarySearch(arr, number) - 1;
+ Student stu = list.get(result);
+ System.out.println(stu);
+
+ //6、修改当前的学生权限
+ double w = stu.getWeight() / 2;
+ stu.setWeight(w);
+
+ //7、把集合中的数据再次写到文件中
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Case_module/src/NameInfos.txt"));
+ for (Student s : list) {
+ bw.write(s.toString());
+ bw.newLine();
+ }
+ bw.close();
+ }
+}
diff --git a/IO_stream_project/Case_module/src/case_package1/Student.java b/IO_stream_project/Case_module/src/case_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd9e757adde4c9dbffb3ca8f12d441ccc83a4c6d
--- /dev/null
+++ b/IO_stream_project/Case_module/src/case_package1/Student.java
@@ -0,0 +1,95 @@
+package case_package1;
+
+public class Student {
+ private String name;
+ private String gender;
+ private int age;
+ private double weight;
+
+
+ public Student() {
+ }
+
+ public Student(String name, String gender, int age, double weight) {
+ this.name = name;
+ this.gender = gender;
+ this.age = age;
+ this.weight = weight;
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ *
+ * @return gender
+ */
+ public String getGender() {
+ return gender;
+ }
+
+ /**
+ * 设置
+ *
+ * @param gender
+ */
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ /**
+ * 获取
+ *
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ *
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ *
+ * @return weight
+ */
+ public double getWeight() {
+ return weight;
+ }
+
+ /**
+ * 设置
+ *
+ * @param weight
+ */
+ public void setWeight(double weight) {
+ this.weight = weight;
+ }
+
+ public String toString() {
+ return name + "-" + gender + "-" + age + "-" + weight;
+ }
+}
diff --git a/IO_stream_project/Case_module/src/case_package1/Test.java b/IO_stream_project/Case_module/src/case_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e210c8ad2157b8bba0fac3b02a288b5e63e35f3
--- /dev/null
+++ b/IO_stream_project/Case_module/src/case_package1/Test.java
@@ -0,0 +1,201 @@
+package case_package1;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+public class Test {
+ public static void main(String[] args) throws IOException {
+ /*
+ 获取姓氏:https://hanyu.baidu.com/s?wd=%E7%99%BE%E5%AE%B6%E5%A7%93&device=pc&from=home
+ 获取男生名字:http://www.haoming8.cn/baobao/12560.html
+ 获取女生名字:http://www.haoming8.cn/baobao/4155.html
+ */
+
+ //1、定义变量记录网址
+ String familyNameNet = "https://hanyu.baidu.com/s?wd=%E7%99%BE%E5%AE%B6%E5%A7%93&device=pc&from=home";
+ String boyNameNet = "http://www.haoming8.cn/baobao/12560.html";
+ String girlNameNet = "http://www.haoming8.cn/baobao/4155.html";
+
+ //2、爬取数据,把网址上所有的数据拼接成一个字符串
+ String familyNameStr = webCrawler(familyNameNet);
+ String boyNameStr = webCrawler(boyNameNet);
+ String girlNameStr = webCrawler(girlNameNet);
+
+ //3、利用正则表达式,把其中符合要求的数据获取出来
+ ArrayList familyNameTempList = getData(familyNameStr, "(.{4})(,|。)", 1);
+ ArrayList boyNameTempList = getData(boyNameStr, "([\\u4e00-\\u9fa5]{2})(、|。)", 1);
+ ArrayList girlNameTempList = getData(girlNameStr, "(.. ){4}..", 0);
+
+
+ //4、处理数据
+ //familyNameTempList(姓氏)
+ //处理方案:把每一个姓氏拆开并添加到一个新的集合当中
+ ArrayList familyNameList = new ArrayList<>();
+ for (String str : familyNameTempList) {
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ familyNameList.add(c + "");
+ }
+ }
+ //System.out.println(familyNameList);
+
+ //boyNameTempList(男生的名字)
+ //处理方案:去除其中的重复元素
+ ArrayList boyNameList = new ArrayList<>();
+ for (String str : boyNameTempList) {
+ if (!boyNameList.contains(str)) {
+ boyNameList.add(str);
+ }
+ }
+ //System.out.println(boyNameList);
+
+ //girlNameTempList(女生的姓名)
+ //处理方案:把里面的每一个元素用空格进行切割,得到每一个女生的名字
+ ArrayList girlNameList = new ArrayList<>();
+ for (String str : girlNameTempList) {
+ String[] arr = str.split(" ");
+
+ for (int i = 0; i < arr.length; i++) {
+ girlNameList.add(arr[i]);
+ }
+ }
+ //System.out.println(girlNameList);
+
+ //5、生成数据
+ //姓名(唯一)-性别-年龄
+ ArrayList infos = getInfos(familyNameList, boyNameList, girlNameList, 20, 25);
+ Collections.shuffle(infos);
+ //System.out.println(infos);
+
+ //6、写出数据
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Case_module/src/NameInfos.txt"));
+ for (String info : infos) {
+ bw.write(info);
+ bw.newLine();
+ }
+ bw.close();
+ }
+
+ /*
+ * 作用:
+ * 获取男生和女生的信息:张三-男-23
+ * 形参:
+ * 参数一:装着姓氏的集合
+ * 参数二:装着男生名字的集合
+ * 参数三:装着女生名字的集合
+ * 参数四:男生个数
+ * 参数五:女生个数
+ */
+ public static ArrayList getInfos(ArrayList familyNameList, ArrayList boyNameList, ArrayList girlNameList, int boyCount, int girlCount) {
+ //1、生成男生不重复的名字
+ HashSet boyhs = new HashSet<>();
+ while (true) {
+ if (boyhs.size() == boyCount) {
+ break;
+ }
+ //随机
+ Collections.shuffle(familyNameList);
+ Collections.shuffle(boyNameList);
+ boyhs.add(familyNameList.get(0) + boyNameList.get(0));
+ }
+ //System.out.println(boyhs);
+
+ //2、生成女生不重复的名字
+ HashSet girlhs = new HashSet<>();
+ while (true) {
+ if (girlhs.size() == girlCount) {
+ break;
+ }
+ //随机
+ Collections.shuffle(familyNameList);
+ Collections.shuffle(girlNameList);
+ girlhs.add(familyNameList.get(0) + girlNameList.get(0));
+ }
+ //System.out.println(girlhs);
+
+ //3、生成男生信息并添加到集合当中
+ ArrayList list = new ArrayList<>();
+ Random r = new Random();
+
+ for (String boyName : boyhs) {
+ int age = r.nextInt(10) + 18;
+ list.add(boyName + "-男-" + age + "-1");
+ }
+
+ //4、生成女生信息并添加到集合当中
+ for (String girlName : girlhs) {
+ int age = r.nextInt(8) + 18;
+ list.add(girlName + "-女-" + age + "-1");
+
+ }
+ return list;
+ }
+
+ /*
+ * 作用:根据正则表达式获取字符串中的数据
+ *
+ * 参数一:
+ * 完整的字符串
+ *
+ * 参数二:
+ * 正则表达式
+ *
+ * 返回值:
+ * 真正想要的数据
+ *
+ * */
+ private static ArrayList getData(String str, String regex, int index) {
+ //1、创建集合存放数据
+ ArrayList list = new ArrayList<>();
+ //2、按照正则表达式的规则,去获取数据
+ Pattern pattern = Pattern.compile(regex);
+ //3、按照pattern的规则,到str当中获取数据
+ Matcher matcher = pattern.matcher(str);
+ while (matcher.find()) {
+ String group = matcher.group(index);
+ list.add(group);
+ }
+
+ return list;
+ }
+
+ /*
+ * 作用:
+ * 从网络中爬取数据,把数据拼接成字符串返回
+ * 形参:
+ * 网址
+ * 返回值:
+ * 爬取到的所有数据
+ * */
+ public static String webCrawler(String net) throws IOException {
+ //1、定义StringBuilder拼接爬取到的数据
+ StringBuilder sb = new StringBuilder();
+ //2、创建一个URL对象
+ URL url = new URL(net);
+ //3、链接上这个网址
+ //细节:保证网络是通畅的,而且这个网址是可以链接上的
+ URLConnection conn = url.openConnection();
+ //4、读取数据
+ InputStreamReader isr = new InputStreamReader(conn.getInputStream());
+ int ch;
+ while ((ch = isr.read()) != -1) {
+ sb.append((char) ch);
+ }
+ //5、释放资源
+ isr.close();
+ //6、把读取到的数据返回
+ return sb.toString();
+ }
+}
diff --git a/IO_stream_project/Case_module/src/case_package1/Test2.java b/IO_stream_project/Case_module/src/case_package1/Test2.java
new file mode 100644
index 0000000000000000000000000000000000000000..45603562d04af60965b77372092979d87331d48d
--- /dev/null
+++ b/IO_stream_project/Case_module/src/case_package1/Test2.java
@@ -0,0 +1,80 @@
+package case_package1;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ReUtil;
+import cn.hutool.http.HttpUtil;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static case_package1.Test.getInfos;
+
+public class Test2 {
+ public static void main(String[] args) {
+ //利用糊涂包生成假数据,并写到文件中
+
+ //1、定义网址
+ String familyNameNet = "https://hanyu.baidu.com/s?wd=%E7%99%BE%E5%AE%B6%E5%A7%93&device=pc&from=home";
+ String boyNameNet = "http://www.haoming8.cn/baobao/12560.html";
+ String girlNameNet = "http://www.haoming8.cn/baobao/4155.html";
+
+ //2、爬取数据
+ String familyNameStr = HttpUtil.get(familyNameNet);
+ String boyNameStr = HttpUtil.get(boyNameNet);
+ String girlNameStr = HttpUtil.get(girlNameNet);
+
+ //3、利用正则表达式获取数据
+ List familyNameTempList = ReUtil.findAll("(.{4})(,|。)", familyNameStr, 1);
+ List boyNameTempList = ReUtil.findAll("([\\u4E00-\\u9FA5]{2})(、|。)", boyNameStr, 1);
+ List girlNameTempList = ReUtil.findAll("(.. ){4}..", girlNameStr, 0);
+
+
+ //4、处理数据
+ //familyNameTempList(姓氏)
+ //处理方案:把每一个姓氏拆开并添加到一个新的集合当中
+ ArrayList familyNameList = new ArrayList<>();
+ for (String str : familyNameTempList) {
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ familyNameList.add(c + "");
+ }
+ }
+ //System.out.println(familyNameList);
+
+ //boyNameTempList(男生的名字)
+ //处理方案:去除其中的重复元素
+ ArrayList boyNameList = new ArrayList<>();
+ for (String str : boyNameTempList) {
+ if (!boyNameList.contains(str)) {
+ boyNameList.add(str);
+ }
+ }
+ //System.out.println(boyNameList);
+
+ //girlNameTempList(女生的姓名)
+ //处理方案:把里面的每一个元素用空格进行切割,得到每一个女生的名字
+ ArrayList girlNameList = new ArrayList<>();
+ for (String str : girlNameTempList) {
+ String[] arr = str.split(" ");
+
+ for (int i = 0; i < arr.length; i++) {
+ girlNameList.add(arr[i]);
+ }
+ }
+ //System.out.println(girlNameList);
+
+
+ //5、生成数据
+ //姓名(唯一)-性别-年龄
+ ArrayList infos = getInfos(familyNameList, boyNameList, girlNameList, 10, 15);
+ Collections.shuffle(infos);
+ //System.out.println(infos);
+
+ //6、写出数据
+ //细节:
+ //糊涂包的相对路径,不是相对于当前项目而言的,而是相对于class文件而言的
+ FileUtil.writeLines(infos, "/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Case_module/src/NameInfos.txt", "UTF-8");
+ }
+}
diff --git a/IO_stream_project/Case_module/src/userinfo.txt b/IO_stream_project/Case_module/src/userinfo.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3421a25bb8b2ae7f042d090397d782d00a358fbc
--- /dev/null
+++ b/IO_stream_project/Case_module/src/userinfo.txt
@@ -0,0 +1 @@
+username=zhangsan&password=123&count=0
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/Char_stream_module.iml b/IO_stream_project/Char_stream_module/Char_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/Char_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/Case_package/case_demo1.java b/IO_stream_project/Char_stream_module/src/Case_package/case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4562f64ba0afd06542fb453a556364540b463b5
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Case_package/case_demo1.java
@@ -0,0 +1,56 @@
+package Case_package;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class case_demo1 {
+ public static void main(String[] args) throws IOException {
+ //拷贝一个文件夹,考虑子文件夹
+
+ //1、创建对象表示数据源
+ File src = new File("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft");
+ //2、创建对象表示目的地
+ File dest = new File("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft2");
+
+ //3、调用方法开始拷贝
+ copydir(src, dest);
+ }
+
+ /*
+ * 作用:拷贝文件夹
+ * 参数一:数据源
+ * 参数二:目的地
+ * */
+ private static void copydir(File src, File dest) throws IOException {
+ dest.mkdirs();
+ //递归
+ //1、进入数据源
+ File[] files = src.listFiles();
+
+ //2、遍历数组
+ for (File file : files) {
+ if (file.isFile()) {
+ //3、判断文件,拷贝
+ FileInputStream fis = new FileInputStream(file);
+ FileOutputStream fos = new FileOutputStream(new File(dest, file.getName()));
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = fis.read(bytes)) != -1) {
+ fos.write(bytes);
+ }
+ fos.close();
+ fis.close();
+
+ } else {
+ //4、判断文件夹,递归
+ copydir(file, new File(dest, file.getName()));
+ }
+ }
+
+
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Case_package/case_demo2.java b/IO_stream_project/Char_stream_module/src/Case_package/case_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..fde7b47ab8b973f1358261f8fb285ab4fba894b3
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Case_package/case_demo2.java
@@ -0,0 +1,40 @@
+package Case_package;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class case_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 为了保证文件的安全性,就需要对原始文件进行加密存储,再使用的时候再对其进行解密处理。
+ 加密原理:
+ 对原始文件中的每一个字节数据进行更改,然后将更改之后的数据存储到新的文件中。
+ 解密原理:
+ 读取加密之后的文件,按照加密的规则反向操作,变成原始文件
+
+ ^异或:
+ 两边相同:false 0
+ 两边不同:true 1
+ */
+ System.out.println(100 ^ 10);//110
+ System.out.println(110 ^ 10);//100
+
+ //1、创建对象关联原始文件
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/a.txt");
+ //2、创建对象关联加密文件
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/c.txt");
+
+ //3、加密处理
+ int b;
+ while ((b = fis.read()) != -1) {
+ fos.write(b ^ 2);
+ }
+ //4、释放资源
+ fos.close();
+ fis.close();
+
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Case_package/case_demo3.java b/IO_stream_project/Char_stream_module/src/Case_package/case_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..aef68907bfdae3c0154fe047ffb6f05b68ec2993
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Case_package/case_demo3.java
@@ -0,0 +1,55 @@
+package Case_package;
+
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class case_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 文本文件中有以下数据:
+ 2-1-9-4-7-8
+ 将文件中的数据进行排序,变成以下的数据:
+ 1-2-4-7-8-9
+ */
+
+ //1、读取数据
+ FileReader fr = new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft2/c.txt");
+ StringBuilder sb = new StringBuilder();
+ int ch;
+ while ((ch = fr.read()) != -1) {
+ sb.append((char) ch);
+ }
+ fr.close();
+ System.out.println(sb);
+ //2、排序
+ String str = sb.toString();
+ String[] arrStr = str.split("-");
+
+ ArrayList list = new ArrayList<>();
+ for (String s : arrStr) {
+ int i = Integer.parseInt(s);
+ list.add(i);
+ }
+ System.out.println(list);
+
+ Collections.sort(list);
+ System.out.println(list);
+
+ //3、写出
+ FileWriter fw = new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft2/d.txt");
+
+ for (int i = 0; i < list.size(); i++) {
+ if (i == list.size() - 1) {
+ fw.write(list.get(i) + "");
+ } else {
+ fw.write(list.get(i) + "-");
+ }
+ }
+ fw.close();
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo1.java b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6883db6544d4f4eeb5720702f42bdbe71085f63
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo1.java
@@ -0,0 +1,23 @@
+package Char_stream_package;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Char_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字节流读取中文会出现乱码
+ */
+
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/a.txt");
+
+ int b;
+
+ while ((b = fis.read()) != -1) {
+ System.out.print((char) b);
+ }
+
+ fis.close();
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo2.java b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a325388b0dccd8245a32392de53ca8a866c71476
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo2.java
@@ -0,0 +1,29 @@
+package Char_stream_package;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Char_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字节流拷贝中文不会出现乱码
+ */
+
+ //1、创建对象
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java" +
+ "/IO_stream_project/Char_stream_module/src/rough_draft/a.txt");
+ FileOutputStream fos = new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java" +
+ "/IO_stream_project/Char_stream_module/src/rough_draft/b.txt");
+
+ //2、拷贝
+ int b;
+ while ((b = fis.read()) != -1) {
+ fos.write(b);
+ }
+
+ //3、释放资源
+ fos.close();
+ fis.close();
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo3.java b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b934ba490110a0e90af4b0698e8b83ee3bc8680
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Char_stream_package/Char_stream_demo3.java
@@ -0,0 +1 @@
+package Char_stream_package;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class Char_stream_demo3 {
public static void main(String[] args) throws UnsupportedEncodingException {
/*
Java中编码的方法
public byte[] getBytes() 使用默认方式进行编码
public byte[] getBytes(String charsetName) 使用指定方式进行编码
Java中解码的方法
String (byte[] bytes) 使用默认方式进行解码
String (byte[] bytes, String charsetName) 使用指定方法进行解码
*/
//1、编码
String str = "ai你哟";
byte[] bytes1 = str.getBytes();
System.out.println(Arrays.toString(bytes1));
byte[] bytes2 = str.getBytes("GBK");
System.out.println(Arrays.toString(bytes2));
//2、解码
String str1 = new String(bytes1);
System.out.println(str1);
String str2 = new String(bytes1, "GBK");
System.out.println(str2);
}
}
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo1.java b/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..736109e8a3aa7fa25049c9bf462a5cb52da5b7fc
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo1.java
@@ -0,0 +1,42 @@
+package Read_stream_package;
+
+import java.io.FileReader;
+import java.io.IOException;
+
+public class Read_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 第一步:创建对象
+ public FileReader (File file) 创建字符输入流关联本地文件
+ public FileReader (String pathname) 创建字符输入流关联本地文件
+
+ 第二步:读取数据
+ public int read () 读取数据,读到末尾返回-1
+ public int read (char[] buffer) 读取多个数据,读到末尾返回-1
+
+ 第三步:释放资源
+ public void close () 释放资源/关流
+ */
+
+ //1、创建对象并关联本地文件
+ FileReader fr = new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/a.txt");
+
+ //2、读取数据 read()
+ //字符流的底层也是字节流,默认也是一个字节一个字节的读取的
+ //如果遇到中文就会一次读取多个,GBK一次读两个字节,UTF-8一次读取三个字节
+
+ //read() 细节:
+ //1、read():默认也是一个字节一个字节的读取的,如果遇到中文就会一次读取多个
+ //2、在读取之后,方法的底层还会进行解码并转成十进制。
+ // 最终把这个十进制作为返回值
+ int ch;
+ while ((ch = fr.read()) != -1) {
+ System.out.println((char) ch);
+ }
+
+ //3、释放资源
+ fr.close();
+
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo2.java b/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ee90a77ca9e61bccfffb55cdd721d478e657488
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Read_stream_package/Read_stream_demo2.java
@@ -0,0 +1,37 @@
+package Read_stream_package;
+
+import java.io.FileReader;
+import java.io.IOException;
+
+public class Read_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 第一步:创建对象
+ public FileReader (File file) 创建字符输入流关联本地文件
+ public FileReader (String pathname) 创建字符输入流关联本地文件
+
+ 第二步:读取数据
+ public int read () 读取数据,读到末尾返回-1
+ public int read (char[] buffer) 读取多个数据,读到末尾返回-1
+
+ 第三步:释放资源
+ public void close () 释放资源/关流
+ */
+
+ //1、创建对象并关联本地文件
+ FileReader fr = new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/a.txt");
+
+ //2、读取数据
+ char[] chars = new char[2];
+ int len;
+ // read(chars):读取数据,解码,强转三步合并了,把强转之后的字符存到数组当中
+ // 空参的read + 强转类型转换
+ while ((len = fr.read(chars)) != -1){
+ //把数组中的数据变成字符串再进行打印
+ System.out.println(new String(chars));
+ }
+ //3、释放资源
+ fr.close();
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/Writer_stream_package/Writer_stream_demo1.java b/IO_stream_project/Char_stream_module/src/Writer_stream_package/Writer_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d08ee5dce83eef011bcb79ddff158310420b3cf
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/Writer_stream_package/Writer_stream_demo1.java
@@ -0,0 +1,39 @@
+package Writer_stream_package;
+
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class Writer_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 第一步:创建对象
+ public FileWriter (File file) 创建字符输出流关联本地文件
+ public FileWriter (String pathname) 创建字符输出流关联本地文件
+ public FileWriter (File file, boolean append) 创建字符输出流关联本地文件,续写
+ public FileWriter (String pathname, boolean append) 创建字符输出流关联本地文件,续写
+
+ 第二步:读取数据
+ void write (int c) 写出一个字符
+ void write (String str) 写出一个字符串
+ void write (String str, int off, int len) 写出一个字符串的一部分
+ void write (char[] cbuf) 写出一个字符数组
+ void write (char[] cbuf, int off, int len) 写出字符数组的一部分
+
+ 第三步:释放资源
+ public void close () 释放资源/关流
+ */
+
+ FileWriter fw = new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Char_stream_module/src/rough_draft/b.txt", true);
+
+ fw.write(25105);//根据字符集的编码方式进行编码,把编码之后的数据写到文件中去
+ //25105 "我"
+
+ fw.write("你好厉害!");
+
+ char[] chars = {'a', 'b', 'c', '我'};
+ fw.write(chars);
+
+ fw.close();
+ }
+}
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft/a.txt b/IO_stream_project/Char_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c8474f717c2149174a7c13f4df65686e2cbb7493
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/rough_draft/a.txt
@@ -0,0 +1 @@
+牛逼实在是太厉害啦~
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft/b.txt b/IO_stream_project/Char_stream_module/src/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..72a3da122a7c8c617194ceb17f1f98d192309647
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/rough_draft/b.txt
@@ -0,0 +1 @@
+我我你好厉害!abc我
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft/c.txt b/IO_stream_project/Char_stream_module/src/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2326d46d90930efd4a08f2c5966493e46abce3b6
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/rough_draft/c.txt
@@ -0,0 +1 @@
+務낾笜瞪䚭禨猋笱痤í¿œ
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft2/a.txt b/IO_stream_project/Char_stream_module/src/rough_draft2/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d02bfd40632e49ff37c97fc61519dd6ca5396788
Binary files /dev/null and b/IO_stream_project/Char_stream_module/src/rough_draft2/a.txt differ
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft2/b.txt b/IO_stream_project/Char_stream_module/src/rough_draft2/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e97c52531c33e9813efcaf33d14781a116c9f00a
Binary files /dev/null and b/IO_stream_project/Char_stream_module/src/rough_draft2/b.txt differ
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft2/c.txt b/IO_stream_project/Char_stream_module/src/rough_draft2/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4d75d94747e408bb737ce5866b447bca3a73355e
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/rough_draft2/c.txt
@@ -0,0 +1 @@
+2-1-9-4-7-8
\ No newline at end of file
diff --git a/IO_stream_project/Char_stream_module/src/rough_draft2/d.txt b/IO_stream_project/Char_stream_module/src/rough_draft2/d.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e25145f997e88f1e328bea4f9d72726a71a49268
--- /dev/null
+++ b/IO_stream_project/Char_stream_module/src/rough_draft2/d.txt
@@ -0,0 +1 @@
+1-2-4-7-8-9
\ No newline at end of file
diff --git a/IO_stream_project/Commons_io_module/Commons_io_module.iml b/IO_stream_project/Commons_io_module/Commons_io_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..cc95850a627270dc8455a4bf14b298a632569d27
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/Commons_io_module.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Commons_io_module/lib/commons-io-2.11.0.jar b/IO_stream_project/Commons_io_module/lib/commons-io-2.11.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..be507d94fdc28b57d3dece275189e6693de4e25d
Binary files /dev/null and b/IO_stream_project/Commons_io_module/lib/commons-io-2.11.0.jar differ
diff --git a/IO_stream_project/Commons_io_module/lib/hutool-all-5.8.10.jar b/IO_stream_project/Commons_io_module/lib/hutool-all-5.8.10.jar
new file mode 100644
index 0000000000000000000000000000000000000000..32d250c230c805de2462257a16007d9d390facdd
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/lib/hutool-all-5.8.10.jar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1960ee1120a2c28a125c32c7c2300a1e5223ac2fc5cbbae1040beccf49d881d2
+size 2409826
diff --git a/IO_stream_project/Commons_io_module/src/Commons_io_package/Commons_io_demo1.java b/IO_stream_project/Commons_io_module/src/Commons_io_package/Commons_io_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..f43dd35397f4b7e6864bb2705502554e3026ce96
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/src/Commons_io_package/Commons_io_demo1.java
@@ -0,0 +1,43 @@
+package Commons_io_package;
+
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+
+public class Commons_io_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ FileUtils类
+ static void copyFile(File srcFile, File destFile) 复制文件
+ static void copyDirectory(File srcDir, File destDir) 复制文件夹
+ static void copyDirectoryToDirectory(File srcDir, File destDir) 复制文件夹
+ static void deleteDirectory(File directory) 删除文件夹
+ static void cleanDirectory(File directory) 清空文件夹
+ static String readFileToString(File file, Charset encoding) 读取文件中的数据变成成字符串
+ static void write(File file, CharSequence data, String encoding) 写出数据
+
+ IOUtils类
+ public static int copy(InputStream input, OutputStream output) 复制文件
+ public static int copyLarge(Reader input, Writer output) 复制大文件
+ public static String readLines(Reader input) 读取数据
+ public static void write(String data, OutputStream output) 写出数据
+ */
+ File src1 = new File("/Users/zhaoxiaoyong" +
+ "/Documents/Java/IO_stream_project/Commons_io_module/src/rough_draft/a.txt");
+ File dest1 = new File("/Users/zhaoxiaoyong" +
+ "/Documents/Java/IO_stream_project/Commons_io_module/src/rough_draft/copy.txt");
+ FileUtils.copyFile(src1, dest1);
+
+
+ File src2 = new File("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Commons_io_module/src/rough_draft");
+ File dest2 = new File("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Commons_io_module/src/copy_package");
+ FileUtils.copyDirectory(src2, dest2);
+
+ File src3 = new File("/Users/zhaoxiaoyong/Documents" +
+ "/Java/IO_stream_project/Commons_io_module/src/copy_package");
+ FileUtils.cleanDirectory(src3);
+ }
+}
diff --git a/IO_stream_project/Commons_io_module/src/hutool_package/hutool_demo1.java b/IO_stream_project/Commons_io_module/src/hutool_package/hutool_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..da0dff807e1b971b2da7101aeeddccf0ffb6bf29
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/src/hutool_package/hutool_demo1.java
@@ -0,0 +1,43 @@
+package hutool_package;
+
+import cn.hutool.core.io.FileUtil;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+public class hutool_demo1 {
+ public static void main(String[] args) {
+ /*
+ FileUtil类:
+ file:根据参数创建一个file对象
+ touch:根据参数创建文件
+
+ writeLines:把集合中的数据写出到文件中,覆盖模式。
+ appendLines:把集合中的数据写出到文件中,续写模式
+ readLines:指定字符编码,把文件中的数据,读到集合中。
+ readUtf8Lines:按照UTF-8的形式,把文件中的数据,读到集合中
+
+ copy:拷贝文件或者文件夹
+ */
+
+ File file = FileUtil.file("rough_draft", "s.txt");
+ System.out.println(file);
+
+ File touch = FileUtil.touch(file);
+ System.out.println(touch);
+
+ ArrayList list = new ArrayList<>();
+ list.add("aaa");
+ list.add("aaa");
+ list.add("aaa");
+
+ File file1 = FileUtil.writeLines(list, file, "UTF-8");
+
+ File file2 = FileUtil.appendLines(list, file, "UTF-8");
+
+ List list2 = FileUtil.readLines(file, "UTF-8");
+ System.out.println(list2);
+
+ }
+}
diff --git a/IO_stream_project/Commons_io_module/src/rough_draft/a.txt b/IO_stream_project/Commons_io_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c126c096b2a9ae9af55825db3a157f19f4d2c5f
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/src/rough_draft/a.txt
@@ -0,0 +1 @@
+我牛逼,我真是个大牛逼~
diff --git a/IO_stream_project/Commons_io_module/src/rough_draft/copy.txt b/IO_stream_project/Commons_io_module/src/rough_draft/copy.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c126c096b2a9ae9af55825db3a157f19f4d2c5f
--- /dev/null
+++ b/IO_stream_project/Commons_io_module/src/rough_draft/copy.txt
@@ -0,0 +1 @@
+我牛逼,我真是个大牛逼~
diff --git a/IO_stream_project/Convert_stream_module/Convert_stream_module.iml b/IO_stream_project/Convert_stream_module/Convert_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/Convert_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Case_demo1.java b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1ab3c1a325f788838b3766a18c70a35544d1327
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Case_demo1.java
@@ -0,0 +1,35 @@
+package Convert_stream_package;
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+public class Case_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 利用字节流读取文件中的数据,每次读一整行,而且不能出现乱码
+
+ //1、字节流在读取中文的时候,是会出现乱码的,但是字符流可以搞定
+ //2、字节流里面是没有读一整行的方法的,只有字符缓冲流才能搞定
+ */
+
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/b.txt");
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+
+ String str = br.readLine();
+ System.out.println(str);
+ br.close();
+
+ BufferedReader br2 = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/b.txt")));
+ String line;
+ while ((line = br2.readLine()) != null) {
+ System.out.println(line);
+ }
+ br2.close();
+
+ }
+}
diff --git a/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo1.java b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..802ce730f6aedc983454b8e590cdc0f9ae6d82ef
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo1.java
@@ -0,0 +1,38 @@
+package Convert_stream_package;
+
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class Convert_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 利用转换流按照指定字符编码读取
+ */
+
+ //1、创建对象并指定字符编码
+ InputStreamReader isr = new InputStreamReader(new FileInputStream("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Convert_stream_module/src/rough_draft/a.txt"), "GBK");
+ //2、读取数据
+ int ch;
+ while ((ch = isr.read()) != -1) {
+ System.out.print((char) ch);
+ }
+ //3、释放资源
+ isr.close();
+ System.out.println();
+
+
+ //JDK11的新方式:
+ FileReader fr = new FileReader("/Users/zhaoxiaoyong/Documents/Java/IO_stream_project/" +
+ "Convert_stream_module/src/rough_draft/a.txt", Charset.forName("GBK"));
+ //2、读取数据
+ while ((ch = fr.read()) != -1) {
+ System.out.print((char) ch);
+ }
+ //3、释放资源
+ fr.close();
+ }
+}
diff --git a/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo2.java b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e99934c5fc3bf1ea00bb2861381334168c0201e7
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo2.java
@@ -0,0 +1,32 @@
+package Convert_stream_package;
+
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
+
+public class Convert_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 利用转换流按照指定字符编码写出
+ */
+
+ //1、创建转换流的对象
+ OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/a.txt"), "GBK");
+
+ //2、写出数据
+ osw.write("你好你好");
+ //3、释放资源
+ osw.close();
+
+
+ FileWriter fw = new FileWriter("/Users/zhaoxiaoyong/Documents/Java/IO_stream_project/" +
+ "Convert_stream_module/src/rough_draft/a.txt", Charset.forName("GBK"));
+ fw.write("你好你好");
+ fw.close();
+
+
+ }
+}
diff --git a/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo3.java b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..d24341cabf139554a9cd32a275d2540c12e885ef
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/Convert_stream_package/Convert_stream_demo3.java
@@ -0,0 +1,39 @@
+package Convert_stream_package;
+
+import java.io.*;
+import java.nio.charset.Charset;
+
+public class Convert_stream_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 将本地文件中的GBK文件,转成UTF-8
+ */
+
+ //1、JDK11以前的方案
+ InputStreamReader isr = new InputStreamReader(new FileInputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/a.txt"), "GBK");
+ OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/b.txt"), "UTF-8");
+
+ int b;
+ while ((b = isr.read()) != -1) {
+ osw.write(b);
+ }
+
+ osw.close();
+ isr.close();
+
+ //2、替代方案
+ FileReader fr = new FileReader("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/a.txt", Charset.forName("GBK"));
+ FileWriter fw = new FileWriter("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Convert_stream_module/src/rough_draft/b.txt", Charset.forName("UTF-8"));
+
+ while ((b = fr.read()) != -1) {
+ fw.write(b);
+ }
+ fw.close();
+ fr.close();
+
+ }
+}
diff --git a/IO_stream_project/Convert_stream_module/src/rough_draft/a.txt b/IO_stream_project/Convert_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a7ec974bd626d6a841bf59f0e09372deb835e8f4
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/rough_draft/a.txt
@@ -0,0 +1 @@
+ÄãºÃÄãºÃ
\ No newline at end of file
diff --git a/IO_stream_project/Convert_stream_module/src/rough_draft/b.txt b/IO_stream_project/Convert_stream_module/src/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d3a6a99057fbd9a1ca3f3eecbda9936c1ac4f24d
--- /dev/null
+++ b/IO_stream_project/Convert_stream_module/src/rough_draft/b.txt
@@ -0,0 +1,5 @@
+答:案件的争议焦点如下:
+1、A公司是否享有挖掘机的所有权?
+2、A公司是否应向B公司支付挖掘机的保管费和看护费?B公司留置挖掘机的行为是否违法?
+3、B公司转卖挖掘机的行为是否发生物权效力?
+B公司是否需要向A公司进行赔偿或补偿?
\ No newline at end of file
diff --git a/IO_stream_project/IO_stream_project.iml b/IO_stream_project/IO_stream_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..7b3f78c19442e1783deffe108b0b9444526cbce4
--- /dev/null
+++ b/IO_stream_project/IO_stream_project.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Object_stream_module/Object_stream_module.iml b/IO_stream_project/Object_stream_module/Object_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/Object_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo1.java b/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..10caf013e95b285019476fc9659bd5388dee398b
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo1.java
@@ -0,0 +1,34 @@
+package Object_stream_package;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+
+public class Object_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 需求:
+ 利用序列化流/对象操作输出流,把一个对象写到本地文件中
+
+ 构造方法:
+ public ObjectOutputStream (OutputStream out) 把基本流变成高级流
+
+ 成员方法:
+ public final void writeObject (Object obj) 把对象序列化写到文件中去
+
+ */
+
+ //1、创建对象
+ Student stu = new Student("zhangsan", 23, "南京");
+
+ //2、创建序列化流的对象/对象操作输出流
+ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Object_stream_module/src/rough_draft/a.txt"));
+
+ //3、写出数据
+ oos.writeObject(stu);
+
+ //4、释放资源
+ oos.close();
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo2.java b/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..220e3f2e8f0635488fc0e4eafdcbf5571bfa05d1
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/Object_stream_package/Object_stream_demo2.java
@@ -0,0 +1,31 @@
+package Object_stream_package;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+public class Object_stream_demo2 {
+ public static void main(String[] args) throws IOException, ClassNotFoundException {
+ /*
+ 需求:
+ 利用反序列化流/对象操作输入流,把文件中的对象读到程序当中
+ 构造方法:
+ public ObjectInputStream (InputStream out) 把基本流变成高级流
+ 成员方法:
+ public Object readObject () 把序列化到本地文件中的对象,读取到程序中来
+ */
+
+ //1、创建反序列化流的对象
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream("/Users/zhaoxiaoyong/" +
+ "Documents/Java/IO_stream_project/Object_stream_module/src/rough_draft/a.txt"));
+
+ //2、读取数据
+ Student o = (Student) ois.readObject();
+
+ //3、打印对象
+ System.out.println(o);
+
+ //4、释放资源
+ ois.close();
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/Object_stream_package/Student.java b/IO_stream_project/Object_stream_module/src/Object_stream_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..07ee4d8fcaffc0d4ec0175c440445b46bb464533
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/Object_stream_package/Student.java
@@ -0,0 +1,79 @@
+package Object_stream_package;
+
+import java.io.Serializable;
+
+/*
+ * Serializable接口里面是没有抽象方法的,标记型接口
+ * 一旦实现了这个接口,那么就表示当前的Student类可以被序列化
+ * 理解:
+ * 一个物品的合格证
+ */
+public class Student implements Serializable {
+ private String name;
+ private int age;
+ //transient:瞬态关键字
+ //作用:不会把当前属性序列化到本地文件中
+ private transient String address;
+
+
+ public Student() {
+ }
+
+ public Student(String name, int age, String address) {
+ this.name = name;
+ this.age = age;
+ this.address = address;
+ }
+
+ /**
+ * 获取
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ * @return address
+ */
+ public String getAddress() {
+ return address;
+ }
+
+ /**
+ * 设置
+ * @param address
+ */
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + ", address = " + address + "}";
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/case_package/Student.java b/IO_stream_project/Object_stream_module/src/case_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6b2ca6f4abd00dab8520c583cb95ea8c0095eb2
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/case_package/Student.java
@@ -0,0 +1,71 @@
+package case_package;
+
+import java.io.Serializable;
+
+public class Student implements Serializable {
+ private String name;
+ private int age;
+ private String address;
+
+
+ public Student() {
+ }
+
+ public Student(String name, int age, String address) {
+ this.name = name;
+ this.age = age;
+ this.address = address;
+ }
+
+ /**
+ * 获取
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ * @return address
+ */
+ public String getAddress() {
+ return address;
+ }
+
+ /**
+ * 设置
+ * @param address
+ */
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + ", address = " + address + "}";
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/case_package/Test1.java b/IO_stream_project/Object_stream_module/src/case_package/Test1.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd6a8e74b1347192a4db3d966e6ea8a9045bff44
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/case_package/Test1.java
@@ -0,0 +1,42 @@
+package case_package;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+
+public class Test1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 需求:
+ 将多个自定义对象序列化到文件中,但是对象的个数不确定,该如何操作?
+ */
+
+ //1、序列化多个对象
+ Student s1 = new Student("zhangsan", 23, "南京");
+ Student s2 = new Student("lisi", 24, "重庆");
+ Student s3 = new Student("wangwu", 25, "北京");
+
+ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("/Users/" +
+ "zhaoxiaoyong/Documents/Java/IO_stream_project/Object_stream_module/src/rough_draft/b.txt"));
+
+ oos.writeObject(s1);
+ oos.writeObject(s2);
+ oos.writeObject(s3);
+
+ oos.close();
+
+ //2、另一种方式
+ ArrayList list = new ArrayList<>();
+ list.add(s1);
+ list.add(s2);
+ list.add(s3);
+
+ ObjectOutputStream oos2 = new ObjectOutputStream(new FileOutputStream("/Users/" +
+ "zhaoxiaoyong/Documents/Java/IO_stream_project/Object_stream_module/src/rough_draft/c.txt"));
+
+ oos2.writeObject(list);
+
+ oos2.close();
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/case_package/Test2.java b/IO_stream_project/Object_stream_module/src/case_package/Test2.java
new file mode 100644
index 0000000000000000000000000000000000000000..805646440508b8c75f449a48d307ea86ca7ccdb3
--- /dev/null
+++ b/IO_stream_project/Object_stream_module/src/case_package/Test2.java
@@ -0,0 +1,39 @@
+package case_package;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.util.ArrayList;
+
+public class Test2 {
+ public static void main(String[] args) throws IOException, ClassNotFoundException {
+
+ //1、创建反序列化流的对象
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream("/Users/zhaoxiaoyong" +
+ "/Documents/Java/IO_stream_project/Object_stream_module/src/rough_draft/b.txt"));
+
+ //2、读取数据
+ Student s1 = (Student) ois.readObject();
+ Student s2 = (Student) ois.readObject();
+ Student s3 = (Student) ois.readObject();
+ //EOFException: Student s4 = (Student) ois.readObject();
+
+ System.out.println(s1);
+ System.out.println(s2);
+ System.out.println(s3);
+
+ //3、释放资源
+ ois.close();
+
+
+ //另一种方式:
+ ObjectInputStream ois2 = new ObjectInputStream(new FileInputStream("/Users/zhaoxiaoyong" +
+ "/Documents/Java/IO_stream_project/Object_stream_module/src/rough_draft/c.txt"));
+
+ ArrayList list = (ArrayList) ois2.readObject();
+ for (Student student : list) {
+ System.out.println(student);
+ }
+ ois2.close();
+ }
+}
diff --git a/IO_stream_project/Object_stream_module/src/rough_draft/a.txt b/IO_stream_project/Object_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..18f17cb83a46954f511e006b590b5e2bb479d9b9
Binary files /dev/null and b/IO_stream_project/Object_stream_module/src/rough_draft/a.txt differ
diff --git a/IO_stream_project/Object_stream_module/src/rough_draft/b.txt b/IO_stream_project/Object_stream_module/src/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..76bd5eb746b698af7d1551f586848cd294e0c1cf
Binary files /dev/null and b/IO_stream_project/Object_stream_module/src/rough_draft/b.txt differ
diff --git a/IO_stream_project/Object_stream_module/src/rough_draft/c.txt b/IO_stream_project/Object_stream_module/src/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2a940fa07eda876e49b21892767f718005f8d559
Binary files /dev/null and b/IO_stream_project/Object_stream_module/src/rough_draft/c.txt differ
diff --git a/IO_stream_project/Print_stream_module/Print_stream_module.iml b/IO_stream_project/Print_stream_module/Print_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Print_stream_module/Print_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo1.java b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..39ac003785f55028d473525881cf9719e3f2aeea
--- /dev/null
+++ b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo1.java
@@ -0,0 +1,36 @@
+package Print_stream_package1;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+
+public class Print_stream_demo1 {
+ public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
+ /*
+ 字节打印流:
+ 构造方法
+ public PrintStream (OutputStream/File/String) 关联字节输出流/文件/文件路径
+ public PrintStream (String fileName, Charset charset) 指定字符编码
+ public PrintStream (OutputStream out, boolean autoFlush) 自动刷新
+ public PrintStream (OutputStream out, boolean autoFlush, String encoding) 指定字符编码且自动刷新
+
+ 成员方法
+ public void write (int b) 将指定的字节写出
+ public void println (XXX) 打印任意数据,自动刷新,自动换行
+ public void print (XXX) 打印任意数据,不换行
+ public void printf (String format, Object...args) 带有占位符的打印语句,不换行
+ */
+
+ //1、创建字节打印流的对象
+ PrintStream ps = new PrintStream(new FileOutputStream("/Users/zhaoxiaoyong/" +
+ "Documents/Java/IO_stream_project/Print_stream_module/src/rough_draft/a.txt"), true, "UTF-8");
+ //2、写出数据
+ ps.println(97);//打印任意数据,自动刷新,自动换行
+ ps.print(true);
+ ps.println();
+ ps.printf("%s 爱上了 %s", "老鼠", "大米");
+ //3、释放资源
+ ps.close();
+ }
+}
diff --git a/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo2.java b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..4af4b1e16f35fb49ddedb90d69dcbae26f4e8c11
--- /dev/null
+++ b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo2.java
@@ -0,0 +1,36 @@
+package Print_stream_package1;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+public class Print_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 字符打印流:
+ 构造方法
+ public PrintWriter (Write/File/String) 关联字节输出流/文件/文件路径
+ public PrintWriter (String fileName, Charset charset) 指定字符编码
+ public PrintWriter (Write, boolean autoFlush) 自动刷新
+ public PrintWriter (Write out, boolean autoFlush, String encoding) 指定字符编码且自动刷新
+
+ 成员方法:
+ public void write (int b) 将指定的字节写出
+ public void println (XXX) 打印任意数据,自动刷新,自动换行
+ public void print (XXX) 打印任意数据,不换行
+ public void printf (String format, Object...args) 带有占位符的打印语句,不换行
+ */
+
+ //1、创建字符打印流的对象
+ PrintWriter pw = new PrintWriter(new FileWriter("/Users/zhaoxiaoyong/" +
+ "Documents/Java/IO_stream_project/Print_stream_module/src/rough_draft/a.txt"), true);
+
+ //2、写出数据
+ pw.println("你好你好!");
+ pw.print("真牛逼呀~");
+ pw.printf("%s爱上了%s", "老鼠", "大米");
+
+ //3、释放资源
+ pw.close();
+ }
+}
diff --git a/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo3.java b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..f438be674e8899436f73532bd21e42c258cd2177
--- /dev/null
+++ b/IO_stream_project/Print_stream_module/src/Print_stream_package1/Print_stream_demo3.java
@@ -0,0 +1,22 @@
+package Print_stream_package1;
+
+import java.io.PrintStream;
+
+public class Print_stream_demo3 {
+ public static void main(String[] args) {
+ // 打印流的应用场景
+
+ //获取打印流的对象,此打印流在虚拟机启动的时候,由虚拟机创建,默认指向控制台
+ PrintStream ps = System.out;
+
+ //调用打印流中的方法println
+ //写出数据,自动换行自动刷新
+ ps.println("123");
+
+ //特殊的打印流,系统中的标准输出流,是不能关闭的,在系统中是唯一的
+ ps.close();
+
+ ps.println("你好你好");
+ System.out.println("12345");
+ }
+}
diff --git a/IO_stream_project/Print_stream_module/src/rough_draft/a.txt b/IO_stream_project/Print_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d82876f52dbac28554b0883c79559dec91905d58
--- /dev/null
+++ b/IO_stream_project/Print_stream_module/src/rough_draft/a.txt
@@ -0,0 +1,2 @@
+你好你好!
+真牛逼呀~老鼠爱上了大米
\ No newline at end of file
diff --git a/IO_stream_project/Zip_stream_module/Zip_stream_module.iml b/IO_stream_project/Zip_stream_module/Zip_stream_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/Zip_stream_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IO_stream_project/Zip_stream_module/src/.DS_Store b/IO_stream_project/Zip_stream_module/src/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..1b597beff5b0f658230c6ea96a71157c536cb31f
Binary files /dev/null and b/IO_stream_project/Zip_stream_module/src/.DS_Store differ
diff --git a/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo1.java b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d8748ec6bd4eeaf1878e133bf118ba5a22ce5c79
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo1.java
@@ -0,0 +1,56 @@
+package Zip_stream_package;
+
+import java.io.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+public class Zip_stream_demo1 {
+ public static void main(String[] args) throws IOException {
+
+ //1、创建一个File表示要解压的压缩包
+ File src = new File("/Users/zhaoxiaoyong/Documents/Java/" +
+ "IO_stream_project/Zip_stream_module/src/aaa.zip");
+
+ //2、创建一个File表示解压的目的地
+ File dest = new File("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Zip_stream_module/src/rough_draft");
+
+ unzip(src, dest);
+
+ }
+
+ //定义一个方法用来解压
+ public static void unzip(File src, File dest) throws IOException {
+ //解压的本质:把压缩包里面的每一个文件或者文件夹读取出来,按照层级拷贝到目的地当中
+
+ //创建一个解压流用来读取压缩包中的数据
+ ZipInputStream zip = new ZipInputStream(new FileInputStream(src));
+ //要先获取到压缩包里面的每一个zipentry对象
+
+ //表示当前在压缩包中获取到的文件或者文件夹
+ ZipEntry entry;
+ while ((entry = zip.getNextEntry()) != null) {
+ System.out.println(entry);
+ if (entry.isDirectory()) {
+ //文件夹:需要在目的地dest处创建一个同样的文件夹
+ File file = new File(dest, entry.toString());
+ file.mkdirs();
+
+ } else {
+ //文件:需要读取到压缩包中的文件,并把他存放到目的地dest文件夹中(按照层级目录进行存放)
+ File file = new File(dest, entry.toString());
+
+ FileOutputStream fos = new FileOutputStream(file);
+ int b;
+ while ((b = zip.read()) != -1) {
+ //写到目的地
+ fos.write(b);
+ }
+ fos.close();
+ //表示在压缩包中的一个文件处理完毕
+ zip.closeEntry();
+ }
+ }
+ zip.close();
+ }
+}
diff --git a/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo2.java b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..9803d1678e083bb34aec14edd3f1b12362326350
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo2.java
@@ -0,0 +1,52 @@
+package Zip_stream_package;
+
+import java.io.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class Zip_stream_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 压缩流:
+ * 需求:把a.txt打包成一个压缩包
+ */
+
+ //1、创建File对象表示要压缩的文件
+ File src = new File("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Zip_stream_module/src/rough_draft/a.txt");
+ //2、创建File对象表示压缩包的位置
+ File dest = new File("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Zip_stream_module/src/rough_draft");
+
+ //3、调用方法用来压缩
+ toZip(src, dest);
+
+ }
+
+ /*
+ * 作用:压缩
+ * 参数一:表示要压缩的文件
+ * 参数二:表示压缩包的位置
+ */
+ public static void toZip(File src, File dest) throws IOException {
+ //1、创建压缩流关联压缩包
+ ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(dest, "a.zip")));
+
+ //2、创建ZipEntry对象,表示压缩包里面的每一个文件和文件夹
+ ZipEntry entry = new ZipEntry("a.txt");
+
+ //3、把ZipEntry对象放到压缩包当中
+ zos.putNextEntry(entry);
+
+ //4、把src文件中的数据写到压缩包当中
+ FileInputStream fis = new FileInputStream(src);
+ int b;
+ while ((b = fis.read()) != -1) {
+ zos.write(b);
+ }
+
+ zos.closeEntry();
+ zos.close();
+
+ }
+}
diff --git a/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo3.java b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..49322f39f7cdadce1cd7e0dee5d878228c71c634
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/Zip_stream_package/Zip_stream_demo3.java
@@ -0,0 +1,70 @@
+package Zip_stream_package;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class Zip_stream_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ * 压缩流
+ * 需求:把rough_draft文件夹压缩成一个压缩包
+ */
+
+ //1、创建File对象表示要压缩的文件夹
+ File src = new File("/Users/zhaoxiaoyong/Documents/" +
+ "Java/IO_stream_project/Zip_stream_module/src/rough_draft");
+ //2、创建File对象表示压缩包放在哪里(压缩包的父级路径)
+ File destParent = src.getParentFile();
+
+ //3、创建File对象表示压缩包的路径
+ File dest = new File(destParent, src.getName() + ".zip");
+
+ //4、创建压缩流关联压缩包
+ ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(dest));
+
+ //5、获取src里面的每一个文件,变成ZipEntry对象,放入到压缩包当中
+
+
+ //6、释放资源
+ zos.close();
+
+ }
+
+ /*
+ * 作用:获取src里面的每一个文件,变成ZipEntry对象,放入到压缩包当中
+ * 参数一:数据源
+ * 参数二:压缩流
+ * 参数三:压缩包内部的路径
+ */
+ public static void toZip(File src, ZipOutputStream zos, String name) throws IOException {
+ //1、进入src文件夹
+ File[] files = src.listFiles();
+ //2、遍历数组
+ for (File file : files) {
+ if (file.isFile()) {
+ //3、判断:文件,变成ZipEntry对象,放入到压缩包当中
+ ZipEntry entry = new ZipEntry(name + "/" + file.getName());
+ zos.putNextEntry(entry);
+ //读取文件中的数据,写到压缩包
+ FileInputStream fis = new FileInputStream(file);
+ int b;
+ while ((b = fis.read()) != -1) {
+ zos.write(b);
+ }
+ fis.close();
+ zos.closeEntry();
+
+
+ } else {
+ //4、判断:文件夹,递归
+ toZip(file, zos, name + "/" + file.getName());
+ }
+
+ }
+
+ }
+}
diff --git a/IO_stream_project/Zip_stream_module/src/aaa.zip b/IO_stream_project/Zip_stream_module/src/aaa.zip
new file mode 100644
index 0000000000000000000000000000000000000000..2b3d4222ec99236cb55e5a33de1553644607210e
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/aaa.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92ae4ceab83cbfbb6b235f7eec70b5a56c020efc6a07e049ab16b1f6b511186c
+size 889
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft.zip b/IO_stream_project/Zip_stream_module/src/rough_draft.zip
new file mode 100644
index 0000000000000000000000000000000000000000..fe3604a050f4e18fd91ea76d570185e2caeb65cd
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8739c76e681f900923b900c9df0ef75cf421d39cabb54650c4b9ad19b6a76d85
+size 22
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/.DS_Store b/IO_stream_project/Zip_stream_module/src/rough_draft/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..1b597beff5b0f658230c6ea96a71157c536cb31f
Binary files /dev/null and b/IO_stream_project/Zip_stream_module/src/rough_draft/.DS_Store differ
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/a.txt b/IO_stream_project/Zip_stream_module/src/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..72943a16fb2c8f38f9dde202b7a70ccc19c52f34
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft/a.txt
@@ -0,0 +1 @@
+aaa
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/a.zip b/IO_stream_project/Zip_stream_module/src/rough_draft/a.zip
new file mode 100644
index 0000000000000000000000000000000000000000..be63c6eb4a860bfb81a8210250d516c3c3ed7106
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft/a.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:321e52eac98bfc12afdf2d8f340c4f9cc5f6c58a0c0eeb56f0bcc91e3ff901ad
+size 130
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/a.txt b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7284ab4d2836271d66b988ae7d037bd6ef0d5d15
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/a.txt
@@ -0,0 +1 @@
+aaaa
\ No newline at end of file
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ccc.txt b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ccc.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2383bd587474492050db93523ca1bb4faf7773a0
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ccc.txt
@@ -0,0 +1 @@
+ccc
\ No newline at end of file
diff --git a/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ddd.txt b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ddd.txt
new file mode 100644
index 0000000000000000000000000000000000000000..902d5ded79147abf96e3a997183f22187b0db7ea
--- /dev/null
+++ b/IO_stream_project/Zip_stream_module/src/rough_draft/aaa/bbb/ddd.txt
@@ -0,0 +1 @@
+dddd
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo1.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..4bb2478c67ad6ec5f49c7333ee0261ec7dd27120
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo2.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..07168068d680b443b3dbab6cd57ad8b653c44b38
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo3.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..4fb222c6144879e31ff05dfebaa559e442942fc8
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo4.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..1976ab8ab9b0bdcb2e3c39b3b1c2a54768215259
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Buffered_stream_demo4.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1$1.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c8f1945d7dc7247bc46d817de122dfe7c4f37742
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1$1.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..d7f9b974d32469a05e46331afab97aad4f178bf7
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo1.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo2.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..14ff1ec52582a4a5f1e7fa519dcdcf5ccf8a17c1
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo2.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo3.class b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..f6e5a83e0272865ee55c7086954676e9468c4625
Binary files /dev/null and b/IO_stream_project/out/production/Buffered_stream_module/Buffered_stream_package1/Case_demo3.class differ
diff --git a/IO_stream_project/out/production/Buffered_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..71ba33577e6662e121a799367cbe34f943e5b5a5
--- /dev/null
+++ b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/a.txt
@@ -0,0 +1,11 @@
+树林里,是谁在停在树枝上叽叽喳喳的唱个不停?是那一只只美丽的黄鹂鸟
+树林里,是谁在参天大树上留下一道道痕迹?是那时光的推移
+生机勃勃的游玩胜地……
+日月如梭……
+转眼三十年过去了
+与子树林游玩
+而树林早已狼狈一片
+饿死的黄鹂鸟
+干枯的树木
+我不禁泪流满面……
+是谁将我的乐园骗走了……
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Buffered_stream_module/rough_draft/b.txt b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e832fb379063313025d90720090e9c92c934d4ba
--- /dev/null
+++ b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/b.txt
@@ -0,0 +1,2 @@
+我真厉害!
+牛逼牛逼大牛逼
diff --git a/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy.txt b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8e83c108ee9226903964df5fd8fbc8269f420d1b
--- /dev/null
+++ b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy.txt
@@ -0,0 +1,9 @@
+1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
+4.将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
+8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏,臣不胜受恩感激。
+9.今当远离,临表涕零,不知所言。
+5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
+6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
+7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
+2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
+3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
diff --git a/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy2.txt b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..541ac7e56e3bf85e869725deef8b0ebd41ff86eb
--- /dev/null
+++ b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/copy2.txt
@@ -0,0 +1,9 @@
+1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
+2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
+3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
+4.将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
+5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
+6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
+7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
+8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏,臣不胜受恩感激。
+9.今当远离,临表涕零,不知所言。
diff --git a/IO_stream_project/out/production/Buffered_stream_module/rough_draft/count.txt b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/count.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bf0d87ab1b2b0ec1a11a3973d2845b42413d9767
--- /dev/null
+++ b/IO_stream_project/out/production/Buffered_stream_module/rough_draft/count.txt
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo1.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..9aa7e110e810bae5a858782efbac355985d024f9
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo2.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f8141fcb0a00fd2e65c43d07a6ab37ba5c531223
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo3.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..7458cf1603dbf0d32e02fa74046f46f0786753b5
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo4.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..8ed7e772bca467e9bb9d18a566ab0aa2a1e859ea
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo4.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo5.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..f24b5dd78ea20ce84734c15da8d09842f158e539
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo5.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo6.class b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo6.class
new file mode 100644
index 0000000000000000000000000000000000000000..51c6869baee0cd09e88aa00a8c7932a1c47bf777
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Input_stream_package2/Byte_stream_demo6.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo1.class b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..69eacac817cd1d6c7d0a91ceed3201281c00e8af
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo2.class b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..8acb783155cb6e44ddd3eb9f9eb6b73a32d1b5a6
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo3.class b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..d1c05beac32498c924abf8d3a7021dec3e1d3665
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo4.class b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..ef845ffa277a56724793e762d2ad5811a6bc1f63
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/Output_stream_package1/Byte_stream_demo4.class differ
diff --git a/IO_stream_project/out/production/Byte_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Byte_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/out/production/Byte_stream_module/rough_draft/a.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Byte_stream_module/rough_draft/b.txt b/IO_stream_project/out/production/Byte_stream_module/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/out/production/Byte_stream_module/rough_draft/b.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Byte_stream_module/rough_draft/c.txt b/IO_stream_project/out/production/Byte_stream_module/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c912b0c613303a6f3c4d46e26468bc29706b7ea9
--- /dev/null
+++ b/IO_stream_project/out/production/Byte_stream_module/rough_draft/c.txt
@@ -0,0 +1,3 @@
+zhaoxiaoyongdashuaige
+6666zhaoxiaoyongdashuaige
+6666
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Byte_stream_module/try_catch_package/Byte_stream_demo9.class b/IO_stream_project/out/production/Byte_stream_module/try_catch_package/Byte_stream_demo9.class
new file mode 100644
index 0000000000000000000000000000000000000000..1b86afc41db595bc3ccc7f7a1e55be0c85471229
Binary files /dev/null and b/IO_stream_project/out/production/Byte_stream_module/try_catch_package/Byte_stream_demo9.class differ
diff --git a/IO_stream_project/out/production/Case_module/NameInfos.txt b/IO_stream_project/out/production/Case_module/NameInfos.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f58f2782a31ebfa3ec5c90c281758a3eeac7db47
--- /dev/null
+++ b/IO_stream_project/out/production/Case_module/NameInfos.txt
@@ -0,0 +1,25 @@
+尉俊锦-男-18-1.0
+崔琴迪-女-22-1.0
+从冉惜-女-21-1.0
+金译寅-男-23-1.0
+司芹茆-女-20-1.0
+车芹茆-女-20-1.0
+淳清桃-女-18-0.5
+唐延望-男-21-1.0
+东琛宇-男-23-1.0
+狄顷乘-女-22-1.0
+管顷乘-女-20-1.0
+安芹茆-女-22-1.0
+戴恺易-男-23-1.0
+家然致-女-21-1.0
+党远新-男-26-0.5
+强勤侃-女-19-1.0
+正俊俊-男-18-0.5
+狐情俏-女-19-1.0
+钟晴璨-女-20-1.0
+冯海启-男-24-1.0
+利旻亦-男-26-1.0
+陆宸康-男-21-1.0
+侯然琨-女-21-1.0
+汝情语-女-18-1.0
+沃铨卿-女-20-1.0
diff --git a/IO_stream_project/out/production/Case_module/case_package1/Login.class b/IO_stream_project/out/production/Case_module/case_package1/Login.class
new file mode 100644
index 0000000000000000000000000000000000000000..acdd99efb2ef30698d4605579e259d4965d98cc6
Binary files /dev/null and b/IO_stream_project/out/production/Case_module/case_package1/Login.class differ
diff --git a/IO_stream_project/out/production/Case_module/case_package1/Roll_counter.class b/IO_stream_project/out/production/Case_module/case_package1/Roll_counter.class
new file mode 100644
index 0000000000000000000000000000000000000000..2e057aea7c357d95efd1f86f4e79b70e812762c8
Binary files /dev/null and b/IO_stream_project/out/production/Case_module/case_package1/Roll_counter.class differ
diff --git a/IO_stream_project/out/production/Case_module/case_package1/Student.class b/IO_stream_project/out/production/Case_module/case_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..e74580aba1139e933e7507301ba312be1aebdc01
Binary files /dev/null and b/IO_stream_project/out/production/Case_module/case_package1/Student.class differ
diff --git a/IO_stream_project/out/production/Case_module/case_package1/Test.class b/IO_stream_project/out/production/Case_module/case_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..832d225a459129a52fa110a7b7fbb8b42b2d9c85
Binary files /dev/null and b/IO_stream_project/out/production/Case_module/case_package1/Test.class differ
diff --git a/IO_stream_project/out/production/Case_module/case_package1/Test2.class b/IO_stream_project/out/production/Case_module/case_package1/Test2.class
new file mode 100644
index 0000000000000000000000000000000000000000..fda798d4aea3485d197f3777a7c5a0e0d6567d14
Binary files /dev/null and b/IO_stream_project/out/production/Case_module/case_package1/Test2.class differ
diff --git a/IO_stream_project/out/production/Case_module/userinfo.txt b/IO_stream_project/out/production/Case_module/userinfo.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3421a25bb8b2ae7f042d090397d782d00a358fbc
--- /dev/null
+++ b/IO_stream_project/out/production/Case_module/userinfo.txt
@@ -0,0 +1 @@
+username=zhangsan&password=123&count=0
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo1.class b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c156dc98d95f7e66822007ff11510c6d0e6941c7
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo1.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo2.class b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..55ed9e895ef0559032e13a8b30e5c87988f3e900
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo2.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo3.class b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..00d323528485dbf2e607290798cba6823a652617
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Case_package/case_demo3.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo1.class b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7b03a515f7fe4ae291c4ca83769b8c4da1553a9d
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo2.class b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..2de964fe8accd4bebf68886f769c91bc19840db0
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo3.class b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..8f90a31223771ff7c4da565ce408c2d69696b2da
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Char_stream_package/Char_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo1.class b/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..fa7ab5958db896bbd016b1a30206bf095e2a4c83
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo2.class b/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..47a1276ba65e176cc9043782ab85b49d11bc3a52
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Read_stream_package/Read_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/Writer_stream_package/Writer_stream_demo1.class b/IO_stream_project/out/production/Char_stream_module/Writer_stream_package/Writer_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f8e9dff484dab9f5851e8887fa0cba4ac51ba940
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/Writer_stream_package/Writer_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c8474f717c2149174a7c13f4df65686e2cbb7493
--- /dev/null
+++ b/IO_stream_project/out/production/Char_stream_module/rough_draft/a.txt
@@ -0,0 +1 @@
+牛逼实在是太厉害啦~
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft/b.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..72a3da122a7c8c617194ceb17f1f98d192309647
--- /dev/null
+++ b/IO_stream_project/out/production/Char_stream_module/rough_draft/b.txt
@@ -0,0 +1 @@
+我我你好厉害!abc我
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft/c.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2326d46d90930efd4a08f2c5966493e46abce3b6
--- /dev/null
+++ b/IO_stream_project/out/production/Char_stream_module/rough_draft/c.txt
@@ -0,0 +1 @@
+務낾笜瞪䚭禨猋笱痤í¿œ
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft2/a.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft2/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d02bfd40632e49ff37c97fc61519dd6ca5396788
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/rough_draft2/a.txt differ
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft2/b.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft2/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e97c52531c33e9813efcaf33d14781a116c9f00a
Binary files /dev/null and b/IO_stream_project/out/production/Char_stream_module/rough_draft2/b.txt differ
diff --git a/IO_stream_project/out/production/Char_stream_module/rough_draft2/c.txt b/IO_stream_project/out/production/Char_stream_module/rough_draft2/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4d75d94747e408bb737ce5866b447bca3a73355e
--- /dev/null
+++ b/IO_stream_project/out/production/Char_stream_module/rough_draft2/c.txt
@@ -0,0 +1 @@
+2-1-9-4-7-8
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Commons_io_module/Commons_io_package/Commons_io_demo1.class b/IO_stream_project/out/production/Commons_io_module/Commons_io_package/Commons_io_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f04ccdb76b6b31d9e9c7ab62d99798aa2afe4e76
Binary files /dev/null and b/IO_stream_project/out/production/Commons_io_module/Commons_io_package/Commons_io_demo1.class differ
diff --git a/IO_stream_project/out/production/Commons_io_module/hutool_package/hutool_demo1.class b/IO_stream_project/out/production/Commons_io_module/hutool_package/hutool_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..b49add87d7d629b7e0c697cd80502ae24160d921
Binary files /dev/null and b/IO_stream_project/out/production/Commons_io_module/hutool_package/hutool_demo1.class differ
diff --git a/IO_stream_project/out/production/Commons_io_module/rough_draft/a.txt b/IO_stream_project/out/production/Commons_io_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c126c096b2a9ae9af55825db3a157f19f4d2c5f
--- /dev/null
+++ b/IO_stream_project/out/production/Commons_io_module/rough_draft/a.txt
@@ -0,0 +1 @@
+我牛逼,我真是个大牛逼~
diff --git a/IO_stream_project/out/production/Commons_io_module/rough_draft/copy.txt b/IO_stream_project/out/production/Commons_io_module/rough_draft/copy.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c126c096b2a9ae9af55825db3a157f19f4d2c5f
--- /dev/null
+++ b/IO_stream_project/out/production/Commons_io_module/rough_draft/copy.txt
@@ -0,0 +1 @@
+我牛逼,我真是个大牛逼~
diff --git a/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Case_demo1.class b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c5727f7dbe68a5cbf258689a2d47bb103d385194
Binary files /dev/null and b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Case_demo1.class differ
diff --git a/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo1.class b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..225e71655f46d14f8bf752e5078dfcbdcd96f053
Binary files /dev/null and b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo2.class b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..70fcd456c7cebc7ae758400f083ebfc4457eddc8
Binary files /dev/null and b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo3.class b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..3b2b46b4e218d2ce071825c8f3108eae341a0363
Binary files /dev/null and b/IO_stream_project/out/production/Convert_stream_module/Convert_stream_package/Convert_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Convert_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Convert_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a7ec974bd626d6a841bf59f0e09372deb835e8f4
--- /dev/null
+++ b/IO_stream_project/out/production/Convert_stream_module/rough_draft/a.txt
@@ -0,0 +1 @@
+ÄãºÃÄãºÃ
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Convert_stream_module/rough_draft/b.txt b/IO_stream_project/out/production/Convert_stream_module/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d3a6a99057fbd9a1ca3f3eecbda9936c1ac4f24d
--- /dev/null
+++ b/IO_stream_project/out/production/Convert_stream_module/rough_draft/b.txt
@@ -0,0 +1,5 @@
+答:案件的争议焦点如下:
+1、A公司是否享有挖掘机的所有权?
+2、A公司是否应向B公司支付挖掘机的保管费和看护费?B公司留置挖掘机的行为是否违法?
+3、B公司转卖挖掘机的行为是否发生物权效力?
+B公司是否需要向A公司进行赔偿或补偿?
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo1.class b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..45c4fa95452b0502531d047374d47758154a0b60
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo2.class b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..7cf766fe59623d9686cafc910913c1eac8b21f55
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Object_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Student.class b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..1369767250e4b782064c527d8d2f06fce6601a1e
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/Object_stream_package/Student.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/case_package/Student.class b/IO_stream_project/out/production/Object_stream_module/case_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..a5601d5a4378ccd039962b0e6db31102287a3c8e
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/case_package/Student.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/case_package/Test1.class b/IO_stream_project/out/production/Object_stream_module/case_package/Test1.class
new file mode 100644
index 0000000000000000000000000000000000000000..2178a734590e8e89b22f17ba99cc303b678c3be9
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/case_package/Test1.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/case_package/Test2.class b/IO_stream_project/out/production/Object_stream_module/case_package/Test2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f87a2dfcb171068a82e82464608feeeb5a721006
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/case_package/Test2.class differ
diff --git a/IO_stream_project/out/production/Object_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Object_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..18f17cb83a46954f511e006b590b5e2bb479d9b9
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/rough_draft/a.txt differ
diff --git a/IO_stream_project/out/production/Object_stream_module/rough_draft/b.txt b/IO_stream_project/out/production/Object_stream_module/rough_draft/b.txt
new file mode 100644
index 0000000000000000000000000000000000000000..76bd5eb746b698af7d1551f586848cd294e0c1cf
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/rough_draft/b.txt differ
diff --git a/IO_stream_project/out/production/Object_stream_module/rough_draft/c.txt b/IO_stream_project/out/production/Object_stream_module/rough_draft/c.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2a940fa07eda876e49b21892767f718005f8d559
Binary files /dev/null and b/IO_stream_project/out/production/Object_stream_module/rough_draft/c.txt differ
diff --git a/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo1.class b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..aa1e68ce1392d95ca6a052370c246ead32348f96
Binary files /dev/null and b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo2.class b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..ab9d308d9a94f5525dd645f2f59b625bb1f45fd1
Binary files /dev/null and b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo3.class b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..1e89e7901ab7f0fa04f7ed9b74fca009cc7f39b1
Binary files /dev/null and b/IO_stream_project/out/production/Print_stream_module/Print_stream_package1/Print_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Print_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Print_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d82876f52dbac28554b0883c79559dec91905d58
--- /dev/null
+++ b/IO_stream_project/out/production/Print_stream_module/rough_draft/a.txt
@@ -0,0 +1,2 @@
+你好你好!
+真牛逼呀~老鼠爱上了大米
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo1.class b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3474e09d9867357492b1221d72c243102ad2fb87
Binary files /dev/null and b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo1.class differ
diff --git a/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo2.class b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f9205b09db664c79151f0953a50ff893ed2cef10
Binary files /dev/null and b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo2.class differ
diff --git a/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo3.class b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..d4c43a597fb3600a6340695281344de50706420c
Binary files /dev/null and b/IO_stream_project/out/production/Zip_stream_module/Zip_stream_package/Zip_stream_demo3.class differ
diff --git a/IO_stream_project/out/production/Zip_stream_module/aaa.zip b/IO_stream_project/out/production/Zip_stream_module/aaa.zip
new file mode 100644
index 0000000000000000000000000000000000000000..2b3d4222ec99236cb55e5a33de1553644607210e
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/aaa.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92ae4ceab83cbfbb6b235f7eec70b5a56c020efc6a07e049ab16b1f6b511186c
+size 889
diff --git a/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.txt b/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..72943a16fb2c8f38f9dde202b7a70ccc19c52f34
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.txt
@@ -0,0 +1 @@
+aaa
diff --git a/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.zip b/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.zip
new file mode 100644
index 0000000000000000000000000000000000000000..be63c6eb4a860bfb81a8210250d516c3c3ed7106
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/rough_draft/a.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:321e52eac98bfc12afdf2d8f340c4f9cc5f6c58a0c0eeb56f0bcc91e3ff901ad
+size 130
diff --git a/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/a.txt b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7284ab4d2836271d66b988ae7d037bd6ef0d5d15
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/a.txt
@@ -0,0 +1 @@
+aaaa
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ccc.txt b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ccc.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2383bd587474492050db93523ca1bb4faf7773a0
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ccc.txt
@@ -0,0 +1 @@
+ccc
\ No newline at end of file
diff --git a/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ddd.txt b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ddd.txt
new file mode 100644
index 0000000000000000000000000000000000000000..902d5ded79147abf96e3a997183f22187b0db7ea
--- /dev/null
+++ b/IO_stream_project/out/production/Zip_stream_module/rough_draft/aaa/bbb/ddd.txt
@@ -0,0 +1 @@
+dddd
\ No newline at end of file
diff --git a/Method_project/.DS_Store b/Method_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..44cb4f68e098d52e2f17dbde100b3a95ae84ab56
Binary files /dev/null and b/Method_project/.DS_Store differ
diff --git a/Method_project/.idea/.gitignore b/Method_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Method_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Method_project/.idea/misc.xml b/Method_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Method_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/.idea/modules.xml b/Method_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f0ed625fc29b341da0bf7aa265bb23878e10fc72
--- /dev/null
+++ b/Method_project/.idea/modules.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/.idea/workspace.xml b/Method_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e8ed39ed54e998f744b245a53268c7205915ad0c
--- /dev/null
+++ b/Method_project/.idea/workspace.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1675771739575
+
+
+ 1675771739575
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_Case_module/Method_Case_module.iml b/Method_project/Method_Case_module/Method_Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_project/Method_Case_module/Method_Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption.java b/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption.java
new file mode 100644
index 0000000000000000000000000000000000000000..480388580da101f8fe12e4777e450af721482ec0
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption.java
@@ -0,0 +1,43 @@
+package Method_Case_project;
+
+public class case10_Digital_encryption {
+ public static void main(String[] args) {
+ /*
+ 某系统的数字密码(大于0)。比如1983,采用加密方式进行传输,
+ 规则如下:
+ 每位数加上5
+ 再对10求余
+ 最后将所有数字反转
+ 得到一串新数
+ */
+
+ //分析:
+ //1、把整数里面的每一位放到数组中
+ int[] arr = {1, 9, 8, 3};
+
+ //2、加密码
+ //每位数加上5
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] += 5;
+ }
+
+ //再对10求余
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] %= 10;
+ }
+
+ //将所有的数字反转
+ for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+
+ //3、把数组里面的每一个数字进行拼接,变成加密之后的结果
+ int number = 0;
+ for (int i = 0; i < arr.length; i++) {
+ number = number * 10 + arr[i];
+ }
+ System.out.println(number);
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption2.java b/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption2.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a1fcb81f39bac317c02bf0f41b63de333be58d4
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case10_Digital_encryption2.java
@@ -0,0 +1,44 @@
+package Method_Case_project;
+
+public class case10_Digital_encryption2 {
+ public static void main(String[] args) {
+ //需求:
+ //把整数上的每一位都添加到数组中
+ //
+
+ //1、计算出数组的长度
+ int number = 12345;
+
+ //定义一个变量临时记录number的值,就是为了第三步的时候再次使用
+ int temp = number;
+
+ //定义一个变量进行统计
+ int count = 0;
+ while (number != 0) {
+ //每一次循环就去掉右边的一个数字
+ number = number / 10;
+ count++;
+ }
+
+ //2、定义数组
+ //动态初始化
+ int[] arr = new int[count];
+
+ //3、把整数上的每一位都添加到数组当中
+ int index = arr.length - 1;
+ while (temp != 0) {
+ //获取temp里面的每一位数组
+ int ge = temp % 10;
+ //再去掉右边的那位数字
+ temp /= 10;
+ //把当前获取的个位添加到数组当中
+ arr[index] = ge;
+ index--;
+ }
+ //验证结果
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i]+" ");
+ }
+ System.out.println();
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case11_Digital_decryption.java b/Method_project/Method_Case_module/src/Method_Case_project/case11_Digital_decryption.java
new file mode 100644
index 0000000000000000000000000000000000000000..52241f16ba614ffba7ab4d9177ad287b108b017c
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case11_Digital_decryption.java
@@ -0,0 +1,47 @@
+package Method_Case_project;
+
+public class case11_Digital_decryption {
+ public static void main(String[] args) {
+ /*
+ 某系统的数字密码(大于0)。比如1983,采用加密方式进行传输,
+ 规则如下:
+ 每位数加上5
+ 再对10求余
+ 最后将所有数字反转
+ 得到一串新数
+
+ 按照以上规则进行解密:
+ 比如1983加密之后变成8346,解密之后变成1983
+ */
+
+ //1、定义数组记录解密之后的结果
+ int[] arr = {8, 3, 4, 6};
+
+ //2、反转
+ for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+ }
+
+ //3、由于加密是通过对10取余的方式进行获取的
+ //所以在解密的时候就需要判断,0~4之间+10 5~9数字不变
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] >= 0 && arr[i] <= 4) {
+ arr[i] = arr[i] + 10;
+ }
+ }
+
+ //4、每一位减5
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] -= 5;
+ }
+
+ //5、获取数组里面的每一位数字拼接成最终的结果
+ int number = 0;
+ for (int i = 0; i < arr.length; i++) {
+ number = number * 10 + arr[i];
+ }
+ System.out.println(number);
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw.java b/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw.java
new file mode 100644
index 0000000000000000000000000000000000000000..e0d53e7ce18041f3b3b62fe280007983e74daf1d
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw.java
@@ -0,0 +1,62 @@
+package Method_Case_project;
+
+import java.util.Random;
+
+public class case12_luck_draw {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 一个大v直播抽奖,奖品是现金红包,分别{2, 588, 888, 1000, 10000}五个奖金
+ 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
+ 打印效果如下:(随机顺序,不一定是下面的顺序)
+ 888元的奖金被抽出
+ 588元的奖金被抽出
+ 10000元的奖金被抽出
+ 1000元的奖金被抽出
+ 2元的奖金被抽出
+ */
+
+ //分析:
+ //1、定义数组表示奖池
+ int[] arr = {2, 588, 888, 1000, 10000};
+
+ //2、定义新数组用于存储抽奖的结果
+ int[] newArr = new int[arr.length];
+
+ //3、抽奖
+ Random r = new Random();
+ //因为有5个奖项,所以这里要循环5次
+ for (int i = 0; i < 5; ) {
+ //获取随机索引
+ int randomIndex = r.nextInt(arr.length);
+ //获取奖项
+ int prize = arr[randomIndex];
+
+ //判断当前的奖项是否存在,如果存在则重新抽取,如果不存在,就表示是有效奖项
+ boolean flag = contains(newArr, prize);
+ if (!flag) {
+ //把当前抽取到的奖项添加到newArr当中
+ newArr[i] = prize;
+ //添加完毕后,移动索引
+ i++;
+ }
+ }
+
+ for (int i = 0; i < newArr.length; i++) {
+ System.out.println(newArr[i]);
+ }
+
+ }
+
+ //判断prize在数组当中是否存在
+ //存在:true
+ //不存在:false
+ public static boolean contains(int[] arr, int prize) {
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] == prize) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw2.java b/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a12b84a6ffeb2ba1bb3f61499c315e5967722dcb
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case12_luck_draw2.java
@@ -0,0 +1,37 @@
+package Method_Case_project;
+
+import java.util.Random;
+
+public class case12_luck_draw2 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 一个大v直播抽奖,奖品是现金红包,分别{2, 588, 888, 1000, 10000}五个奖金
+ 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
+ 打印效果如下:(随机顺序,不一定是下面的顺序)
+ 888元的奖金被抽出
+ 588元的奖金被抽出
+ 10000元的奖金被抽出
+ 1000元的奖金被抽出
+ 2元的奖金被抽出
+ */
+
+ //1、把奖池里面的所有奖项打乱顺序
+ int[] arr = {2, 588, 888, 1000, 10000};
+ Random r = new Random();
+ for (int i = 0; i < arr.length; i++) {
+ //获取随机索引
+ int randomIndex = r.nextInt(arr.length);
+
+ //拿着i跟随机索引上的值进行交换
+ int temp = arr[i];
+ arr[i] = arr[randomIndex];
+ arr[randomIndex] = temp;
+ }
+
+ //2、遍历奖池,从0索引开始获取每一个奖项
+ for (int i = 0; i < arr.length; i++) {
+ System.out.println(arr[i]);
+ }
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case13_Dichromatic_sphere.java b/Method_project/Method_Case_module/src/Method_Case_project/case13_Dichromatic_sphere.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb536dcec11513929b3ce14bff76222bd00715f7
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case13_Dichromatic_sphere.java
@@ -0,0 +1,144 @@
+package Method_Case_project;
+
+import java.util.Random;
+import java.util.Scanner;
+
+public class case13_Dichromatic_sphere {
+ public static void main(String[] args) {
+ //1、生成中奖号码
+ int[] arr = createNumber();
+
+ //2、用户输入彩票号码(红球 + 蓝球)
+ int[] userInputArr = userInputNumber();
+
+ //3、判断用户的中奖情况
+ //红球 蓝球
+ int redCount = 0;
+ int blueCount = 0;
+
+ for (int i = 0; i < userInputArr.length - 1; i++) {
+ int redNumber = userInputArr[i];
+
+ for (int j = 0; j < arr.length - 1; j++) {
+ if (redNumber == arr[j]) {
+ redCount++;
+
+ //如果找到了,那么后面的数字就没有必要继续比较了
+ //跳出内循环,继续判断下一个红球号码是否中奖
+ break;
+ }
+ }
+ }
+
+ //判断蓝球
+ int blueNumber = userInputArr[userInputArr.length - 1];
+ if (blueNumber == arr[arr.length - 1]) {
+ blueCount++;
+ }
+
+ //根据红球的个数以及蓝球的个数来判断中奖情况
+ if (redCount == 6 && blueCount == 1) {
+ System.out.println("恭喜您,中奖1000万!");
+ } else if (redCount == 6 && blueCount == 0) {
+ System.out.println("恭喜您,中奖500万!");
+ } else if (redCount == 5 && blueCount == 1) {
+ System.out.println("恭喜您,中奖3000元!");
+ } else if ((redCount == 5 && blueCount == 0) || (redCount == 4 && blueCount == 1)) {
+ System.out.println("恭喜您,中奖200元!");
+ } else if ((redCount == 4 && blueCount == 0) || (redCount == 3 && blueCount == 1)) {
+ System.out.println("恭喜您,中奖10元!");
+ } else if ((redCount == 2 && blueCount == 1) || (redCount == 1 && blueCount == 1) || (redCount == 0 && blueCount == 1)) {
+ System.out.println("恭喜您,中奖5元!");
+ }else{
+ System.out.println("谢谢参与!");
+ }
+ }
+
+ public static int[] userInputNumber() {
+ //1、创建数组用于添加用户购买的彩票号码
+ //6个红球 1个蓝球 数组长度:7
+ int[] arr = new int[7];
+
+
+ //2、利用键盘录入让用户输入
+ Scanner sc = new Scanner(System.in);
+
+ //让用户输入红球号码
+ for (int i = 0; i < 6; ) {
+ System.out.println("请输入第" + (i + 1) + "个红球号码:");
+ int redNumber = sc.nextInt();
+
+ //redNumber 在1~33 唯一不重复
+ if (redNumber >= 1 && redNumber <= 33) {
+ boolean flag = contains(arr, redNumber);
+ if (!flag) {
+ //不存在
+ //有效的,可以添加到数组当中
+ arr[i] = redNumber;
+ i++;
+ } else {
+ //存在
+ System.out.println("当前红球号码已经存在,请重新输入:");
+ }
+
+ } else {
+ System.out.println("当前红球号码超出范围,请重新输入");
+ }
+ }
+
+ //让用户输入蓝球号码
+ System.out.println("请输入蓝球号码:");
+ //1~16
+ while (true) {
+ int blueNumber = sc.nextInt();
+ if (blueNumber >= 1 && blueNumber <= 16) {
+ arr[arr.length - 1] = blueNumber;
+ break;
+ } else {
+ System.out.println("当前蓝球号码超出范围,请重新输入:");
+ }
+ }
+
+ return arr;
+
+ }
+
+ public static int[] createNumber() {
+ //1、创建数组用于添加中奖号码
+ //6个红球 1个蓝球 数组长度:7
+ int[] arr = new int[7];
+
+ //2、随机生成号码并添加到数组当中
+ //红球:不能重复的 1 2 3 4 5 6
+ //蓝球:可以跟红球号码重复 5
+
+ //生成红球号码并添加到数组当中
+ Random r = new Random();
+ for (int i = 0; i < 6; ) {
+ //获取红球号码
+ int redNumber = r.nextInt(33) + 1;
+ boolean flag = contains(arr, redNumber);
+ if (!flag) {
+ //把红球号码添加到数组当中
+ arr[i] = redNumber;
+ i++;
+ }
+ }
+
+ //生成蓝球号码并添加到数组当中
+ int blueNumber = r.nextInt(16) + 1;
+ arr[arr.length - 1] = blueNumber;
+
+ return arr;
+ }
+
+ //用于判断数字在数组中是否存在
+ public static boolean contains(int[] arr, int number) {
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] == number) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case1_Array_traversal.java b/Method_project/Method_Case_module/src/Method_Case_project/case1_Array_traversal.java
new file mode 100644
index 0000000000000000000000000000000000000000..12b94d9f2168e4a152701b211f728ad4facbaf1c
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case1_Array_traversal.java
@@ -0,0 +1,35 @@
+package Method_Case_project;
+
+public class case1_Array_traversal {
+ public static void main(String[] args) {
+ //1、定义数组
+ int[] arr = {11, 22, 33, 44, 55};
+
+ //2、调用方法遍历数组
+ printArr(arr);
+
+ System.out.println("abc");//先打印abc,再进行换行
+ System.out.print("abc");//只打印abc,不换行
+
+ System.out.println();//不打印任何数据,只做换行处理
+
+ }
+
+ //定义方法用于数组的遍历
+ //1、我要干嘛? 遍历数组
+ //2、我干这件事情需要什么才能完成? 数组
+ //3、方法的调用处是否需要继续使用结果? 不需要返回值
+ public static void printArr(int[] arr){
+ System.out.print("[");
+
+ for (int i = 0; i < arr.length; i++) {
+ if(i==arr.length-1){
+ System.out.print(arr[i]);
+ }else{
+ System.out.print(arr[i]+",");
+ }
+ }
+
+ System.out.println("]");
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case2_Array_max.java b/Method_project/Method_Case_module/src/Method_Case_project/case2_Array_max.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed00b67eaf7028667a7ed1b491170af30050782d
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case2_Array_max.java
@@ -0,0 +1,31 @@
+package Method_Case_project;
+
+public class case2_Array_max {
+ public static void main(String[] args) {
+ //1、定义数组
+ int[] arr = {1, 5, 7, 2, 8, 10};
+
+ //2、调用方法求最大值
+ int max = getMax(arr);
+
+ //3、打印
+ System.out.println(max);
+
+ }
+
+ //1、我要干嘛? 求最大值
+ //2、我干这件事情,需要什么才能完成? 数组
+ //3、是否返回? 返回
+ public static int getMax(int[] arr) {
+ int max = arr[0];
+
+ for (int i = 1; i < arr.length; i++) {
+ if (arr[i] > max) {
+ max = arr[i];
+ }
+ }
+ return max;
+ }
+
+
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case3_Whether_the_data_exists.java b/Method_project/Method_Case_module/src/Method_Case_project/case3_Whether_the_data_exists.java
new file mode 100644
index 0000000000000000000000000000000000000000..931643f7cbd49ce464c76d78b12b0116b0198616
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case3_Whether_the_data_exists.java
@@ -0,0 +1,32 @@
+package Method_Case_project;
+
+public class case3_Whether_the_data_exists {
+ public static void main(String[] args) {
+ //1、定义数组
+ int[] arr = {1, 5, 8, 12, 56, 89, 34, 67};
+
+ //2、判断一个数字在数组中是否存在
+ boolean flag=contains(arr,89);
+
+ System.out.println(flag);
+ }
+
+ //1、我要干嘛? 判断数字在数组中是否存在
+ //2、我干这件事情,需要什么才能完成? 数组,数字
+ //3、调用处是否需要继续使用结果? 返回 true false
+ public static boolean contains(int[] arr, int number) {
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] == number) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+//return break关键字的区别
+//return:其实跟循环没有什么关系,跟方法有关的,表示1结束方法,2返回结果
+// 如果方法执行到了return,那么整个方法全部结束,里面的循环也会随之结束了。
+
+//break关键字
+//其实跟方法没什么关系,结束循环或者switch的。
\ No newline at end of file
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case4_Copy_Array.java b/Method_project/Method_Case_module/src/Method_Case_project/case4_Copy_Array.java
new file mode 100644
index 0000000000000000000000000000000000000000..ddd22101d260e4f30bb73e996b25e51a3c7e5f09
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case4_Copy_Array.java
@@ -0,0 +1,47 @@
+package Method_Case_project;
+
+public class case4_Copy_Array {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 定义一个方法copyOfRange(int[] arr,int from,int to)
+ 功能:
+ 将数组arr中从索引from(包含from)开始。
+ 到索引to结束(不包含to)的元素复制到新数组中,
+ 将新数组返回。
+ */
+
+ //1、定义原始数组
+ int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+ //2、调用方法拷贝数据
+ int[] copyArr = copyOfRange(arr, 3, 7);
+
+ //3、遍历copyArr
+ for (int i = 0; i < copyArr.length; i++) {
+ System.out.print(copyArr[i] + " ");
+ }
+ System.out.println();
+
+ }
+
+ public static int[] copyOfRange(int[] arr, int from, int to) {
+ //1、定义数组
+ //动态:不知道所有元素,要知道存几个元素
+ int[] newArr = new int[to - from];
+
+ //2、把原始数组arr中的from到to上对应的元素,直接拷贝到newArr中
+
+ //伪造索引的思想
+ int index = 0;
+ for (int i = from; i < to; i++) {
+ //格式:数组名[索引] = 数据值
+ newArr[index] = arr[i];
+ index++;
+ }
+
+ //3、把新数组返回
+ return newArr;
+
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case5_Buy_air_tickets.java b/Method_project/Method_Case_module/src/Method_Case_project/case5_Buy_air_tickets.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf301193b50633dd6cc7a16c9cb1ef421d5323f4
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case5_Buy_air_tickets.java
@@ -0,0 +1,65 @@
+package Method_Case_project;
+
+import java.util.Scanner;
+
+public class case5_Buy_air_tickets {
+ public static void main(String[] args) {
+ /*
+ 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
+
+ 按照如下规则计算机票价格:
+ 旺季(5-10月)头等舱9折,经济舱8.5折,
+ 淡季(11月到来年4月)头等舱7折,经济舱6.5折。
+ */
+
+ //分析:
+ //1、键盘录入机票原价、月份、头等舱或经济舱
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入机票的原价:");
+ int ticket = sc.nextInt();
+
+ System.out.println("请输入当前的月份:");
+ int month = sc.nextInt();
+
+ System.out.println("请输入当前购买的舱位 0头等舱 1经济舱");
+ int seat = sc.nextInt();
+
+ //2、先判断月份是旺季还是淡季
+ if (month >= 5 && month <= 10) {
+ //旺季 //3、继续判断当前机票是经济舱还是头等舱
+ ticket = getPrice(ticket, seat, 0.9, 0.85);
+
+ } else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
+ //淡季
+ ticket = getPrice(ticket, seat, 0.7, 0.65);
+
+ } else {
+ //表示键盘录入的月份是一个非法数据
+ System.out.println("键盘录入的月份不合法");
+ }
+
+
+ //4、根据实际情况计算出对应的价格
+ System.out.println(ticket);
+ }
+
+ //1、我要干嘛? 根据舱位和折扣来计算最终的票价
+
+ //2、我干这件事,需要什么才能完成? 原价、舱位、头等舱的折扣、经济舱的折扣
+
+ //3、方法的调用处是否需要使用这个结果? 需要
+
+ public static int getPrice(int ticket, int seat, double v0, double v1) {
+ if (seat == 0) {
+ //头等舱
+ ticket = (int) (ticket * v0);
+ } else if (seat == 1) {
+ //经济舱
+ ticket = (int) (ticket * v1);
+ } else {
+ System.out.println("没有这个舱位");
+ }
+
+ return ticket;
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case6_Find_prime_number.java b/Method_project/Method_Case_module/src/Method_Case_project/case6_Find_prime_number.java
new file mode 100644
index 0000000000000000000000000000000000000000..a83a46e8f0023b97c227d65c9bc08f885237217a
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case6_Find_prime_number.java
@@ -0,0 +1,35 @@
+package Method_Case_project;
+
+public class case6_Find_prime_number {
+ public static void main(String[] args) {
+ //判断 101~200 之间有多少个素数
+ //10
+ //思路一: 2~9
+ //思路二: 2~平方根
+
+ //定义一个变量用来统计有多少个质数
+ int count = 0;
+
+ for (int i = 101; i <= 200; i++) {
+ // i 依次表示循环中的每一个数字
+
+ //继续判断i是否为一个质数
+ boolean flag = true;
+ for (int j = 2; j < i; j++) {
+ // j 表示2~99之间的每一个数字
+ if (i % j == 0) {
+ flag = false;
+ break;
+ }
+ }
+ if (flag) {
+ System.out.println(i + "是质数!");
+ count++;
+ } else {
+ //System.out.println(i + "不是质数!");
+ }
+ }
+
+ System.out.println("一共有" + count + "个质数");
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case7_Verification_Code.java b/Method_project/Method_Case_module/src/Method_Case_project/case7_Verification_Code.java
new file mode 100644
index 0000000000000000000000000000000000000000..495b8002ef2aa5ded11e3d07440769b3c6f114f4
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case7_Verification_Code.java
@@ -0,0 +1,58 @@
+package Method_Case_project;
+
+import java.util.Random;
+
+public class case7_Verification_Code {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 定义方法实现随机产生一个5位的验证码
+ 验证码格式为:
+ 长度为5
+ 前四位是大写字母或者小写字母
+ 最后一位是数字
+ */
+
+ //分析:
+ //A~Z a~z
+ //方法:
+ //在以后如果我们要在一堆没有什么规律的数据中随机抽取
+ //可以先把这些数据放在数组当中
+ //再随机抽取一个索引
+
+ //1、大写字母和小写字母都放在数组当中
+ char[] chs = new char[52];
+
+ for (int i = 0; i < chs.length; i++) {
+ //ASCII码表
+ if (i < 26) {
+ //添加小写字母
+ chs[i] = (char) ('a' + i);
+ } else {
+ //添加大写字母
+ chs[i] = (char) ('A' + i - 26);
+ }
+
+ }
+
+ //定义一个字符串类型的变量,用来记录最终的结果
+ String result = "";
+
+ //2、随机抽取4次
+ Random r = new Random();
+ for (int i = 0; i < 4; i++) {
+ //0~51
+ int randomIndex = r.nextInt(chs.length);
+ //利用随机索引,获取对应元素
+ result += chs[randomIndex];
+ }
+
+ //3、随机抽取一个数字0~9
+ int number = r.nextInt(10);
+
+ //生成最终的结果
+ result += number;
+
+ System.out.println(result);
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case8_Array_element_copy.java b/Method_project/Method_Case_module/src/Method_Case_project/case8_Array_element_copy.java
new file mode 100644
index 0000000000000000000000000000000000000000..c4e9f6358910d844befbf498c0f54c7f20a136bd
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case8_Array_element_copy.java
@@ -0,0 +1,31 @@
+package Method_Case_project;
+
+public class case8_Array_element_copy {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 把一个数组中的元素复制到另一个新数组中去。
+ */
+
+ //分析:
+ //1、定义一个老数组并存储一些元素
+ int[] arr = {1, 2, 3, 4, 5};
+
+ //2、定义一个新数组的长度跟老数组一致
+ int[] newArr = new int[arr.length];
+
+ //3、遍历老数组,得到老数组中的每一个元素,依次存入到新数组当中。
+ for (int i = 0; i < arr.length; i++) {
+ //i 表示老数组中的索引 新数组中的每一个索引
+ //arr[i] 表示老数组中的元素
+
+ newArr[i] = arr[i];
+ }
+
+ //4、新数组中已经存满元素了
+ for (int i = 0; i < newArr.length; i++) {
+ System.out.print(newArr[i] + " ");
+ }
+ System.out.println();
+ }
+}
diff --git a/Method_project/Method_Case_module/src/Method_Case_project/case9_Judges_score.java b/Method_project/Method_Case_module/src/Method_Case_project/case9_Judges_score.java
new file mode 100644
index 0000000000000000000000000000000000000000..407ab66f03776ffd61da3d92776b37392a927590
--- /dev/null
+++ b/Method_project/Method_Case_module/src/Method_Case_project/case9_Judges_score.java
@@ -0,0 +1,89 @@
+package Method_Case_project;
+
+import java.util.Scanner;
+
+public class case9_Judges_score {
+ public static void main(String[] args) {
+ //在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。
+ //选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。
+ //请完成上述过程并计算出选手的得分。
+
+ //分析:
+ //1、定义一个数组,用来存储6名评委的打分(0~100)
+ int[] scores = getScores();
+
+// for (int i = 0; i < scores.length; i++) {
+// System.out.println(scores[i]);
+// }
+
+ //2、求出数组中的最大值
+ int max = getMax(scores);
+
+ //3、求出数组中的最小值
+ int min = getMin(scores);
+
+ //4、求出数组中6个分数的总和
+ int sum = getSum(scores);
+
+ //5、(总和 - 最大值 - 最小值)/ 4
+ int avg = (sum - min - max) / (scores.length - 2);
+
+ //打印结果
+ System.out.println(avg);
+ }
+
+ public static int getSum(int[] scores) {
+ int sum = 0;
+ for (int i = 0; i < scores.length; i++) {
+ sum += scores[i];
+ }
+ return sum;
+ }
+
+ public static int getMax(int[] scores) {
+ int max = scores[0];
+ for (int i = 0; i < scores.length; i++) {
+ if (max < scores[i]) {
+ max = scores[i];
+ }
+ }
+ return max;
+ }
+
+ public static int getMin(int[] scores) {
+ int min = scores[0];
+ for (int i = 0; i < scores.length; i++) {
+ if (min > scores[i]) {
+ min = scores[i];
+ }
+ }
+ return min;
+ }
+
+ //1、我要干嘛? 定义一个数组,用来存储6名评委的打分(0~100)
+ //2、我需要什么? 都不需要
+ //3、干完了这件事情,是否需要返回? 必须返回
+ public static int[] getScores() {
+ //定义数组
+ int[] scores = new int[6];
+
+ //使用键盘录入的形式,输入分数:0~100
+ Scanner sc = new Scanner(System.in);
+
+ for (int i = 0; i < scores.length; ) {
+ System.out.println("请输入评委的打分:");
+ int score = sc.nextInt();
+
+ if (score >= 0 && score <= 100) {
+ scores[i] = score;
+ i++;
+ } else {
+ System.out.println("输入的分数不合法,请重新输入");
+ }
+
+ }
+
+ return scores;
+ }
+
+}
diff --git a/Method_project/Method_definition_module/Method_definition_module.iml b/Method_project/Method_definition_module/Method_definition_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_project/Method_definition_module/Method_definition_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo1.java b/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d1899ebd62d442eddb5371d15e08390dcdfd779
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo1.java
@@ -0,0 +1,23 @@
+package Definition_of_method_with_return_value_package;
+
+public class Method_demo1 {
+ public static void main(String[] args) {
+ //目标:掌握带返回值方法的定义和调用格式
+
+ //直接调用
+ getSum(10, 20, 30);
+
+ //赋值调用
+ int sum = getSum(10, 20, 30);
+ System.out.println(sum);
+
+ //输出调用
+ System.out.println(getSum(10, 40, 30));
+
+ }
+
+ public static int getSum(int num1, int num2, int num3) {
+ int result = num1 + num2 + num3;
+ return result;//返回给方法的调用处
+ }
+}
diff --git a/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo2.java b/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..73cf4135e4482ea280419809411dd99dec1190c0
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Definition_of_method_with_return_value_package/Method_demo2.java
@@ -0,0 +1,29 @@
+package Definition_of_method_with_return_value_package;
+
+public class Method_demo2 {
+ public static void main(String[] args) {
+ //目标:要能区分出什么时候使用带返回值的方法
+ //需求:定义方法,比较两个长方形的面积
+
+ //调用方法获取长方形的面积,再进行比较
+ double area1 = getArea(5.3, 1.7);
+ double area2 = getArea(2.4, 2.7);
+
+ if (area1 > area2) {
+ System.out.println("第一个长方形更大");
+ } else {
+ System.out.println("第二个长方形更大");
+ }
+ }
+
+ //定义一个方法求长方形的面积
+ //1、我要干嘛?求长方形的面积
+ //2、需要什么?长 宽
+ //3、方法的调用处,是否需要继续使用方法的结果
+ //如果要用,那么方法必须有返回值
+ //如果不要用,方法可以写返回值,也可以不写返回值
+ public static double getArea(double len, double width) {
+ double area = len * width;
+ return area;
+ }
+}
diff --git a/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo1.java b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba3022dbb0848745abee07c8c06d498832f13a46
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo1.java
@@ -0,0 +1,13 @@
+package Method_parameter_definition_package;
+
+public class Method_demo1 {
+ public static void main(String[] args) {
+ //目标:掌握带参数方法定义的格式和调用的格式
+ getSum(10, 27);
+ }
+
+ public static void getSum(int num1, int num2) {
+ int result = num1 + num2;
+ System.out.println(result);
+ }
+}
diff --git a/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo2.java b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c676e2f79e6dab47ba60520907a7576dc2ee688
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo2.java
@@ -0,0 +1,19 @@
+package Method_parameter_definition_package;
+
+public class Method_demo2 {
+ public static void main(String[] args) {
+ //需求:定义一个方法,求长方形的周长,将结果在方法中进行打印
+
+ //目标:根据不同的需求,选择定义无参的方法,还是带参数的方法
+ getLength(5.2,1.3);
+ }
+
+ //1、我要干嘛?求长方形的周长
+
+ //2、我干这件事情,需要什么才能完成?长,宽
+ public static void getLength(double len, double width) {
+ double result = (len + width) * 2;
+ System.out.println(result);
+ }
+
+}
diff --git a/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo3.java b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..8220db06adb35624d96393179833fac18b7e06d3
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_parameter_definition_package/Method_demo3.java
@@ -0,0 +1,18 @@
+package Method_parameter_definition_package;
+
+public class Method_demo3 {
+ public static void main(String[] args) {
+ //需求:定义一个方法,求圆的面积,将结果在方法中进行打印。
+ //目标:根据不同的需求,选择定义无参的方法,还是带参的方法
+
+ getArea(1.5);
+ }
+
+ //1、我要干嘛?求圆的面积
+ //2、我干这件事情,需要什么才能完成? 半径的平方 * Pi
+ public static void getArea(double radius) {
+ double result = radius * radius * 3.14;
+ System.out.println(result);
+ }
+
+}
diff --git a/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo1.java b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe5b4b3c006400597f36ca955f14a5373614caa4
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo1.java
@@ -0,0 +1,23 @@
+package Method_simple_definition_package;
+
+public class Method_demo1 {
+ public static void main(String[] args) {
+ //目标:掌握最简单的方法定义和调用的格式
+
+ //调用方法
+ playGame();
+
+ playGame();
+ }
+
+ //定义一个方法
+ public static void playGame(){
+ System.out.println("选人物");
+ System.out.println("准备开局");
+ System.out.println("对线");
+ System.out.println("崩盘");
+ System.out.println("骂队友");
+ System.out.println("送人头");
+ System.out.println("GG");
+ }
+}
diff --git a/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo2.java b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba39dd6e82feaf28c3b71d7ea9f5685aca673747
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo2.java
@@ -0,0 +1,15 @@
+package Method_simple_definition_package;
+
+public class Method_demo2 {
+ public static void main(String[] args) {
+ //目标:利用方法最简单的格式完成当前练习
+ printGFInfo();
+ }
+
+ public static void printGFInfo(){
+ System.out.println("小惠惠");
+ System.out.println("萌妹子");
+ System.out.println("18岁");
+
+ }
+}
diff --git a/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo3.java b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..338b46e288b0a17da8cb5ddcf8059fccc1f54793
--- /dev/null
+++ b/Method_project/Method_definition_module/src/Method_simple_definition_package/Method_demo3.java
@@ -0,0 +1,18 @@
+package Method_simple_definition_package;
+
+public class Method_demo3 {
+ public static void main(String[] args) {
+ //目标:利用方法最简单的格式完成当前练习
+ //需求:在方法里面定义两个变量并求和打印
+
+ getSum();
+ }
+
+ public static void getSum() {
+ int num1 = 10;
+ int num2 = 20;
+
+ int result = num1 + num2;
+ System.out.println(result);
+ }
+}
diff --git a/Method_project/Method_overload_module/Method_overload_module.iml b/Method_project/Method_overload_module/Method_overload_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_project/Method_overload_module/Method_overload_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_overload_module/src/Method_overload_package/Method_overload_demo1.java b/Method_project/Method_overload_module/src/Method_overload_package/Method_overload_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..59fbda7ea317596ff6d9765b12f413bae38183b6
--- /dev/null
+++ b/Method_project/Method_overload_module/src/Method_overload_package/Method_overload_demo1.java
@@ -0,0 +1,40 @@
+package Method_overload_package;
+
+public class Method_overload_demo1 {
+ public static void main(String[] args) {
+ /*
+ 需求:使用方法重载的思想,设计比较两个整数是否相同的方法。
+ 要求:兼容全整数类型(byte,short,int,long)
+ */
+
+ //调用
+ compare((byte) 10, (byte) 20);
+
+ long n1 = 10;
+ long n2 = 70;
+ compare(n1, n2);
+ }
+
+ //会把相同功能的方法名起成一样的名字
+ //好处1:定义方法的时候可以不用那么多单词
+ //好处2:调用方法的时候也不需要那么麻烦了
+ public static void compare(byte b1, byte b2) {
+ System.out.println("byte");
+ System.out.println(b1 == b2);
+ }
+
+ public static void compare(short s1, short s2) {
+ System.out.println("short");
+ System.out.println(s1 == s2);
+ }
+
+ public static void compare(int i1, int i2) {
+ System.out.println("int");
+ System.out.println(i1 == i2);
+ }
+
+ public static void compare(long n1, long n2) {
+ System.out.println("long");
+ System.out.println(n1 == n2);
+ }
+}
diff --git a/Method_project/Method_project.iml b/Method_project/Method_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_project/Method_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_value_passing_module/Method_value_passing_module.iml b/Method_project/Method_value_passing_module/Method_value_passing_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_project/Method_value_passing_module/Method_value_passing_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo1.java b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..13b3561c70401d8f1c09ef59195804c5726bac94
--- /dev/null
+++ b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo1.java
@@ -0,0 +1,15 @@
+package Method_value_passing_package;
+
+public class Method_value_passing_demo1 {
+ public static void main(String[] args) {
+ int number = 100;
+ System.out.println("调用change方法前:" + number);//100
+ change(number);
+ System.out.println("调用change方法后:" + number);//100
+
+ }
+
+ public static void change(int number) {
+ number = 200;
+ }
+}
diff --git a/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo2.java b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..1907614b08a0a696c2f39b0d45fc85e53d10c603
--- /dev/null
+++ b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo2.java
@@ -0,0 +1,16 @@
+package Method_value_passing_package;
+
+public class Method_value_passing_demo2 {
+ public static void main(String[] args) {
+ int number = 100;
+ System.out.println("调用change方法前:" + number);//100
+ number = change(number);
+ System.out.println("调用change方法后:" + number);//200
+
+ }
+
+ public static int change(int number) {
+ number = 200;
+ return number;
+ }
+}
diff --git a/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo3.java b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..3cd4d8d2eb842bcf814fd6c7578d5035645ff915
--- /dev/null
+++ b/Method_project/Method_value_passing_module/src/Method_value_passing_package/Method_value_passing_demo3.java
@@ -0,0 +1,14 @@
+package Method_value_passing_package;
+
+public class Method_value_passing_demo3 {
+ 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;
+ }
+}
diff --git a/Method_project/out/production/Method_Case_module/META-INF/Method_Case_module.kotlin_module b/Method_project/out/production/Method_Case_module/META-INF/Method_Case_module.kotlin_module
new file mode 100644
index 0000000000000000000000000000000000000000..8c840ddb016f7cb30515434c461f671bc32f92d9
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/META-INF/Method_Case_module.kotlin_module differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption.class
new file mode 100644
index 0000000000000000000000000000000000000000..503a16c3ead42b2761ba1539a6c3814d7a87936b
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption2.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption2.class
new file mode 100644
index 0000000000000000000000000000000000000000..a54995e38fe9e6774dc5cc423770301c4b9b2915
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case10_Digital_encryption2.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case11_Digital_decryption.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case11_Digital_decryption.class
new file mode 100644
index 0000000000000000000000000000000000000000..769f67896fc998258c5e3f6bbfbe0e8332d837fc
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case11_Digital_decryption.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw.class
new file mode 100644
index 0000000000000000000000000000000000000000..11fa1cba787f703dd69a35f23a7eb7f22e02cb29
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw2.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw2.class
new file mode 100644
index 0000000000000000000000000000000000000000..84765428f44d4822f98f470c9690b72c23a2358e
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case12_luck_draw2.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case13_Dichromatic_sphere.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case13_Dichromatic_sphere.class
new file mode 100644
index 0000000000000000000000000000000000000000..f8c46101779da06602c22cf8016904f943dd683b
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case13_Dichromatic_sphere.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case14_Two_dimensional_array.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case14_Two_dimensional_array.class
new file mode 100644
index 0000000000000000000000000000000000000000..5622d17311f07313a3a7f81dd3c85a60b5c31219
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case14_Two_dimensional_array.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case1_Array_traversal.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case1_Array_traversal.class
new file mode 100644
index 0000000000000000000000000000000000000000..4787063697098b22d28b61d6d8881fd2a00a4de6
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case1_Array_traversal.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case2_Array_max.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case2_Array_max.class
new file mode 100644
index 0000000000000000000000000000000000000000..b8766cc29fe79f673139ef850ed8186ff00b2625
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case2_Array_max.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case3_Whether_the_data_exists.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case3_Whether_the_data_exists.class
new file mode 100644
index 0000000000000000000000000000000000000000..afd0e041ab5597bfa02af089b6dbe3556b134146
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case3_Whether_the_data_exists.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case4_Copy_Array.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case4_Copy_Array.class
new file mode 100644
index 0000000000000000000000000000000000000000..ec5c5e683b63d7c60e02078055095b7c97996a72
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case4_Copy_Array.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case5_Buy_air_tickets.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case5_Buy_air_tickets.class
new file mode 100644
index 0000000000000000000000000000000000000000..27f9b814f3f22182d6ee198e421534496cd262a5
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case5_Buy_air_tickets.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case6_Find_prime_number.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case6_Find_prime_number.class
new file mode 100644
index 0000000000000000000000000000000000000000..d99acb020c20ba593155ad07a33055adcd3b2c0b
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case6_Find_prime_number.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case7_Verification_Code.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case7_Verification_Code.class
new file mode 100644
index 0000000000000000000000000000000000000000..31d45eaeb2bf787d58ed4f0f9692afb39a4479c2
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case7_Verification_Code.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case8_Array_element_copy.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case8_Array_element_copy.class
new file mode 100644
index 0000000000000000000000000000000000000000..417cf03db344764126fab71f6de6d68a9a76db7c
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case8_Array_element_copy.class differ
diff --git a/Method_project/out/production/Method_Case_module/Method_Case_project/case9_Judges_score.class b/Method_project/out/production/Method_Case_module/Method_Case_project/case9_Judges_score.class
new file mode 100644
index 0000000000000000000000000000000000000000..09087856616f99798183af6bb67fa9aab5026ec4
Binary files /dev/null and b/Method_project/out/production/Method_Case_module/Method_Case_project/case9_Judges_score.class differ
diff --git a/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo1.class b/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..76035e6049cff0ab56174811a6e63d86beb4332b
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo1.class differ
diff --git a/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo2.class b/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..7b4f319a33a9c8eeb1c882a2f6a5e71968215a2d
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Definition_of_method_with_return_value_package/Method_demo2.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo1.class b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3c8e483fe734412bbadcb4487907627b4c1bf53
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo1.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo2.class b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..6415a2c4ec5e0605718ba4a86b07fdd1cbd81c00
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo2.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo3.class b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..cbd40fd17b5f06e83a6bce6ba26d4879e1efc7fe
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_parameter_definition_package/Method_demo3.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo1.class b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7d1bc80e7650302a2ab58b0442478b117dfab9f7
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo1.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo2.class b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..fcced8b4598419e872ee6cc55519b59a2d3e116a
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo2.class differ
diff --git a/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo3.class b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..6f55f9a0bd714a90b6e691450856792e08763c00
Binary files /dev/null and b/Method_project/out/production/Method_definition_module/Method_simple_definition_package/Method_demo3.class differ
diff --git a/Method_project/out/production/Method_module/Method_package/Method_demo1.class b/Method_project/out/production/Method_module/Method_package/Method_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3eeba4a309fa92701b852a4f2d64c93bd64fe8f1
Binary files /dev/null and b/Method_project/out/production/Method_module/Method_package/Method_demo1.class differ
diff --git a/Method_project/out/production/Method_module/Method_package/Method_demo2.class b/Method_project/out/production/Method_module/Method_package/Method_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..745113fa8ccf64729fbf3c8285fd1cc58badb9f8
Binary files /dev/null and b/Method_project/out/production/Method_module/Method_package/Method_demo2.class differ
diff --git a/Method_project/out/production/Method_module/Method_package/Method_demo3.class b/Method_project/out/production/Method_module/Method_package/Method_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..943e5f702ba95637cb974861ad1c5b841b78d2db
Binary files /dev/null and b/Method_project/out/production/Method_module/Method_package/Method_demo3.class differ
diff --git a/Method_project/out/production/Method_overload_module/Method_overload_package/Method_overload_demo1.class b/Method_project/out/production/Method_overload_module/Method_overload_package/Method_overload_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..dfb04855b593b0be9a91d7f93c3cdff1a2261ef1
Binary files /dev/null and b/Method_project/out/production/Method_overload_module/Method_overload_package/Method_overload_demo1.class differ
diff --git a/Method_project/out/production/Method_project/Method_package/Method_demo1.class b/Method_project/out/production/Method_project/Method_package/Method_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3eeba4a309fa92701b852a4f2d64c93bd64fe8f1
Binary files /dev/null and b/Method_project/out/production/Method_project/Method_package/Method_demo1.class differ
diff --git a/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo1.class b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..6b07fac75a20b5aae2fdad83f354124e7dbf6449
Binary files /dev/null and b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo1.class differ
diff --git a/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo2.class b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..269406f63db41dbcf678b41b80127a73a7d0bea1
Binary files /dev/null and b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo2.class differ
diff --git a/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo3.class b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..f187b378883d93ad68c981f69113eb487dd58aea
Binary files /dev/null and b/Method_project/out/production/Method_value_passing_module/Method_value_passing_package/Method_value_passing_demo3.class differ
diff --git a/Method_reference_project/.DS_Store b/Method_reference_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..e1b74eedb873bf7b2946a590ea5d725af63e3b90
Binary files /dev/null and b/Method_reference_project/.DS_Store differ
diff --git a/Method_reference_project/.idea/.gitignore b/Method_reference_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Method_reference_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Method_reference_project/.idea/misc.xml b/Method_reference_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Method_reference_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/.idea/modules.xml b/Method_reference_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..12d3a689ca4ee6d902c354ab08e1f5a1b4dedf68
--- /dev/null
+++ b/Method_reference_project/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/.idea/uiDesigner.xml b/Method_reference_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/Method_reference_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/.idea/workspace.xml b/Method_reference_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..72d0f015311f1275ebbf9f2124cc34293050f0f1
--- /dev/null
+++ b/Method_reference_project/.idea/workspace.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677465084817
+
+
+ 1677465084817
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/Method_reference_module/.DS_Store b/Method_reference_project/Method_reference_module/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..c039855db439280a7d6d6422c5935c565c48a4ec
Binary files /dev/null and b/Method_reference_project/Method_reference_module/.DS_Store differ
diff --git a/Method_reference_project/Method_reference_module/Method_reference_module.iml b/Method_reference_project/Method_reference_module/Method_reference_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/Method_reference_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/Method_reference_module/src/.DS_Store b/Method_reference_project/Method_reference_module/src/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..6daf95cb79719dbed462220deeabcdaab6c13f02
Binary files /dev/null and b/Method_reference_project/Method_reference_module/src/.DS_Store differ
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo1.java b/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..d0d73dc5b0eb2bf9b5ed46f7f387e9a5a73079bd
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo1.java
@@ -0,0 +1,28 @@
+package Method_reference_Case_package;
+
+import Method_reference_package.Student;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Case_demo1 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 集合中存储一些字符串的数据,比如:张三,23。
+ 收集到Student类型的数组当中
+ */
+
+ //1、创建集合并添加元素
+ ArrayList list = new ArrayList<>();
+ Collections.addAll(list, "张无忌,15", "周芷若,14", "赵敏,13", "张强,20", "张三丰,100", "张翠山,40", "张良,35", "王二麻子,37");
+ //2、先把字符串变成Student对象,然后再把Student对象收集起来
+ Student[] arr = list.stream().map(Student::new).toArray(Student[]::new);
+
+ //打印数组
+ System.out.println(Arrays.toString(arr));
+
+
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo2.java b/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e0f9b39b49a77f74a83e8fcb678b88cb60fc13d5
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_Case_package/Case_demo2.java
@@ -0,0 +1,50 @@
+package Method_reference_Case_package;
+
+import Method_reference_package.Student;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.function.Function;
+
+public class Case_demo2 {
+ public static void main(String[] args) {
+ /*
+ 需求:
+ 创建集合添加学生对象
+ 学生对象属性:name, age
+ 要求:
+ 获取姓名并放到数组当中
+ 使用方法引用完成
+
+ 技巧:
+ 1、现在有没有一个方法符合我们当前的需求
+ 2、如果有这样的方法,这个方法是否满足引用的规则
+ 静态 类名::方法名
+ 成员方法 对象名::方法名
+ 构造方法 类名::new
+ */
+
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+ //2、添加元素
+ list.add(new Student("zhangsan",23));
+ list.add(new Student("lisi",24));
+ list.add(new Student("wangwu",25));
+
+ //3、获取姓名并放到数组当中
+ String[] arr1 = list.stream().map(new Function() {
+ @Override
+ public String apply(Student student) {
+ return student.getName();
+ }
+ }).toArray(String[]::new);
+
+ System.out.println(Arrays.toString(arr1));
+
+
+ //方法引用
+ String[] arr2 = list.stream().map(Student::getName).toArray(String[]::new);
+
+ System.out.println(Arrays.toString(arr2));
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1$1.class b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..36c25be98d7c4286e585c56b8aa4a76007da64fa
Binary files /dev/null and b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1$1.class differ
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.class b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..66c62b0b1b71836beda7b8aeb64ba461cb0bdbe1
Binary files /dev/null and b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.class differ
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb3308bb26c83e41608a75955459765d5e43b1fc
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo1.java
@@ -0,0 +1,49 @@
+package Method_reference_package;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Method_reference_demo1 {
+ public static void main(String[] args) {
+ //需求:创建一个数组,进行倒序排列
+ Integer[] arr = {3, 5, 4, 1, 6, 2};
+
+ //匿名内部类
+ Arrays.sort(arr, new Comparator() {
+ @Override
+ public int compare(Integer o1, Integer o2) {
+ return o2 - o1;
+ }
+ });
+
+ System.out.println(Arrays.toString(arr));
+
+ //lambda表达式
+ //因为第二个参数的类型Comparator是一个函数式接口
+ Arrays.sort(arr, (Integer o1, Integer o2) -> {
+ return o2 - o1;
+ });
+ System.out.println(Arrays.toString(arr));
+
+ //lambda表达式简化格式
+ Arrays.sort(arr, (o1, o2) -> o2 - o1);
+ System.out.println(Arrays.toString(arr));
+
+ //方法引用
+ //1、引用处需要是函数式接口
+ //2、被引用的方法需要已经存在
+ //3、被引用方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
+ //4、被引用方法的功能需要满足当前的要求
+
+ //表示引用Method_reference_dome1类里面的subtraction方法
+ //把这个方法当做抽象方法的方法体
+ Arrays.sort(arr, Method_reference_demo1::subtraction);
+
+ System.out.println(Arrays.toString(arr));
+ }
+
+ //可以是Java已经写好的,也可以是一些第三方的工具类
+ public static int subtraction(int num1, int num2) {
+ return num2 - num1;
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo2.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..fca7054cfeedeb09552e932f565589204f91c8fe
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo2.java
@@ -0,0 +1,45 @@
+package Method_reference_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.function.Function;
+
+public class Method_reference_demo2 {
+ public static void main(String[] args) {
+ /*
+ 方法引用(引用静态方法)
+ 格式
+ 类::方法名
+
+ 需求:
+ 集合中有以下数字,要求把他们都变成int类型
+ "1","2","3","4","5"
+ */
+
+ //1、创建集合并添加元素
+ ArrayList list = new ArrayList<>();
+ Collections.addAll(list, "1", "2", "3", "4", "5");
+
+ //2、常规方式
+ ArrayList list2=new ArrayList<>();
+ for (String s : list) {
+ int i = Integer.parseInt(s);
+ list2.add(i);
+ }
+ System.out.println(list2);
+
+ //匿名内部类
+ list.stream().map(new Function() {
+ @Override
+ public Integer apply(String s) {
+ return Integer.parseInt(s);
+ }
+ }).forEach(s -> System.out.print(s + " "));
+ System.out.println();
+
+ //方法引用
+ list.stream().map(Integer::parseInt)
+ .forEach(s -> System.out.print(s + " "));
+ System.out.println();
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo3.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b450d6d9642c767065615da713620a3d6641430
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo3.java
@@ -0,0 +1,49 @@
+package Method_reference_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class Method_reference_demo3 {
+ public void main(String[] args) {
+ /*
+ 方法引用(引用成员方法)
+ 格式:
+ 其他类: 其他类对象::方法名
+ 本类: this::方法名
+ 父类: super::方法名
+
+ 需求:
+ 集合中有一些名字,按照要求过滤数据
+ 数据:"张无忌","周芷若","赵敏","张强","张三丰"
+ 要求:只要以张开头,而且名字是3个字的
+ */
+
+ //1、创建集合
+ ArrayList list = new ArrayList<>();
+ //2、添加数据
+ Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张三丰");
+ //3、过滤数据(只要以张开头,而且名字是3个字的)
+ list.stream()
+ .filter(s -> s.startsWith("张"))
+ .filter(s -> s.length() == 3)
+ .forEach(s -> System.out.print(s + " "));
+ System.out.println();
+
+
+ //其他类: 其他类对象::方法名
+ list.stream().filter(new StringOperation()::stringJudge)
+ .forEach(s -> System.out.print(s + " "));
+ System.out.println();
+
+
+ //本类: this::方法名
+ //静态方法中是没有this的
+ list.stream().filter(this::stringJudge)
+ .forEach(s -> System.out.print(s + " "));
+ System.out.println();
+ }
+
+ public boolean stringJudge(String s) {
+ return s.startsWith("张") && s.length() == 3;
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo4.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c63c7c9652f215814149df9b8085f4d54bac356
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo4.java
@@ -0,0 +1,54 @@
+package Method_reference_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public class Method_reference_demo4 {
+ public static void main(String[] args) {
+ /*
+ 方法引用(引用构造方法)
+ 格式:
+ 类名::new
+
+ 目的:
+ 创建这个类的对象
+
+ 需求:
+ 集合里面存储姓名和年龄,要求封装成Student对象并收集到List集合中
+
+ 方法引用的规则:
+ 1、需要有函数式接口
+ 2、被引用的方法必须已经存在
+ 3、被引用方法的形参和返回值,需要跟抽象方法的形参返回值保持一致
+ 4、被引用方法的功能需要满足当前的需求
+ */
+
+ //1、创建集合对象
+ ArrayList list = new ArrayList<>();
+ //2、添加数据
+ Collections.addAll(list, "张无忌,15", "周芷若,14", "赵敏,13", "张强,20", "张三丰,100", "张翠山,40", "张良,35", "王二麻子,37");
+ //3、封装成Student对象并收集到List集合中
+ //String --> Student
+ List newList = list.stream().map(new Function() {
+ @Override
+ public Student apply(String s) {
+ String[] arr = s.split(",");
+ String name = arr[0];
+ int age = Integer.parseInt(arr[1]);
+
+ return new Student(name, age);
+ }
+ }).collect(Collectors.toList());
+ System.out.println(newList);
+
+
+ //类名::new
+ List newList2 = list.stream()
+ .map(Student::new)
+ .collect(Collectors.toList());
+ System.out.println(newList2);
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo5.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..5ddbfec5fecf59f012480e6dc2dd5cc04527bf58
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo5.java
@@ -0,0 +1,55 @@
+package Method_reference_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.function.Function;
+
+public class Method_reference_demo5 {
+ public static void main(String[] args) {
+ /*
+ 方法引用(类名引用成员方法)
+ 格式:
+ 类名::成员方法
+ 需求:
+ 集合里面一些字符串,要求变成大写后进行输出
+
+ 方法引用的规则:
+ 1、需要有函数式接口
+ 2、被引用的方法必须已经存在
+ 3、被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。
+ 4、被引用方法的功能需要满足当前需求
+
+ 抽象方法形参的详解:
+ 第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
+ 在Stream流当中,第一个参数一般都表示流里面的每一个数据。
+ 假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法
+
+ 第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法。
+
+ 局限性:
+ 不能引用所有类中的成员方法
+ 是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能引用这个类中的方法。
+ */
+
+ //1、创建集合对象
+ ArrayList list = new ArrayList<>();
+ //2、添加数据
+ Collections.addAll(list, "aaa", "bbb", "ccc", "ddd");
+ //3、变成大写后进行输出
+ //String --> String
+ list.stream().map(new Function() {
+ @Override
+ public String apply(String s) {
+ return s.toUpperCase();
+ }
+ }).forEach(s -> System.out.print(s + " "));
+ System.out.println();
+
+
+ //类名::成员方法
+ //map(String::toUpperCase)
+ //拿着流里面的每一个数据,去调用String类中的toUpperCase方法,方法的返回值就是转换之后的结果
+ list.stream().map(String::toUpperCase).forEach(s -> System.out.print(s + " "));
+ System.out.println();
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo6.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..8d8ad6523096b11f31a1a0dd9f462dc313aaa662
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Method_reference_demo6.java
@@ -0,0 +1,43 @@
+package Method_reference_package;
+
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.function.IntFunction;
+
+public class Method_reference_demo6 {
+ public static void main(String[] args) {
+ /*
+ 方法引用(数组的构造方法)
+ 格式:
+ 数据类型[]::new
+ 目的:
+ 创建一个指定类型的数组
+ 需求:
+ 集合中存储一些整数,收集到数组当中
+ 细节:
+ 数组的类型,需要跟流中数据的类型保持一致
+ */
+
+ //1、创建集合并添加元素
+ ArrayList list = new ArrayList<>();
+ Collections.addAll(list, 1, 2, 3, 4, 5);
+
+ //2、收集到数组中
+ Integer[] arr = list.stream().toArray(new IntFunction() {
+ @Override
+ public Integer[] apply(int value) {
+ return new Integer[value];
+ }
+ });
+
+ //3、打印
+ System.out.println(Arrays.toString(arr));
+
+
+ Integer[] arr2 = list.stream().toArray(Integer[]::new);
+ System.out.println(Arrays.toString(arr2));
+
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/StringOperation.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/StringOperation.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8c12d2c33add062c8fb132a9c6d216480b0fc0e
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/StringOperation.java
@@ -0,0 +1,7 @@
+package Method_reference_package;
+
+public class StringOperation {
+ public boolean stringJudge(String s) {
+ return s.startsWith("张") && s.length() == 3;
+ }
+}
diff --git a/Method_reference_project/Method_reference_module/src/Method_reference_package/Student.java b/Method_reference_project/Method_reference_module/src/Method_reference_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e62b4874b4503f07f5ed166a8ec97c30b3f652c
--- /dev/null
+++ b/Method_reference_project/Method_reference_module/src/Method_reference_package/Student.java
@@ -0,0 +1,59 @@
+package Method_reference_package;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String s){
+ String[] arr = s.split(",");
+ String name = arr[0];
+ int age = Integer.parseInt(arr[1]);
+
+ this.name = name;
+ this.age = age;
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + "}";
+ }
+}
diff --git a/Method_reference_project/Method_reference_project.iml b/Method_reference_project/Method_reference_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Method_reference_project/Method_reference_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f4387c13e09e033fdd1eae13c9d1dea8c2412f4b
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..81e6588380a4d8346e3a824fb82f03edc1f1899f
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..924278b00048eec9fec8d5f7939067c4a0eec517
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_Case_package/Case_demo2.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f06193542dfc65fa0ed151c8d3106bc4473c8334
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..e37f21765e448a7ec78113d779854d918ab85bc7
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..628b7bd9ce6cab394d3972f224488fb25b2481a4
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..225ba5027a64004c42f7457355ebe3b7f42829d7
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo2.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo3.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..271c63d2dee76e4b3248788575b3b86de06f6412
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo3.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..964b2df390a0517da66cd7b10eee006718722c79
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..c79240add99ab52253ec7acf1e3335e9b03965be
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo4.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..ad086c6ecd2b73182925326bd2d7886d36f65d9e
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..b4386a905bc96c08c529cd839d0a37ef6236305b
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo5.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6$1.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..45e7780580ca7f0b34b8589722616855b0e2a86d
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6$1.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6.class
new file mode 100644
index 0000000000000000000000000000000000000000..56db4e655eabf07297d6e29dffe5dc0d286aa593
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Method_reference_demo6.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/StringOperation.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/StringOperation.class
new file mode 100644
index 0000000000000000000000000000000000000000..6209cf5a14bd0da82bdf9444c9ced4c35b27d9d5
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/StringOperation.class differ
diff --git a/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Student.class b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..36c7c34b338ee992a8a080efd1e8df79378016c5
Binary files /dev/null and b/Method_reference_project/out/production/Method_reference_module/Method_reference_package/Student.class differ
diff --git a/Network_programming_project/.DS_Store b/Network_programming_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..782dcfa8ecfb3ef9c1b18a6ce3f91fc32391f4c5
Binary files /dev/null and b/Network_programming_project/.DS_Store differ
diff --git a/Network_programming_project/.idea/.gitignore b/Network_programming_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Network_programming_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Network_programming_project/.idea/misc.xml b/Network_programming_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Network_programming_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/.idea/modules.xml b/Network_programming_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..33ad8c7b60c431c64255505bb8ed8e267cfbf5fc
--- /dev/null
+++ b/Network_programming_project/.idea/modules.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/.idea/workspace.xml b/Network_programming_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ccd7bfea8ec4f5032bbc1ad2fcb55b540e94440a
--- /dev/null
+++ b/Network_programming_project/.idea/workspace.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677849270961
+
+
+ 1677849270961
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/Case_module/Case_module.iml b/Network_programming_project/Case_module/Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Network_programming_project/Case_module/Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/Case_module/src/Case_package1/Client.java b/Network_programming_project/Case_module/src/Case_package1/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..b4668b1179dcca0df62293aebd080715c1baa324
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package1/Client.java
@@ -0,0 +1,34 @@
+package Case_package1;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.Socket;
+import java.util.Scanner;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:多次发送数据
+ //服务器:接收多次数据,并打印
+
+ //1、创建Socket对象并连接服务器
+ Socket socket = new Socket("127.0.0.1", 10000);
+
+ //2、写出数据
+ Scanner sc = new Scanner(System.in);
+ OutputStream os = socket.getOutputStream();
+
+ while (true) {
+ System.out.println("请输入您要发送的消息:");
+ String str = sc.nextLine();
+ if ("886".equals(str)) {
+ break;
+ }
+ os.write(str.getBytes());
+ }
+
+ //3、释放资源
+ socket.close();
+
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package1/Server.java b/Network_programming_project/Case_module/src/Case_package1/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a23f541799e2407534f2f08c67fc5ee43811fee
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package1/Server.java
@@ -0,0 +1,32 @@
+package Case_package1;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:多次发送数据
+ //服务器:接收多次数据,并打印
+
+ //1、创建对象绑定10000端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //3、读取数据
+ InputStreamReader isr = new InputStreamReader(socket.getInputStream());
+ int b;
+ while ((b = isr.read()) != -1) {
+ System.out.print((char) b);
+ }
+ System.out.println();
+
+ //4、释放资源
+ socket.close();
+ ss.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package2/Client.java b/Network_programming_project/Case_module/src/Case_package2/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..62b0b3d112850de4cadb1161d39b6bf49e4a5d6b
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package2/Client.java
@@ -0,0 +1,36 @@
+package Case_package2;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:发送一条数据,接收服务端反馈的消息并打印
+ //服务器:接收数据并打印,再给客户端反馈消息
+
+ //1、创建Socket对象并连接服务器
+ Socket socket = new Socket("127.0.0.1", 10000);
+
+ //2、写出数据
+ String str = "见到你很高兴!";
+ OutputStream os = socket.getOutputStream();
+ os.write(str.getBytes());
+
+ //写出一个结束标记
+ socket.shutdownOutput();
+
+ //3、接收服务端回写的数据
+ InputStream is = socket.getInputStream();
+ InputStreamReader isr = new InputStreamReader(is);
+ int b;
+ while ((b = isr.read()) != -1) {
+ System.out.print((char) b);
+ }
+
+ //释放资源
+ socket.close();
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package2/Server.java b/Network_programming_project/Case_module/src/Case_package2/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..b00d631866f3c74bc2b22df8ad78b326df122a6b
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package2/Server.java
@@ -0,0 +1,45 @@
+package Case_package2;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:发送一条数据,接收服务端反馈的消息并打印
+ //服务器:接收数据并打印,再给客户端反馈消息
+
+ //1、创建对象并绑定10000端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、等待客户端连接
+ Socket socket = ss.accept();
+
+ //3、socket中获取输入流读取数据
+ InputStream is = socket.getInputStream();
+ InputStreamReader isr = new InputStreamReader(is);
+ int b;
+ //细节:
+ //read方法会从连接通道中读取数据
+ //但是,需要有一个结束标记,此处的循环才会停止
+ //否则,程序就会一直停在read方法这里,等待读取下面的数据
+ while ((b = isr.read()) != -1) {
+ System.out.print((char) b);
+ }
+ System.out.println();
+
+ //4、回写数据
+ String str="到底有多开心";
+ OutputStream os = socket.getOutputStream();
+ os.write(str.getBytes());
+
+
+ //5、释放资源
+ socket.close();
+ ss.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package3/Client.java b/Network_programming_project/Case_module/src/Case_package3/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..275b20f03cb02b9dbb9b993c14a1aee9fc18aff7
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package3/Client.java
@@ -0,0 +1,35 @@
+package Case_package3;
+
+import java.io.*;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建Socket对象,并连接服务器
+ Socket socket = new Socket("10.196.169.101", 10000);
+
+ //2、读取本地文件中的数据,并写到服务器中
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("Case_module/src/Case_package3/a.jpeg"));
+ BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //往服务器写出结束标记
+ socket.shutdownOutput();
+
+ //3、接收服务器的回写数据
+ BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ String line = br.readLine();
+ System.out.println(line);
+
+ //4、释放资源
+ socket.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package3/Server.java b/Network_programming_project/Case_module/src/Case_package3/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..e41acbfc36003fd4797b10e1ae59d163449dea87
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package3/Server.java
@@ -0,0 +1,40 @@
+package Case_package3;
+
+import java.io.*;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建对象并绑定端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //3、读取数据并保存到本地文件中
+ BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Case_module/src/Case_package3/copy.jpeg"));
+
+ int len;
+ byte[] bytes = new byte[1024];
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes,0,len);
+ }
+
+ //4、回写数据
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
+ bw.write("上传成功");
+ bw.newLine();
+ bw.flush();
+
+ //5、释放资源
+ socket.close();
+ ss.close();
+
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package3/a.jpeg b/Network_programming_project/Case_module/src/Case_package3/a.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..b038f0636878b9a73f8d79d7ea797667aa9e5cbd
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package3/a.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package3/copy.jpeg b/Network_programming_project/Case_module/src/Case_package3/copy.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package3/copy.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package4/Client.java b/Network_programming_project/Case_module/src/Case_package4/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5765d4ac3dc53022cbb9395a1b4a4b5f39d6f5e
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package4/Client.java
@@ -0,0 +1,35 @@
+package Case_package4;
+
+import java.io.*;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建Socket对象,并连接服务器
+ Socket socket = new Socket("10.196.169.101", 10000);
+
+ //2、读取本地文件中的数据,并写到服务器中
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("Case_module/src/Case_package3/a.jpeg"));
+ BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //往服务器写出结束标记
+ socket.shutdownOutput();
+
+ //3、接收服务器的回写数据
+ BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ String line = br.readLine();
+ System.out.println(line);
+
+ //4、释放资源
+ socket.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package4/Server.java b/Network_programming_project/Case_module/src/Case_package4/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..6eb0ff8174c341106102691292b3d1a09ef97efe
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package4/Server.java
@@ -0,0 +1,42 @@
+package Case_package4;
+
+import java.io.*;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.UUID;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建对象并绑定端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //3、读取数据并保存到本地文件中
+ BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
+ String name = UUID.randomUUID().toString().replace("-", "");
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Case_module/src/Case_package4/" + name + ".jpeg"));
+
+ int len;
+ byte[] bytes = new byte[1024];
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //4、回写数据
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
+ bw.write("上传成功");
+ bw.newLine();
+ bw.flush();
+
+ //5、释放资源
+ socket.close();
+ ss.close();
+
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package4/UUIDTest.java b/Network_programming_project/Case_module/src/Case_package4/UUIDTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..db5c4de779bb48a9ce3395f8ceccca65144a598f
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package4/UUIDTest.java
@@ -0,0 +1,11 @@
+package Case_package4;
+
+import java.util.UUID;
+
+public class UUIDTest {
+ public static void main(String[] args) {
+ //生成不同的文件名,解决文件名重复
+ String str = UUID.randomUUID().toString().replace("-", "");
+ System.out.println(str);
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg b/Network_programming_project/Case_module/src/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg b/Network_programming_project/Case_module/src/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package5/Client.java b/Network_programming_project/Case_module/src/Case_package5/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..417a6b68bad07b1819f4cdc9c36e472e8c525caa
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package5/Client.java
@@ -0,0 +1,35 @@
+package Case_package5;
+
+import java.io.*;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建Socket对象,并连接服务器
+ Socket socket = new Socket("10.196.169.101", 10000);
+
+ //2、读取本地文件中的数据,并写到服务器中
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("Case_module/src/Case_package3/a.jpeg"));
+ BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //往服务器写出结束标记
+ socket.shutdownOutput();
+
+ //3、接收服务器的回写数据
+ BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ String line = br.readLine();
+ System.out.println(line);
+
+ //4、释放资源
+ socket.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package5/MyRunnable.java b/Network_programming_project/Case_module/src/Case_package5/MyRunnable.java
new file mode 100644
index 0000000000000000000000000000000000000000..5ef6ef94bf83ab71358da27167b473fc54dc458c
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package5/MyRunnable.java
@@ -0,0 +1,46 @@
+package Case_package5;
+
+import java.io.*;
+import java.net.Socket;
+import java.util.UUID;
+
+public class MyRunnable implements Runnable {
+
+ Socket socket;
+
+ public MyRunnable(Socket socket) {
+ this.socket = socket;
+ }
+
+ @Override
+ public void run() {
+ try {
+ //3、读取数据并保存到本地文件中
+ BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
+ String name = UUID.randomUUID().toString().replace("-", "");
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Case_module/src/Case_package5/" + name + ".jpeg"));
+
+ int len;
+ byte[] bytes = new byte[1024];
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //4、回写数据
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
+ bw.write("上传成功");
+ bw.newLine();
+ bw.flush();
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ //5、释放资源
+ try {
+ socket.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package5/Server.java b/Network_programming_project/Case_module/src/Case_package5/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..c9ae3ad4a79c49a60040ea336de25ee577441199
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package5/Server.java
@@ -0,0 +1,28 @@
+package Case_package5;
+
+import java.io.*;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.UUID;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建对象并绑定端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ while (true) {
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //开启一条线程
+ //一个用户就对应服务端的一条线程
+
+ new Thread(new MyRunnable(socket)).start();
+ }
+
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg b/Network_programming_project/Case_module/src/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg b/Network_programming_project/Case_module/src/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package6/Client.java b/Network_programming_project/Case_module/src/Case_package6/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..9fd25510d1a94d2cb1b4f7d35be23a7a4a251a71
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package6/Client.java
@@ -0,0 +1,35 @@
+package Case_package6;
+
+import java.io.*;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //1、创建Socket对象,并连接服务器
+ Socket socket = new Socket("10.196.169.101", 10000);
+
+ //2、读取本地文件中的数据,并写到服务器中
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream("Case_module/src/Case_package3/a.jpeg"));
+ BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
+ byte[] bytes = new byte[1024];
+ int len;
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //往服务器写出结束标记
+ socket.shutdownOutput();
+
+ //3、接收服务器的回写数据
+ BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ String line = br.readLine();
+ System.out.println(line);
+
+ //4、释放资源
+ socket.close();
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package6/MyRunnable.java b/Network_programming_project/Case_module/src/Case_package6/MyRunnable.java
new file mode 100644
index 0000000000000000000000000000000000000000..c1d4ed1ff2c4e9f2ddd2a21cd5146109a5ade428
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package6/MyRunnable.java
@@ -0,0 +1,46 @@
+package Case_package6;
+
+import java.io.*;
+import java.net.Socket;
+import java.util.UUID;
+
+public class MyRunnable implements Runnable {
+
+ Socket socket;
+
+ public MyRunnable(Socket socket) {
+ this.socket = socket;
+ }
+
+ @Override
+ public void run() {
+ try {
+ //3、读取数据并保存到本地文件中
+ BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
+ String name = UUID.randomUUID().toString().replace("-", "");
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Case_module/src/Case_package6/" + name + ".jpeg"));
+
+ int len;
+ byte[] bytes = new byte[1024];
+ while ((len = bis.read(bytes)) != -1) {
+ bos.write(bytes, 0, len);
+ }
+
+ //4、回写数据
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
+ bw.write("上传成功");
+ bw.newLine();
+ bw.flush();
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ //5、释放资源
+ try {
+ socket.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package6/Server.java b/Network_programming_project/Case_module/src/Case_package6/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f7946d19451dc0412f63ded93ddd55ced30efbc
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package6/Server.java
@@ -0,0 +1,42 @@
+package Case_package6;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //客户端:将本地文件上传到服务器,接收服务器的反馈
+ //服务器:接收客户端上传的文件,上传完毕之后给出反馈
+
+ //创建线程池对象
+ ThreadPoolExecutor pool = new ThreadPoolExecutor(
+ 3,//核心线程数量
+ 16,//线程池总大小
+ 60,//空闲时间
+ TimeUnit.SECONDS,//空闲时间(单位)
+ new ArrayBlockingQueue<>(2),//队列
+ Executors.defaultThreadFactory(),//线程工厂,让线程池如何创建线程对象
+ new ThreadPoolExecutor.AbortPolicy()//阻塞队列
+ );
+
+ //1、创建对象并绑定端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ while (true) {
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //开启一条线程
+ //一个用户就对应服务端的一条线程
+
+ pool.submit(new MyRunnable(socket));
+ }
+
+
+ }
+}
diff --git a/Network_programming_project/Case_module/src/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg b/Network_programming_project/Case_module/src/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/Case_module/src/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg differ
diff --git a/Network_programming_project/Case_module/src/Case_package7/Server.java b/Network_programming_project/Case_module/src/Case_package7/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..9409a4fdd51a493258cd5a544d8b16e53b49b84b
--- /dev/null
+++ b/Network_programming_project/Case_module/src/Case_package7/Server.java
@@ -0,0 +1,33 @@
+package Case_package7;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+
+ //服务器:接收浏览器传来的信息,并打印
+ //在浏览器中输入网址:10.196.169.101:10000
+
+ //1、创建对象绑定10000端口
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、等待客户端来连接
+ Socket socket = ss.accept();
+
+ //3、读取数据
+ InputStreamReader isr = new InputStreamReader(socket.getInputStream());
+ int b;
+ while ((b = isr.read()) != -1) {
+ System.out.print((char) b);
+ }
+ System.out.println();
+
+ //4、释放资源
+ socket.close();
+ ss.close();
+
+ }
+}
diff --git a/Network_programming_project/Network_programming_module/Network_programming_module.iml b/Network_programming_project/Network_programming_module/Network_programming_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Network_programming_project/Network_programming_module/Network_programming_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/Network_programming_module/src/InetAddress_package/InetAddress_demo1.java b/Network_programming_project/Network_programming_module/src/InetAddress_package/InetAddress_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a2c825b500c04ecc04dc17d1c6c426998830175
--- /dev/null
+++ b/Network_programming_project/Network_programming_module/src/InetAddress_package/InetAddress_demo1.java
@@ -0,0 +1,27 @@
+package InetAddress_package;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+public class InetAddress_demo1 {
+ public static void main(String[] args) throws UnknownHostException {
+ /*
+ static InetAddress getByName (String host) 确定主机名称的IP地址,主机名称可以是机器名称,也可以是IP地址
+ String getHostName () 获取此IP地址的主机名
+ String getHostAddress () 返回文本显示中的IP地址字符串
+ */
+
+ //1、获取InetAddress的对象
+ // IP的对象 一台电脑的对象
+ InetAddress address = InetAddress.getByName("10.196.178.239");
+ System.out.println(address);
+
+ String name = address.getHostName();
+ System.out.println(name);
+
+ String ip = address.getHostAddress();
+ System.out.println(ip);
+
+
+ }
+}
diff --git a/Network_programming_project/Network_programming_project.iml b/Network_programming_project/Network_programming_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Network_programming_project/Network_programming_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/TCP_agreement_module/TCP_agreement_module.iml b/Network_programming_project/TCP_agreement_module/TCP_agreement_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Network_programming_project/TCP_agreement_module/TCP_agreement_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Client.java b/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d9b90dcea9edec65f17d9598b28128e4a229ef5
--- /dev/null
+++ b/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Client.java
@@ -0,0 +1,26 @@
+package TCP_agreement_package;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.Socket;
+
+public class Client {
+ public static void main(String[] args) throws IOException {
+ //TCP协议:发送数据
+
+ //1、创建Socket对象
+ //细节:在创建对象的同时会连接服务器
+ // 如果连接不上,代码会报错
+ Socket socket = new Socket("127.0.0.1", 10000);
+
+ //2、可以从连接通道中获取输出流
+ OutputStream os = socket.getOutputStream();
+
+ //写出数据
+ os.write("你好你好".getBytes());
+
+ //3、释放资源
+ os.close();
+ socket.close();
+ }
+}
diff --git a/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Server.java b/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..42df516b8ce6feaf11c4397657fae1f40a866814
--- /dev/null
+++ b/Network_programming_project/TCP_agreement_module/src/TCP_agreement_package/Server.java
@@ -0,0 +1,31 @@
+package TCP_agreement_package;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ //TCP协议,接收数据
+
+ //1、创建对象ServerSocket
+ ServerSocket ss = new ServerSocket(10000);
+
+ //2、监听客户端的链接
+ Socket socket = ss.accept();
+
+ //3、从连接通道中获取输入流读取数据
+ InputStream is = socket.getInputStream();
+ InputStreamReader isr = new InputStreamReader(is);
+ int b;
+ while ((b = isr.read()) != -1) {
+ System.out.print((char) b);
+ }
+
+ //4、释放资源
+ socket.close();
+ ss.close();
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/UDP_agreement_module.iml b/Network_programming_project/UDP_agreement_module/UDP_agreement_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/UDP_agreement_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Network_programming_project/UDP_agreement_module/src/Chat_package/RecieveMessage_demo.java b/Network_programming_project/UDP_agreement_module/src/Chat_package/RecieveMessage_demo.java
new file mode 100644
index 0000000000000000000000000000000000000000..449cd10323e2f2351f6c12e256f81d93477e26ea
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Chat_package/RecieveMessage_demo.java
@@ -0,0 +1,37 @@
+package Chat_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+
+public class RecieveMessage_demo {
+ public static void main(String[] args) throws IOException {
+ /*
+ 按照下面的要求实现程序
+ UDP发送数据:数据来自于键盘录入,直到输入的数据是886,发送数据结束
+ UDP接收数据:因为接收端不知道发送端什么时候停止发送,故采用死循环接收
+ */
+
+ //1、创建对象DatagramSocket的对象
+ DatagramSocket ds = new DatagramSocket(10086);
+
+ //2、接收数据包
+ byte[] bytes = new byte[1024];
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
+
+ while (true) {
+ ds.receive(dp);
+
+ //3、解析数据包
+ byte[] data = dp.getData();
+ int len = dp.getLength();
+ String ip = dp.getAddress().getHostAddress();
+ String name = dp.getAddress().getHostName();
+
+ //4、打印数据
+ System.out.println("ip为:" + ip + ",主机名为:" + name + "的人,发送了数据:" + new String(data, 0, len));
+ }
+
+
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/Chat_package/SendMessage_demo.java b/Network_programming_project/UDP_agreement_module/src/Chat_package/SendMessage_demo.java
new file mode 100644
index 0000000000000000000000000000000000000000..64c75bf6bdbd48d272e1c2d9e310c4d93ad823fc
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Chat_package/SendMessage_demo.java
@@ -0,0 +1,43 @@
+package Chat_package;
+
+import java.io.IOException;
+import java.net.*;
+import java.util.Scanner;
+
+public class SendMessage_demo {
+ public static void main(String[] args) throws IOException {
+ /*
+ 按照下面的要求实现程序
+ UDP发送数据:数据来自于键盘录入,直到输入的数据是886,发送数据结束
+ UDP接收数据:因为接收端不知道发送端什么时候停止发送,故采用死循环接收
+ */
+
+ //1、创建对象DatagramSocket的对象
+ DatagramSocket ds = new DatagramSocket();
+
+ while (true) {
+ //2、打包数据
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入您要说的话:");
+ String str = sc.nextLine();
+
+ if ("886".equals(str)) {
+ break;
+ }
+ byte[] bytes = str.getBytes();
+
+ InetAddress address = InetAddress.getByName("127.0.0.1");
+
+ int port = 10086;
+
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
+
+ //3、发送数据
+ ds.send(dp);
+ }
+
+ //4、释放资源
+ ds.close();
+
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo1.java b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..0fecd2fa57616c9f06ede3948fc7fa5a00713813
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo1.java
@@ -0,0 +1,40 @@
+package Multicast_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+public class ReceiveMessage_demo1 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 组播接收端代码
+ */
+
+ //1、创建MulticastSocket对象
+ MulticastSocket ms = new MulticastSocket(10000);
+
+ //2、将当前本机,添加到224.0.0.1的这一组当中
+ InetAddress address = InetAddress.getByName("224.0.0.1");
+ ms.joinGroup(address);
+
+ //3、创建DatagramPacket数据包对象
+ byte[] bytes = new byte[1024];
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
+
+ //4、接收数据
+ ms.receive(dp);
+
+ //5、解析数据
+ byte[] data = dp.getData();
+ int len = dp.getLength();
+ String ip = dp.getAddress().getHostAddress();
+ String name = dp.getAddress().getHostName();
+
+ System.out.println("ip为:" + ip + ",主机名为:" + name + "的人,发送了数据:" + new String(data, 0, len));
+
+ //6、释放资源
+ ms.close();
+ }
+}
+
diff --git a/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo2.java b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9a722fb977ebfca68a17d7bdf563355ab123f19
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo2.java
@@ -0,0 +1,40 @@
+package Multicast_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.net.UnknownHostException;
+
+public class ReceiveMessage_demo2 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 组播接收端代码
+ */
+
+ //1、创建MulticastSocket对象
+ MulticastSocket ms = new MulticastSocket(10000);
+
+ //2、将当前本机,添加到224.0.0.1的这一组当中
+ InetAddress address = InetAddress.getByName("224.0.0.1");
+ ms.joinGroup(address);
+
+ //3、创建DatagramPacket数据包对象
+ byte[] bytes = new byte[1024];
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
+
+ //4、接收数据
+ ms.receive(dp);
+
+ //5、解析数据
+ byte[] data = dp.getData();
+ int len = dp.getLength();
+ String ip = dp.getAddress().getHostAddress();
+ String name = dp.getAddress().getHostName();
+
+ System.out.println("ip为:" + ip + ",主机名为:" + name + "的人,发送了数据:" + new String(data, 0, len));
+
+ //6、释放资源
+ ms.close();
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo3.java b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..0dda3db701736d11abc380fd16c0c8ffddc29af9
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Multicast_package/ReceiveMessage_demo3.java
@@ -0,0 +1,39 @@
+package Multicast_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+public class ReceiveMessage_demo3 {
+ public static void main(String[] args) throws IOException {
+ /*
+ 组播接收端代码
+ */
+
+ //1、创建MulticastSocket对象
+ MulticastSocket ms = new MulticastSocket(10000);
+
+ //2、将当前本机,添加到224.0.0.1的这一组当中
+ InetAddress address = InetAddress.getByName("224.0.0.1");
+ ms.joinGroup(address);
+
+ //3、创建DatagramPacket数据包对象
+ byte[] bytes = new byte[1024];
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
+
+ //4、接收数据
+ ms.receive(dp);
+
+ //5、解析数据
+ byte[] data = dp.getData();
+ int len = dp.getLength();
+ String ip = dp.getAddress().getHostAddress();
+ String name = dp.getAddress().getHostName();
+
+ System.out.println("ip为:" + ip + ",主机名为:" + name + "的人,发送了数据:" + new String(data, 0, len));
+
+ //6、释放资源
+ ms.close();
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/Multicast_package/SendMessage_demo.java b/Network_programming_project/UDP_agreement_module/src/Multicast_package/SendMessage_demo.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb9acc7047fb66dac83bd1b5b3001b278e230247
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Multicast_package/SendMessage_demo.java
@@ -0,0 +1,34 @@
+package Multicast_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.net.UnknownHostException;
+
+public class SendMessage_demo {
+ public static void main(String[] args) throws IOException {
+ /*
+ 组播发送端代码
+ */
+
+ //创建MulticastSocket对象
+ MulticastSocket ms = new MulticastSocket();
+
+ //创建DatagramPacket对象
+ String s = "你好,你好!";
+ byte[] bytes = s.getBytes();
+ InetAddress address = InetAddress.getByName("224.0.0.1");
+ int port = 10000;
+
+ DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, address, port);
+
+ //调用MulticastSocket发送数据方法发送数据
+ ms.send(datagramPacket);
+
+ //释放资源
+ ms.close();
+
+
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/Multicast_package/broadcast.java b/Network_programming_project/UDP_agreement_module/src/Multicast_package/broadcast.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ea349227339c556ba40ff4016aef4ee4f813ad8
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/Multicast_package/broadcast.java
@@ -0,0 +1,34 @@
+package Multicast_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.net.UnknownHostException;
+
+public class broadcast {
+ public static void main(String[] args) throws IOException {
+ /*
+ 广播发送端代码
+ */
+
+ //创建MulticastSocket对象
+ MulticastSocket ms = new MulticastSocket();
+
+ //创建DatagramPacket对象
+ String s = "你好,你好!";
+ byte[] bytes = s.getBytes();
+ InetAddress address = InetAddress.getByName("224.0.0.1");
+ int port = 10000;
+
+ DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, address, port);
+
+ //调用MulticastSocket发送数据方法发送数据
+ ms.send(datagramPacket);
+
+ //释放资源
+ ms.close();
+
+ }
+
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/ReceiveMessage_package/ReceiveMessage_demo1.java b/Network_programming_project/UDP_agreement_module/src/ReceiveMessage_package/ReceiveMessage_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..154792ba0b29421e3050e174c4b68ddb19211dd5
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/ReceiveMessage_package/ReceiveMessage_demo1.java
@@ -0,0 +1,43 @@
+package ReceiveMessage_package;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+
+public class ReceiveMessage_demo1 {
+ public static void main(String[] args) throws IOException {
+ //接收数据
+
+ //1、创建DatagramSocket对象(快递公司)
+ //细节:
+ //在接收的时候,一定要绑定端口
+ //而且绑定的端口一定要跟发送的端口保持一致
+ DatagramSocket ds = new DatagramSocket(10086);
+
+ //2、接收数据包
+ byte[] bytes = new byte[1024];
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
+
+ //该方法是阻塞的
+ //程序执行到这一步的时候,会在这里死等
+ //等发送端发送消息
+ System.out.println(111111);
+ ds.receive(dp);
+ System.out.println(222222);
+
+ //3、解析数据包
+ byte[] data = dp.getData();
+ int len = dp.getLength();
+ InetAddress address = dp.getAddress();
+ int port = dp.getPort();
+
+ System.out.println("接收到的数据" + new String(data, 0, len));
+ System.out.println("该数据是从" + address + "这台电脑中的" + port + "这个端口发出的");
+
+ //4、释放资源
+ ds.close();
+
+
+ }
+}
diff --git a/Network_programming_project/UDP_agreement_module/src/SendMessage_package/SendMessage_demo1.java b/Network_programming_project/UDP_agreement_module/src/SendMessage_package/SendMessage_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a1e864eed1ce8370710e1496f0c84df25494f63
--- /dev/null
+++ b/Network_programming_project/UDP_agreement_module/src/SendMessage_package/SendMessage_demo1.java
@@ -0,0 +1,32 @@
+package SendMessage_package;
+
+import java.io.IOException;
+import java.net.*;
+
+public class SendMessage_demo1 {
+ public static void main(String[] args) throws IOException {
+ //发送数据
+
+ //1、创建DatagramSocket对象(快递公司)
+ //细节:
+ //绑定端口:以后我们就是通过这个端口往外发送
+ //空参:所有可用的端口中随机一个进行使用
+ //有参:指定端口号进行绑定
+ DatagramSocket ds = new DatagramSocket();//发送端口随机
+
+ //2、打包数据
+ String str = "你好牛逼呀!!!";
+ byte[] bytes = str.getBytes();
+
+ InetAddress address = InetAddress.getByName("127.0.0.1");
+ int port = 10086;//接收端口
+
+ DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
+
+ //3、发送数据
+ ds.send(dp);
+
+ //4、释放资源
+ ds.close();
+ }
+}
diff --git a/Network_programming_project/out/production/Case_module/Case_package1/Client.class b/Network_programming_project/out/production/Case_module/Case_package1/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..84a4c7f09574d6ec252bcf0eaf6529189ffaadc2
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package1/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package1/Server.class b/Network_programming_project/out/production/Case_module/Case_package1/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..e3c869fb20e3267e99d59924dde321bb638975a1
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package1/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package2/Client.class b/Network_programming_project/out/production/Case_module/Case_package2/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..2257c506a950d7a7ee737a549a588ff438e47784
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package2/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package2/Server.class b/Network_programming_project/out/production/Case_module/Case_package2/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..f24750f2ff3dea3ebe0a7023c6e2d8b6d07b0f72
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package2/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package3/Client.class b/Network_programming_project/out/production/Case_module/Case_package3/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..6461cc66fad5eb9e16b1b0d88f2b50f79d438041
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package3/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package3/Server.class b/Network_programming_project/out/production/Case_module/Case_package3/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..517e22430fbfa4deadaa74c6742b0a192a1b0876
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package3/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package3/a.jpeg b/Network_programming_project/out/production/Case_module/Case_package3/a.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..b038f0636878b9a73f8d79d7ea797667aa9e5cbd
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package3/a.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package3/copy.jpeg b/Network_programming_project/out/production/Case_module/Case_package3/copy.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package3/copy.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package4/Client.class b/Network_programming_project/out/production/Case_module/Case_package4/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..82a82d90eea25b02717321d2f09f5fabc320e7f0
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package4/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package4/Server.class b/Network_programming_project/out/production/Case_module/Case_package4/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..55250d5d0b290c3001c5c3393c95ebe60e94838f
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package4/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package4/UUIDTest.class b/Network_programming_project/out/production/Case_module/Case_package4/UUIDTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..2c37f5bb108acb863c4ccf603bcd44f7030ca7cc
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package4/UUIDTest.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg b/Network_programming_project/out/production/Case_module/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package4/dc3c0078663b4cdbb4e0412207a8f76f.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg b/Network_programming_project/out/production/Case_module/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package5/014262320bd242c5bbe9b5614f8aa730.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package5/Client.class b/Network_programming_project/out/production/Case_module/Case_package5/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1cd2067510ae28b2459637cf11b4371b91625d8
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package5/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package5/MyRunnable.class b/Network_programming_project/out/production/Case_module/Case_package5/MyRunnable.class
new file mode 100644
index 0000000000000000000000000000000000000000..7f03e5168ee365e1aa4de8397dd9e0e2dea0980b
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package5/MyRunnable.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package5/Server.class b/Network_programming_project/out/production/Case_module/Case_package5/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d57b76f3aff60d5d3bd52625ac1111a4a09b5
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package5/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg b/Network_programming_project/out/production/Case_module/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package5/b2dc5eb7e2cb4f04afc14fefcfc5965b.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg b/Network_programming_project/out/production/Case_module/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package6/6108087e47024dfeb87ce5d334eac8cd.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package6/Client.class b/Network_programming_project/out/production/Case_module/Case_package6/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..9709cd4dac7470a54fa01a19cd2a5277c0a1944c
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package6/Client.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package6/MyRunnable.class b/Network_programming_project/out/production/Case_module/Case_package6/MyRunnable.class
new file mode 100644
index 0000000000000000000000000000000000000000..d2b0dd67c9a8c3d026126f8c100a6a63e2849875
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package6/MyRunnable.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package6/Server.class b/Network_programming_project/out/production/Case_module/Case_package6/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3c113b7fcef0c9a9c58484551f9bae82fa10cc0
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package6/Server.class differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg b/Network_programming_project/out/production/Case_module/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a0b39af782cd2816c379556d66bbf1a04568d
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package6/e73c9d80dbf24fc1b9af5037a374bf48.jpeg differ
diff --git a/Network_programming_project/out/production/Case_module/Case_package7/Server.class b/Network_programming_project/out/production/Case_module/Case_package7/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..b387d81e18c9e1bda6da274b137da8008797368a
Binary files /dev/null and b/Network_programming_project/out/production/Case_module/Case_package7/Server.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Chat_package/RecieveMessage_demo.class b/Network_programming_project/out/production/Network_programming_module/Chat_package/RecieveMessage_demo.class
new file mode 100644
index 0000000000000000000000000000000000000000..c263fc23635856b83c15637526eae16fd79ae80d
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Chat_package/RecieveMessage_demo.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Chat_package/SendMessage_demo.class b/Network_programming_project/out/production/Network_programming_module/Chat_package/SendMessage_demo.class
new file mode 100644
index 0000000000000000000000000000000000000000..6dc513a5f569f87e05be6b6c96e5fc647fec4df8
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Chat_package/SendMessage_demo.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/InetAddress_package/InetAddress_demo1.class b/Network_programming_project/out/production/Network_programming_module/InetAddress_package/InetAddress_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..aaceea3ddfab7fd8b94b4d23fdf0c64eea5fb5bc
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/InetAddress_package/InetAddress_demo1.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo1.class b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..dc2648977845f2e27541684d6c4bf9ee739cb704
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo1.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo2.class b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..827517749645581fde976cd45293e8e8e4949d2d
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo2.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo3.class b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..52956bfd9464daae167d485c5fa99b717dc0609b
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Multicast_package/ReceiveMessage_demo3.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/Multicast_package/SendMessage_demo.class b/Network_programming_project/out/production/Network_programming_module/Multicast_package/SendMessage_demo.class
new file mode 100644
index 0000000000000000000000000000000000000000..a69339799c8bb5c13678720e67a375dfabd04985
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/Multicast_package/SendMessage_demo.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/ReceiveMessage_package/ReceiveMessage_demo1.class b/Network_programming_project/out/production/Network_programming_module/ReceiveMessage_package/ReceiveMessage_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..edec3c3e2dd37da54707f313d8a41ea7d0b053be
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/ReceiveMessage_package/ReceiveMessage_demo1.class differ
diff --git a/Network_programming_project/out/production/Network_programming_module/SendMessage_package/SendMessage_demo1.class b/Network_programming_project/out/production/Network_programming_module/SendMessage_package/SendMessage_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..1bbc639bfd8917eaa20d023c0635811cc72cfd48
Binary files /dev/null and b/Network_programming_project/out/production/Network_programming_module/SendMessage_package/SendMessage_demo1.class differ
diff --git a/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Client.class b/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..901ea13d85bd7e877d20c327f4ea59e393dabe73
Binary files /dev/null and b/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Client.class differ
diff --git a/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Server.class b/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Server.class
new file mode 100644
index 0000000000000000000000000000000000000000..bb2d67f7c784ada8fa856fa41fc00bad3dc2c868
Binary files /dev/null and b/Network_programming_project/out/production/TCP_agreement_module/TCP_agreement_package/Server.class differ
diff --git a/Object_Oriented_project/.DS_Store b/Object_Oriented_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..a1e7a5c3b31e2d388ab5a7d4447d354dce85ed73
Binary files /dev/null and b/Object_Oriented_project/.DS_Store differ
diff --git a/Object_Oriented_project/.idea/.gitignore b/Object_Oriented_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Object_Oriented_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Object_Oriented_project/.idea/misc.xml b/Object_Oriented_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Object_Oriented_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/.idea/modules.xml b/Object_Oriented_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b0f16d29aa1d454e2bac69e2b658b9527eda834
--- /dev/null
+++ b/Object_Oriented_project/.idea/modules.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/.idea/uiDesigner.xml b/Object_Oriented_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/Object_Oriented_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/.idea/workspace.xml b/Object_Oriented_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cc51cb0db1d6b146cc1fe6cf4f809bff3afa86e6
--- /dev/null
+++ b/Object_Oriented_project/.idea/workspace.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "keyToString": {
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "jdk.selected.JAVA_MODULE": "openjdk-18",
+ "last_opened_file_path": "/Users/zhaoxiaoyong/Documents/Java/Object_Oriented_project",
+ "settings.editor.selected.configurable": "reference.settingsdialog.IDE.editor.colors.Java"
+ }
+}
+
+
+
+
+
+
+
+
+
+ 1675910663144
+
+
+ 1675910663144
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/Object_Oriented_Advanced_extends_module.iml b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/Object_Oriented_Advanced_extends_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/Object_Oriented_Advanced_extends_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Animal.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..19c6336a083341dbf46e01d9943f270aa70119e6
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Animal.java
@@ -0,0 +1,18 @@
+package extends_package1;
+
+public class Animal {
+
+ //权限修饰符
+ //private:子类就无法访问了
+ //私有:只能在本类中访问
+
+ //注意事项:
+ //子类只能访问父类中非私有的成员
+ public void eat() {
+ System.out.println("吃东西");
+ }
+
+ public void drink() {
+ System.out.println("喝水");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Cat.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Cat.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6434f40ca1982ebc3ebd24b08479c8edfa0caad
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Cat.java
@@ -0,0 +1,8 @@
+package extends_package1;
+
+public class Cat extends Animal{
+ public void catchMouse(){
+ System.out.println("猫在抓老鼠");
+ }
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e638e9b0c0aa5d713cd48aa07ecd9e2f5a5d7da
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Dog.java
@@ -0,0 +1,7 @@
+package extends_package1;
+
+public class Dog extends Animal{
+ public void lookHome(){
+ System.out.println("狗看家");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Husky.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Husky.java
new file mode 100644
index 0000000000000000000000000000000000000000..237c794f4710104799beec15876d7ebcae17d266
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Husky.java
@@ -0,0 +1,7 @@
+package extends_package1;
+
+public class Husky extends Dog{
+ public void breakHome(){
+ System.out.println("哈士奇在拆家");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/LiHua.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/LiHua.java
new file mode 100644
index 0000000000000000000000000000000000000000..873804c49b2f09a450d905b585ff8cc3ca5a5f02
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/LiHua.java
@@ -0,0 +1,4 @@
+package extends_package1;
+
+public class LiHua extends Cat{
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Ragdoll.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Ragdoll.java
new file mode 100644
index 0000000000000000000000000000000000000000..89a6a6a9a6a765dad7e8718e4ddc35c3b40a0e20
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Ragdoll.java
@@ -0,0 +1,6 @@
+package extends_package1;
+
+//布偶猫
+public class Ragdoll extends Cat{
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Teddy.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Teddy.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ecbc643c868e23f834cf5e3054730bb9e1472bd
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Teddy.java
@@ -0,0 +1,7 @@
+package extends_package1;
+
+public class Teddy extends Dog{
+ public void touch(){
+ System.out.println("泰迪又在蹭我的腿了~");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f5b60a4848c703aa0df2dd9d2c645f61d914b63
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package1/Test.java
@@ -0,0 +1,23 @@
+package extends_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象并调用方法
+
+ //1、创建布偶猫的对象
+ Ragdoll rd = new Ragdoll();
+ rd.eat();
+ rd.drink();
+ rd.catchMouse();
+
+ System.out.println("================");
+
+ //2、创建哈士奇的对象
+ Husky h=new Husky();
+ h.eat();
+ h.drink();
+ h.lookHome();
+ h.breakHome();
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..99639aaf1fa507f531ea19d731d855e078e1eac1
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package2/Test.java
@@ -0,0 +1,38 @@
+package extends_package2;
+
+public class Test {
+ public static void main(String[] args) {
+ //利用空参构造创建子类对象
+ Zi z1 = new Zi();
+
+ //利用带参构造创建子类对象
+ // error: Zi z2 = new Zi("张三",23);
+
+
+ }
+}
+
+class Fu {
+ String name;
+ int age;
+
+ public Fu() {
+ }
+
+ public Fu(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+}
+
+
+class Zi extends Fu {
+ //如果一个类中没有构造方法,虚拟机会自动的给你添加一个默认的空参构造
+
+ //子类可以继承父类哪些内容?
+ /*
+ 构造方法: 非私有 不能 private 不能
+ 成员变量: 非私有 能 private 能
+ 成员方法: 虚方法表 能 否则 不能
+ */
+}
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test1.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test1.java
new file mode 100644
index 0000000000000000000000000000000000000000..4da3c84871847fb9bcefecf345343e7e38e2e8d9
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test1.java
@@ -0,0 +1,36 @@
+package extends_package3;
+
+public class Test1 {
+ public static void main(String[] args) {
+ Zi z = new Zi();
+ z.ziShow();
+ }
+}
+
+class Ye {
+ String name = "Ye";
+}
+
+class Fu extends Ye {
+ String name = "Fu";
+ String hobby = "喝茶";
+}
+
+class Zi extends Fu {
+ String name = "Zi";
+ String game = "吃鸡";
+
+ public void ziShow() {
+ String name = "ziShow";
+ System.out.println(name);//ziShow
+ System.out.println(this.name);//Zi
+ System.out.println(super.name);//Fu
+
+ System.out.println(game);//吃鸡
+ System.out.println(this.game);
+
+ System.out.println(super.hobby);//喝茶
+ System.out.println(this.hobby);
+ System.out.println(hobby);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test2.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test2.java
new file mode 100644
index 0000000000000000000000000000000000000000..339d9d45ffde92c395307de99ecc1c7bf5368452
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package3/Test2.java
@@ -0,0 +1,61 @@
+package extends_package3;
+
+/*
+方法重写:
+ 1、重写方法的名称、形参列表必须与父类中的一致
+ 2、子类重写父类方法时,访问权限子类必须大于等于父类
+ 3、子类重写父类方法时,返回值类型子类必须小于等于父类
+ 4、建议:重写的方法尽量和父类保持一致
+ 5、只有被添加到虚方法表中的方法才能被重写
+ */
+
+public class Test2 {
+ public static void main(String[] args) {
+ overseasStudent s = new overseasStudent();
+ s.lunch();
+ }
+}
+
+class Person {
+ public void eat() {
+ System.out.println("吃米饭,吃菜");
+ }
+
+ public void drink() {
+ System.out.println("喝开水");
+ }
+}
+
+class Student extends Person {
+ public void lunch() {
+ //先在本类中查看eat和drink方法,就会调用子类的,如果没有,就会调用从父类中继承下来的eat和drink方法
+ this.eat();
+ this.drink();
+
+ //直接调用父类中的eat和drink方法
+ super.eat();
+ super.drink();
+ }
+}
+
+//留学生
+class overseasStudent extends Person{
+ public void lunch(){
+ this.eat();
+ this.drink();
+
+ super.eat();
+ super.drink();
+ }
+
+ //应用场景:当父类中方法,不能满足子类现在的需求时,我们就需要把这个方法进行重写
+ //注意:子类中重写的方法上面需要加上@override
+ @Override
+ public void eat() {
+ System.out.println("吃意大利面");
+ }
+ @Override
+ public void drink() {
+ System.out.println("喝凉水");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/ChineseDog.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/ChineseDog.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc165fc56d5b7524a4b11d75f277e23cdb48a403
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/ChineseDog.java
@@ -0,0 +1,8 @@
+package extends_package4;
+
+public class ChineseDog extends Dog {
+ @Override
+ public void eat() {
+ System.out.println("吃剩饭");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a406bd7fd90cdf797980195d3df08f47a767c08
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Dog.java
@@ -0,0 +1,16 @@
+package extends_package4;
+
+public class Dog {
+
+ public void eat(){
+ System.out.println("狗在吃狗粮");
+ }
+
+ public void drink(){
+ System.out.println("狗在喝水");
+ }
+
+ public void lookHome(){
+ System.out.println("狗在看家");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/DogTest.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/DogTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f21b0fc86bea71980982deafc06f2434e180869d
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/DogTest.java
@@ -0,0 +1,18 @@
+package extends_package4;
+
+public class DogTest {
+ public static void main(String[] args) {
+ //创建对象并调用方法
+ Husky h = new Husky();
+ h.eat();
+ h.drink();
+ h.lookHome();
+ h.breakHome();
+
+
+ ChineseDog cd=new ChineseDog();
+ cd.eat();
+ cd.drink();
+ cd.lookHome();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Husky.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Husky.java
new file mode 100644
index 0000000000000000000000000000000000000000..168b20c06b34684a0c778cf6c31b0b48a7ca2f01
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/Husky.java
@@ -0,0 +1,9 @@
+package extends_package4;
+
+public class Husky extends Dog {
+
+ //哈士奇有一个额外的方法 拆家
+ public void breakHome(){
+ System.out.println("哈士奇又在拆家了");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/SharPei.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/SharPei.java
new file mode 100644
index 0000000000000000000000000000000000000000..65051a00f2876b9334be63632c76587b03bbdb46
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package4/SharPei.java
@@ -0,0 +1,13 @@
+package extends_package4;
+
+public class SharPei extends Dog {
+ //因为沙皮狗吃的是狗粮和骨头
+ //父类中的方法不能满足我们的需求了,所以需要进行重写
+
+
+ @Override
+ public void eat() {
+ super.eat();
+ System.out.println("狗啃骨头");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Person.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Person.java
new file mode 100644
index 0000000000000000000000000000000000000000..19658445e9eb4b4f0bf571488891625f63b63720
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Person.java
@@ -0,0 +1,15 @@
+package extends_package5;
+
+public class Person {
+ String name;
+ int age;
+
+ public Person(){
+ System.out.println("父类的无参构造");
+ }
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3fd2afcded5a82bb77dcb8af1c5e47699009a17
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Student.java
@@ -0,0 +1,14 @@
+package extends_package5;
+
+public class Student extends Person {
+ public Student() {
+ //子类构造方法中隐藏的super()去访问父类的无参构造
+ super();
+ System.out.println("子类的无参构造");
+ }
+
+ public Student(String name, int age) {
+ super(name, age);
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..40eacf331d296cdf4576c5cca5799a963805121e
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package5/Test.java
@@ -0,0 +1,10 @@
+package extends_package5;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建学生对象
+ Student s = new Student("张三", 23);
+
+ System.out.println(s.name + ", " + s.age);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..eecd5f4a16299682fcb8c01cfc314948ba2b5b96
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Student.java
@@ -0,0 +1,23 @@
+package extends_package6;
+
+public class Student {
+ String name;
+ int age;
+ String school;
+
+ //需求:
+ //默认为清华大学
+
+
+ public Student() {
+ //表示调用本类其他构造方法
+ //细节:虚拟机就不会再添加super();
+ this(null,0,"清华大学");
+ }
+
+ public Student(String name, int age, String school) {
+ this.name = name;
+ this.age = age;
+ this.school = school;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..590dabb0ad325ad235b321e917ea653ced026c6c
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package6/Test.java
@@ -0,0 +1,8 @@
+package extends_package6;
+
+public class Test {
+ public static void main(String[] args) {
+ Student s = new Student();
+ System.out.println(s.school);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Cook.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Cook.java
new file mode 100644
index 0000000000000000000000000000000000000000..40611a784b8c85a3833bddcf4cd47fd5ff0d4942
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Cook.java
@@ -0,0 +1,15 @@
+package extends_package7;
+
+public class Cook extends Employee {
+ public Cook() {
+ }
+
+ public Cook(String id, String name, double salary) {
+ super(id, name, salary);
+ }
+
+ @Override
+ public void work() {
+ System.out.println("厨师正在炒菜");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Employee.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Employee.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5fce1582795f08b46d158bbc8a426311466ddde
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Employee.java
@@ -0,0 +1,55 @@
+package extends_package7;
+
+public class Employee {
+ //1、类名见名知意
+ //2、所有的成员变量都需要私有
+ //3、构造方法(空参 带全部参数的构造)
+ //4、get/set
+
+ private String id;
+ private String name;
+ private double salary;
+
+ public Employee() {
+ }
+
+ public Employee(String id, String name, double salary) {
+ this.id = id;
+ this.name = name;
+ this.salary = salary;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public double getSalary() {
+ return salary;
+ }
+
+ public void setSalary(double salary) {
+ this.salary = salary;
+ }
+
+ //工作
+ public void work(){
+ System.out.println("员工在工作");
+ }
+
+ //吃饭
+ public void eat(){
+ System.out.println("吃米饭");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Manager.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Manager.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6e9fe31b23572aa4d22f0d934a630e657bcce58
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Manager.java
@@ -0,0 +1,27 @@
+package extends_package7;
+
+public class Manager extends Employee {
+ private double bouns;
+
+ public Manager(){
+ }
+
+ public Manager(String id, String name, double salary, double bouns) {
+ super(id, name, salary);
+ this.bouns = bouns;
+ }
+
+ public double getBouns() {
+ return bouns;
+ }
+
+ public void setBouns(double bouns) {
+ this.bouns = bouns;
+ }
+
+ //工作
+ @Override
+ public void work() {
+ System.out.println("管理其他人");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd3da13b9899bdf23679314d8aa313c0fa92b01d
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_extends_module/src/extends_package7/Test.java
@@ -0,0 +1,19 @@
+package extends_package7;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象并赋值调用
+ Manager m = new Manager("001", "张三", 15000, 8000);
+ System.out.println(m.getId() + ", " + m.getName() + ", " +
+ m.getSalary() + ", " + m.getBouns());
+
+ m.work();
+ m.eat();
+
+ Cook c = new Cook();
+ c.setId("002");
+ c.setName("李四");
+ c.setSalary(8000);
+ System.out.println(c.getId() + ", " + c.getName() + ", " + c.getSalary());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/Object_Oriented_Advanced_module.iml b/Object_Oriented_project/Object_Oriented_Advanced_module/Object_Oriented_Advanced_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/Object_Oriented_Advanced_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Animal.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..caa010cb5b5c9924ba1c272d7060ae31a967d64d
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Animal.java
@@ -0,0 +1,6 @@
+package Anonymous_Inner_Class_package1;
+
+public abstract class Animal {
+ public abstract void eat();
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb01124742a1a28c8313ca5d222912f902c05ff3
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Dog.java
@@ -0,0 +1,8 @@
+package Anonymous_Inner_Class_package1;
+
+public class Dog extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("狗吃骨头");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Swim.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Swim.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc82029e14c4efa33bd66e83bad808aafa881684
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Swim.java
@@ -0,0 +1,5 @@
+package Anonymous_Inner_Class_package1;
+
+public interface Swim {
+ public abstract void swim();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..c17aee70ae56ea4b894241be37420dd0afb7a8eb
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test.java
@@ -0,0 +1,46 @@
+package Anonymous_Inner_Class_package1;
+
+public class Test {
+
+ public static void main(String[] args) {
+ /*
+ new 类名或者接口名 () {
+ 重写方法;
+ };
+ */
+
+ //编写匿名内部类的代码
+ new Swim() {
+ @Override
+ public void swim() {
+ System.out.println("重写了游泳的方法");
+ }
+ };
+
+ new Animal() {
+ @Override
+ public void eat() {
+ System.out.println("重写了eat方法");
+ }
+ };
+
+ //在测试类中调用下面的method方法?
+ //再创建子类的对象,传递给method方法
+ Dog d = new Dog();
+ method(d);
+ //如果Dog类我只要用一次,那么还需要单独定义一个类太麻烦了。
+
+ method(
+ new Animal(){
+ @Override
+ public void eat() {
+ System.out.println("狗吃骨头");
+ }
+ }
+ );
+ }
+
+ public static void method(Animal a) {//Animal a = 子类对象 多态
+ a.eat();//编译看左边,运行看右边
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test2.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test2.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2bf820f51c0c25c810546ce971c92d8c2f5c4b5
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Anonymous_Inner_Class_package1/Test2.java
@@ -0,0 +1,25 @@
+package Anonymous_Inner_Class_package1;
+
+public class Test2 {
+ public static void main(String[] args) {
+
+ //整体我们可以理解为Swim接口的实现类对象
+ //接口多态
+ Swim s = new Swim(){
+ @Override
+ public void swim() {
+ System.out.println("重写之后游泳方法");
+ }
+ };
+
+ //编译看左边,运行看右边的原则
+ s.swim();
+
+ new Swim(){
+ @Override
+ public void swim() {
+ System.out.println("重写之后游泳方法");
+ }
+ }.swim();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Code_block_demo1.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Code_block_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..944c270adaa7cc85b18cb70b0e320f90bcc4e4da
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Code_block_demo1.java
@@ -0,0 +1,16 @@
+package Code_block_package;
+
+public class Code_block_demo1 {
+ public static void main(String[] args) {
+ {
+ int a = 0;
+ }
+ //因为当代码执行到这里时,变量a就从内存中消失了
+ //error: System.out.println(a);
+
+ //创建对象
+ Student s = new Student();
+
+ Student s1 = new Student("张三", 23);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..54010d82facf9462718b0a8562c1f32e45734206
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Code_block_package/Student.java
@@ -0,0 +1,46 @@
+package Code_block_package;
+
+public class Student {
+ private String name;
+ private int age;
+
+ //构造代码块
+ //1、写在成员位置的代码块
+ //2、作用:可以把多个构造方法中重复的代码抽取出来
+ //3、执行时机:我们在创建本类对象的时候会先执行构造代码块再执行构造方法
+ {
+ System.out.println("构造代码块执行了");
+ }
+
+ //静态代码块
+ //随着类的加载而加载的,并且只执行一次。
+ static {
+ System.out.println("静态代码块执行了");
+ }
+
+ public Student() {
+ System.out.println("空参构造");
+ }
+
+ public Student(String name, int age) {
+ System.out.println("有参构造");
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Animal.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..1297e8faee289759d8e1b127045d5d6aa8dd2d7d
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Animal.java
@@ -0,0 +1,33 @@
+package Interface_package1;
+
+public abstract class Animal {
+ private String name;
+ private int age;
+
+ public Animal(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public Animal() {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public abstract void eat();
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..d737b8eb25f55052b4afb843de169f9b24cc621b
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Dog.java
@@ -0,0 +1,20 @@
+package Interface_package1;
+
+public class Dog extends Animal implements Swim {
+ @Override
+ public void eat() {
+ System.out.println("狗吃骨头");
+ }
+
+ @Override
+ public void swim() {
+ System.out.println("狗刨");
+ }
+
+ public Dog(String name, int age) {
+ super(name, age);
+ }
+
+ public Dog() {
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Frog.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Frog.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbf096f393d7f37de77087c8b90c1eb28ae1ff0b
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Frog.java
@@ -0,0 +1,20 @@
+package Interface_package1;
+
+public class Frog extends Animal implements Swim {
+ @Override
+ public void eat() {
+ System.out.println("青蛙在吃虫子");
+ }
+
+ @Override
+ public void swim() {
+ System.out.println("青蛙在蛙泳");
+ }
+
+ public Frog(String name, int age) {
+ super(name, age);
+ }
+
+ public Frog() {
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Rabbit.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Rabbit.java
new file mode 100644
index 0000000000000000000000000000000000000000..113c736cddc9af2e5a07bd537939e6090407f030
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Rabbit.java
@@ -0,0 +1,17 @@
+package Interface_package1;
+
+public class Rabbit extends Animal {
+
+ public Rabbit(String name, int age) {
+ super(name, age);
+ }
+
+ public Rabbit() {
+ }
+
+ @Override
+ public void eat() {
+ System.out.println("兔子在吃胡萝卜");
+ }
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Swim.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Swim.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab8f9aaecd4d51e535cfe880a04f7469a0b70e05
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Swim.java
@@ -0,0 +1,6 @@
+package Interface_package1;
+
+public interface Swim {
+
+ public abstract void swim();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb883c155496069b56ae612d41d919fe9b2d2c8b
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Interface_package1/Test.java
@@ -0,0 +1,18 @@
+package Interface_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建青蛙的对象
+ Frog f = new Frog("小青", 1);
+ System.out.println(f.getName() + ", " + f.getAge());
+
+ f.eat();
+ f.swim();
+
+ //创建兔子的对象
+ Rabbit r = new Rabbit("小白", 2);
+ System.out.println(f.getName() + ", " + r.getAge());
+
+ r.eat();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Car.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Car.java
new file mode 100644
index 0000000000000000000000000000000000000000..9e01c39217492347d27ef407cbce6e7fb4266abc
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Car.java
@@ -0,0 +1,24 @@
+package Internal_class_package;
+
+public class Car {
+ String carName;
+ int carAge;
+ String carColor;
+
+ class Engine {
+ String engineName;
+ int engineAge;
+
+ public void show() {
+ System.out.println(engineName);
+ System.out.println(carName);
+ }
+ }
+
+ public void show() {
+ System.out.println(carName);
+
+ Engine e = new Engine();
+ System.out.println(e.engineName);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..011973363a04558efbddb92f3ff924ab110780f8
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Internal_class_package/Test.java
@@ -0,0 +1,21 @@
+package Internal_class_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 需求:写一个Javabean类描述汽车
+ 属性:汽车的品牌,车龄,颜色,发动机的品牌,使用年限
+
+ 内部类的访问特点:
+ 内部类可以直接访问外部类的成员,包括私有
+ 外部类要访问内部类的成员,必须创建对象
+ */
+
+ Car c = new Car();
+ c.carName = "宾利";
+ c.carAge = 1;
+ c.carColor = "粉色";
+
+ c.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Outer.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Outer.java
new file mode 100644
index 0000000000000000000000000000000000000000..030b138f9af9dcce1abedffd106b0db4006bfb4a
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Outer.java
@@ -0,0 +1,33 @@
+package Local_inner_class_package;
+
+public class Outer {
+
+ int b = 20;
+ public void show() {
+ int a = 10;
+
+ //局部内部类
+ class Inner {
+ String name;
+ int age;
+
+ public void method1(){
+ System.out.println(a);
+ System.out.println(b);
+ System.out.println("局部内部类中的method1方法");
+ }
+
+ public static void method2(){
+ System.out.println("局部内部类中的method2方法");
+ }
+
+ }
+
+ //创建局部内部类的对象
+ Inner i = new Inner();
+ System.out.println(i.name);
+ System.out.println(i.age);
+ i.method1();
+ Inner.method2();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a5447ae5c582e9e34c0fe8d5a0ca24d4b9c71eb
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Local_inner_class_package/Test.java
@@ -0,0 +1,16 @@
+package Local_inner_class_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 局部内部类:
+ 1、将内部类定义在方法里面就叫做局部内部类,类似于方法里面的局部变量
+ 2、外界是无法直接使用局部内部类,需要在方法内部创建对象并使用
+ 3、该类可以直接访问外部类的成员,也可以访问方法内的局部变量
+ */
+
+ //调用show方法,让代码执行
+ Outer o = new Outer();
+ o.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Outer.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Outer.java
new file mode 100644
index 0000000000000000000000000000000000000000..98465f026c9998b41d0120e32d007e978d2e2b86
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Outer.java
@@ -0,0 +1,12 @@
+package Member_internal_class_package1;
+
+public class Outer {
+ String name;
+ private class Inner{
+ static int a = 10;
+ }
+
+ public Inner getInstance(){
+ return new Inner();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..be6a4774b5571e7f0f2ccea36b458a4131c1e0fa
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package1/Test.java
@@ -0,0 +1,24 @@
+package Member_internal_class_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 编写成员内部类的注意点:
+ 1、成员内部类可以被一些修饰符所修饰,比如:private,默认,protected,public,static等
+ 2、在成员内部类里面,JDK16之前不能定义静态变量,JDK16开始才可以定义静态变量。
+
+ 获取成员内部类对象的两种方式:
+ 方式一:外部类编写方法,对外提供内部类对象
+ 方法二:直接创建
+ 格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
+ 范例:Outer.Inner oi = new Outer().new Inner();
+ */
+
+ //创建对象的方式
+ //类名 对象名 = new 类名();
+ //Student s = new Student();
+
+ Outer o = new Outer();
+ Object oi = o.getInstance();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Outer.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Outer.java
new file mode 100644
index 0000000000000000000000000000000000000000..6296a4200f499c3ac5471909cbaef847fec50bda
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Outer.java
@@ -0,0 +1,16 @@
+package Member_internal_class_package2;
+
+public class Outer {
+ private int a = 10;
+
+ class Inner {
+ private int a = 20;
+
+ public void show() {
+ int a = 30;
+ System.out.println(a); //30
+ System.out.println(this.a); //20
+ System.out.println(Outer.this.a);//10
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e5e0ad5f5a8663e14eb1493c310ac298b778622
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Member_internal_class_package2/Test.java
@@ -0,0 +1,10 @@
+package Member_internal_class_package2;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建内部类的对象,并调用show方法
+ Outer.Inner oi = new Outer().new Inner();
+
+ oi.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..b0495c6d1b264cc4c7239f005d724d040e021a9f
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Student.java
@@ -0,0 +1,30 @@
+package Multiple_packages;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e403b11dee78d27cc0480686f87f5efbd37d6d4
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/Test.java
@@ -0,0 +1,30 @@
+package Multiple_packages;
+
+/*
+1、使用同一个包中的类时,不需要导包。
+2、使用java.lang包中的类时,不需要导包。
+3、其他情况都需要导包
+4、如果同时使用两个包中的同名类,需要用全类名
+ */
+
+import Multiple_packages.package1.Teacher;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象
+ Student s = new Student();
+ s.setName("张三");
+ s.setAge(23);
+
+ System.out.println(s.getName() + ", " + s.getAge());
+
+
+ String str = "abc";
+ System.out.println(str);
+
+
+ Teacher t = new Teacher();
+
+ Multiple_packages.package2.Teacher t2 = new Multiple_packages.package2.Teacher();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package1/Teacher.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package1/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..c63164f965dccc1eb1aa907ea3ef6457c60b0029
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package1/Teacher.java
@@ -0,0 +1,30 @@
+package Multiple_packages.package1;
+
+public class Teacher {
+ private String name;
+ private int age;
+
+ public Teacher() {
+ }
+
+ public Teacher(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package2/Teacher.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package2/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef67ca008736e9ff8d3a0b48954c797271d033ca
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Multiple_packages/package2/Teacher.java
@@ -0,0 +1,30 @@
+package Multiple_packages.package2;
+
+public class Teacher {
+ private String name;
+ private int age;
+
+ public Teacher() {
+ }
+
+ public Teacher(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Permission_modifier_package/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Permission_modifier_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..29af00b6951eaf1426a318ffa53cf650d365079e
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Permission_modifier_package/Test.java
@@ -0,0 +1,12 @@
+package Permission_modifier_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ private:同一个类中
+ 空着不写:同一个类中、同一个包中其他类
+ protected:同一个类中、同一个包中其他类、不同包下的子类
+ public:同一个类中、同一个包中其他类、不同包下的子类、不同包下的无关类
+ */
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Outer.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Outer.java
new file mode 100644
index 0000000000000000000000000000000000000000..2025f88e1189bc44059e1c4d907e2133211920c6
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Outer.java
@@ -0,0 +1,24 @@
+package Static_inner_class_package1;
+
+public class Outer {
+
+ int a = 10;
+ static int b = 20;
+
+ //静态内部类
+ static class Inner {
+ public void show1() {
+ System.out.println("非静态的方法被调用了");
+ System.out.println(b);
+ Outer o = new Outer();
+ System.out.println(o.a);
+ }
+
+ public static void show2() {
+ System.out.println("静态的方法被调用了");
+ System.out.println(b);
+ Outer o = new Outer();
+ System.out.println(o.a);
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..bde16abf0f218b38213cc3aa3d81ce10a5935587
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/Static_inner_class_package1/Test.java
@@ -0,0 +1,25 @@
+package Static_inner_class_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 注意事项:
+ 1、静态内部类也是成员内部类中的一种
+ 2、静态内部类只能访问外部类中的静态变量和静态方法
+ 如果想要访问非静态的需要创建外部类的对象
+
+ 创建静态内部类对象的格式:
+ 外部类名.内部类名 对象名 = new 外部类名.内部类名();
+ 调用静态方法的格式:
+ 外部类名.内部类名.方法名();
+ */
+
+ //创建静态内部类的对象
+ //只要是静态的东西,都可以用类名点直接获取
+ Outer.Inner oi=new Outer.Inner();
+ oi.show1();
+
+ //静态方法
+ Outer.Inner.show2();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Person.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Person.java
new file mode 100644
index 0000000000000000000000000000000000000000..a76d84e8560a8292a9d58bd5f699769b6a9f2827
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Person.java
@@ -0,0 +1,46 @@
+package abstract_class_package1;
+
+/*
+1、抽象类不能实例化
+2、抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
+3、可以有构造方法
+4、抽象类的子类
+ 要么重写抽象类中的所有抽象方法
+ 要么是抽象类
+ */
+public abstract class Person {
+
+ private String name;
+ private int age;
+
+ //作用:当创建子类对象时,给属性进行赋值的。
+ public Person() {
+ }
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public abstract void work();
+
+ public void sleep() {
+ System.out.println("睡觉");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..33f81d56c1611e6d12e148775e4ef5790f0ef921
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Student.java
@@ -0,0 +1,18 @@
+package abstract_class_package1;
+
+public class Student extends Person {
+
+ @Override
+ public void work() {
+ System.out.println("学生的工作是学习");
+ }
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ super(name, age);
+ }
+
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Teacher.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..c11b1b02069b3f7c439069f6528c48054447103e
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Teacher.java
@@ -0,0 +1,4 @@
+package abstract_class_package1;
+
+public abstract class Teacher extends Person {
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..1574b61056a08e8bba64600bf3c2139c72c3b6bb
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package1/Test.java
@@ -0,0 +1,12 @@
+package abstract_class_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象
+ //Person p = new Person();
+
+ Student s = new Student("张三", 23);
+
+ System.out.println(s.getName() + ", " + s.getAge());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Animal.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..34f560bae43891644893441616978c3965a1d2fe
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Animal.java
@@ -0,0 +1,37 @@
+package abstract_class_package2;
+
+public abstract class Animal {
+ private String name;
+ private int age;
+
+ public Animal() {
+ }
+
+ public Animal(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public void drink(){
+ System.out.println("动物在喝水");
+ }
+
+ public abstract void eat();
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1e60a6f84b9f55082026de745e51ea01f80677a
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Dog.java
@@ -0,0 +1,15 @@
+package abstract_class_package2;
+
+public class Dog extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("狗吃骨头");
+ }
+
+ public Dog() {
+ }
+
+ public Dog(String name, int age) {
+ super(name, age);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Frog.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Frog.java
new file mode 100644
index 0000000000000000000000000000000000000000..895472f1b1490906d178f72bc2f1ec2306f17ec2
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Frog.java
@@ -0,0 +1,15 @@
+package abstract_class_package2;
+
+public class Frog extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("青蛙在吃虫子");
+ }
+
+ public Frog() {
+ }
+
+ public Frog(String name, int age) {
+ super(name, age);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Sheep.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Sheep.java
new file mode 100644
index 0000000000000000000000000000000000000000..c8d0778b73d334ff4455f9418502043d532a4347
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Sheep.java
@@ -0,0 +1,15 @@
+package abstract_class_package2;
+
+public class Sheep extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("山羊在吃草");
+ }
+
+ public Sheep() {
+ }
+
+ public Sheep(String name, int age) {
+ super(name, age);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..665fde2fa5de7e6362910ff5511eba66cf767d93
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/abstract_class_package2/Test.java
@@ -0,0 +1,13 @@
+package abstract_class_package2;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象
+ Frog f = new Frog("小绿", 1);
+
+ System.out.println(f.getName() + ", " + f.getAge());
+
+ f.drink();
+ f.eat();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..601eee264831bf7497efa3144ddb713836e9a01f
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test.java
@@ -0,0 +1,31 @@
+package final_package;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ final修饰方法:
+ 表明该方法是最终方法,不能被重写
+ final修饰类:
+ 表明该类是最终类,不能被继承
+ final修饰变量:
+ 叫做常量,只能被赋值一次
+ */
+
+ final double PI = 3.14;
+ //error: PI = 2.14;
+ System.out.println(PI);
+ }
+}
+
+final class Fu {
+ public final void show() {
+ System.out.println("父类的show方法");
+ }
+}
+
+//class Zi extends Fu{
+// @Override
+// public void show() {
+// System.out.println("子类的show方法");
+// }
+//}
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test2.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test2.java
new file mode 100644
index 0000000000000000000000000000000000000000..3711cb1412a206159444a09efc1321fba80c882c
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/final_package/Test2.java
@@ -0,0 +1,63 @@
+package final_package;
+
+public class Test2 {
+ public static void main(String[] args) {
+ /*
+ final 修饰基本数据类型:记录的值不能发生改变
+ final 修饰引用数据类型:记录的地址值不能发生改变,内部的属性值还是可以改变的
+ */
+
+ final double PI = 3.14;
+ //error: PI = 2;
+
+ //创建对象
+ final Student s = new Student("张三", 23);
+ //error: s=new Student();
+ s.setName("李四");
+ s.setAge(24);
+ System.out.println(s.getName() + ", " + s.getAge());
+
+ //数组
+ final int[] arr = {1, 2, 3, 4, 5};
+ //error: arr = new int[10];
+ arr[0] = 10;
+ arr[1] = 20;
+
+ //遍历数组
+ for (int i = 0; i < arr.length; i++) {
+ System.out.print(arr[i] + " ");
+ }
+ System.out.println();
+ }
+}
+
+class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+
+}
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballCoach.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballCoach.java
new file mode 100644
index 0000000000000000000000000000000000000000..84597d13823f8ff428249bee9660d5e9d1593067
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballCoach.java
@@ -0,0 +1,15 @@
+package interface_case_package;
+
+public class BasketballCoach extends Coach {
+ public BasketballCoach(String name, int age) {
+ super(name, age);
+ }
+
+ public BasketballCoach() {
+ }
+
+ @Override
+ public void teach() {
+ System.out.println("蓝球教练正在教如何打蓝球");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballSporter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballSporter.java
new file mode 100644
index 0000000000000000000000000000000000000000..2564ab658b2ea8ca2f6c3a7bf50a4c77ebe386e0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/BasketballSporter.java
@@ -0,0 +1,16 @@
+package interface_case_package;
+
+public class BasketballSporter extends Sporter {
+
+ public BasketballSporter(String name, int age) {
+ super(name, age);
+ }
+
+ public BasketballSporter() {
+ }
+
+ @Override
+ public void study() {
+ System.out.println("蓝球运动员在学习如何打蓝球");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Coach.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Coach.java
new file mode 100644
index 0000000000000000000000000000000000000000..b28aafb487d0d73f7056aa078419185837e53cb5
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Coach.java
@@ -0,0 +1,13 @@
+package interface_case_package;
+
+public abstract class Coach extends Person {
+
+ public abstract void teach();
+
+ public Coach(String name, int age) {
+ super(name, age);
+ }
+
+ public Coach() {
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/English.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/English.java
new file mode 100644
index 0000000000000000000000000000000000000000..51be7e7b5535f409903bf393f4d1e1bedbce48af
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/English.java
@@ -0,0 +1,5 @@
+package interface_case_package;
+
+public interface English {
+ public abstract void speakEnglish();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Person.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Person.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8d0dfde4e1c8f9863fb936ccfc4a4051b0b6787
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Person.java
@@ -0,0 +1,36 @@
+package interface_case_package;
+
+/*
+因为现在我不想让外界去直接创建人的对象
+因为直接创建顶层父类人的对象此时是没有意义的
+所以我就把他写成抽象的
+ */
+
+public abstract class Person {
+ private String name;
+ private int age;
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public Person() {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangCoach.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangCoach.java
new file mode 100644
index 0000000000000000000000000000000000000000..95ba12940f2775c78aaa6490240ae5471dc561a0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangCoach.java
@@ -0,0 +1,20 @@
+package interface_case_package;
+
+public class PingPangCoach extends Coach implements English {
+ public PingPangCoach(String name, int age) {
+ super(name, age);
+ }
+
+ public PingPangCoach() {
+ }
+
+ @Override
+ public void teach() {
+ System.out.println("乒乓球教练正在教如何打乒乓球");
+ }
+
+ @Override
+ public void speakEnglish() {
+ System.out.println("乒乓球教练在学习说英语");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangSporter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangSporter.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9d03e0b457e687c68eb8408be1c7700127599d0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/PingPangSporter.java
@@ -0,0 +1,21 @@
+package interface_case_package;
+
+public class PingPangSporter extends Sporter implements English {
+
+ public PingPangSporter(String name, int age) {
+ super(name, age);
+ }
+
+ public PingPangSporter() {
+ }
+
+ @Override
+ public void speakEnglish() {
+ System.out.println("乒乓球运动员在说英语");
+ }
+
+ @Override
+ public void study() {
+ System.out.println("乒乓球运动员在学习如何打乒乓球");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Sporter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Sporter.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9856bda7ac8be9ad95fcd900049cdf65677810a
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Sporter.java
@@ -0,0 +1,13 @@
+package interface_case_package;
+
+public abstract class Sporter extends Person {
+
+ public Sporter(String name, int age) {
+ super(name, age);
+ }
+
+ public Sporter() {
+ }
+
+ public abstract void study();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a68cc03e1800e689d9efb7131b2cfff87865303
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_case_package/Test.java
@@ -0,0 +1,12 @@
+package interface_case_package;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建运动员或教练的对象
+
+ PingPangSporter pps = new PingPangSporter("刘诗雯", 23);
+ System.out.println(pps.getName() + ", " + pps.getAge());
+ pps.study();
+ pps.speakEnglish();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Inter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Inter.java
new file mode 100644
index 0000000000000000000000000000000000000000..f680ff2256ff46ac0d3a949968e6ad89399e6085
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Inter.java
@@ -0,0 +1,9 @@
+package interface_package2;
+
+public interface Inter {
+ //public static final
+ int a = 10;
+
+ //public abstract
+ void method();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..569bab939fffa3df9c603e8d8df3f48859acdaaf
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/InterImpl.java
@@ -0,0 +1,8 @@
+package interface_package2;
+
+public class InterImpl implements Inter {
+ @Override
+ public void method() {
+ System.out.println("method");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..63af168029542b23043897f672a6fe8a3f2127f6
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package2/Test.java
@@ -0,0 +1,22 @@
+package interface_package2;
+
+/*
+接口:
+ 成员变量
+ 只能是常量,默认修饰符:public static final
+ 构造方法
+ 没有
+ 成员方法
+ 只能是抽象方法:默认修饰符:public abstract
+ */
+public class Test {
+ public static void main(String[] args) {
+ System.out.println(Inter.a);
+
+ //error: Inter.a = 20;
+
+ //创建实现类对象并调用方法
+ InterImpl ii = new InterImpl();
+ ii.method();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter1.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter1.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d9bf322ce2a941e350f011c876c0aa9ed8619d9
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter1.java
@@ -0,0 +1,7 @@
+package interface_package3;
+
+public interface Inter1 {
+ public abstract void method1();
+ public abstract void method2();
+ public abstract void method3();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter2.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8b9548e1e37fdecb85d90299bf87e8bdaf8ac66
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Inter2.java
@@ -0,0 +1,10 @@
+package interface_package3;
+
+public interface Inter2 {
+ public abstract void method1();
+ public abstract void method2();
+ public abstract void method3();
+ public abstract void method4();
+ public abstract void method5();
+ public abstract void method6();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..298165b33208c8b1845a17bfc3258d0895c008dc
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/InterImpl.java
@@ -0,0 +1,34 @@
+package interface_package3;
+
+public class InterImpl implements Inter1, Inter2 {
+
+ @Override
+ public void method1() {
+ System.out.println("method1");
+ }
+
+ @Override
+ public void method2() {
+ System.out.println("method2");
+ }
+
+ @Override
+ public void method3() {
+ System.out.println("method3");
+ }
+
+ @Override
+ public void method4() {
+ System.out.println("method4");
+ }
+
+ @Override
+ public void method5() {
+ System.out.println("method5");
+ }
+
+ @Override
+ public void method6() {
+ System.out.println("method6");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..bae131c9358971d6bac40e9346cac7a10c88f7f0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package3/Test.java
@@ -0,0 +1,10 @@
+package interface_package3;
+
+public class Test {
+ public static void main(String[] args) {
+ // 类和接口之间的关系:
+ // 实现关系:可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
+
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter1.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter1.java
new file mode 100644
index 0000000000000000000000000000000000000000..05b1c1e05aca7ea3f1402bb2799edc5942b13937
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter1.java
@@ -0,0 +1,6 @@
+package interface_package4;
+
+public interface Inter1 {
+ public abstract void method1();
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter2.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c6c95b86ca39359b5d4182b9f6d55fc4767c33b9
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter2.java
@@ -0,0 +1,5 @@
+package interface_package4;
+
+public interface Inter2 {
+ public abstract void method2();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter3.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter3.java
new file mode 100644
index 0000000000000000000000000000000000000000..839ac9eea35f3803d04e0f2abfad77c85399ffcb
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Inter3.java
@@ -0,0 +1,5 @@
+package interface_package4;
+
+public interface Inter3 extends Inter1,Inter2{
+ public abstract void method3();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..73271312cd9202c69fab8799f45bef380edef88b
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/InterImpl.java
@@ -0,0 +1,18 @@
+package interface_package4;
+
+public class InterImpl implements Inter3 {
+ @Override
+ public void method1() {
+ System.out.println("method1");
+ }
+
+ @Override
+ public void method2() {
+ System.out.println("method2");
+ }
+
+ @Override
+ public void method3() {
+ System.out.println("method3");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..924a2e4d804cee1c0160aae5c4d8e2377bd89867
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package4/Test.java
@@ -0,0 +1,8 @@
+package interface_package4;
+
+public class Test {
+ public static void main(String[] args) {
+ //接口和接口之间是继承关系,可以单继承,也可以多继承
+ //细节:如果实现类实现了最下面的子接口,那么就需要重写所有的抽象方法
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter1.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca8ed59057108696d28c913fc649c5a456970075
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter1.java
@@ -0,0 +1,18 @@
+package interface_package5;
+
+public interface Inter1 {
+ /*
+ 接口中默认方法的定义格式:
+ 格式:public default 返回值类型 方法名(参数列表) { }
+
+ 接口中默认方法的注意事项:
+ 1、默认方法不是抽象方法,所以不强制被重写。但是如果被重写,重写的时候去掉default关键字
+ 2、public可以省略,default不能省略
+ 3、如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写
+ */
+ public default void show(){
+ System.out.println("Inter1接口中的默认方法 --- show");
+ }
+
+ public abstract void method();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter2.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter2.java
new file mode 100644
index 0000000000000000000000000000000000000000..18cd115d4d190770e9eceff6b9f36a939205b3b7
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Inter2.java
@@ -0,0 +1,7 @@
+package interface_package5;
+
+public interface Inter2 {
+ public default void show() {
+ System.out.println("Inter2接口中的默认方法 --- show");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..882243df90269887b8d457a9bf98f9b5eb532e30
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/InterImpl.java
@@ -0,0 +1,16 @@
+package interface_package5;
+
+import interface_package2.Inter;
+
+public class InterImpl implements Inter1 {
+
+ @Override
+ public void method() {
+ System.out.println("实现类重写的抽象方法");
+ }
+
+ @Override
+ public void show() {
+ Inter1.super.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..f89b02c2b717686adbb5ad96d7b00682333a5b40
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package5/Test.java
@@ -0,0 +1,19 @@
+package interface_package5;
+
+public class Test {
+ public static void main(String[] args) {
+ /*接口中默认方法的定义格式:
+ 格式:public default 返回值类型 方法名(参数列表) { }
+
+ 接口中默认方法的注意事项:
+ 1、默认方法不是抽象方法,所以不强制被重写。但是如果被重写,重写的时候去掉default关键字
+ 2、public可以省略,default不能省略
+ 3、如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写
+ */
+
+ //创建实现类的对象
+ InterImpl ii=new InterImpl();
+ ii.method();
+ ii.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Inter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Inter.java
new file mode 100644
index 0000000000000000000000000000000000000000..862411ab87c6a80d5465be4fb42dc3a32e68f1eb
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Inter.java
@@ -0,0 +1,9 @@
+package interface_package6;
+
+public interface Inter {
+ public static void show(){
+ System.out.println("Inter接口中的静态方法");
+ }
+
+ public abstract void method();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..37b4c85d324c4cb93c8729b80a2d5bdb7b26fb46
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/InterImpl.java
@@ -0,0 +1,14 @@
+package interface_package6;
+
+public class InterImpl implements Inter {
+
+ @Override
+ public void method() {
+ System.out.println("InterImpl重写的抽象方法");
+ }
+
+ //不叫重写
+ public static void show(){
+ System.out.println("InterImpl重写的抽象方法");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..babe0349099b6015734b99beee5e5c5cdd34f58f
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package6/Test.java
@@ -0,0 +1,23 @@
+package interface_package6;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 接口中静态方法的定义格式:
+ 格式:public static 返回值类型 方法名(参数列表) { }
+ 范例:public static void show() { }
+
+ 接口中静态方法的注意事项:
+ 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
+ public可以省略,static不能省略
+ */
+
+ //调用接口中的静态方法
+ Inter.show();
+
+ //调用实现类中的静态方法
+ InterImpl.show();
+
+ //子类把从父类继承下来的虚方法表里面的方法进行覆盖了,这才叫重写
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/InterA.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/InterA.java
new file mode 100644
index 0000000000000000000000000000000000000000..d83489a6a7acde1419302eff98a552a0499f4353
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/InterA.java
@@ -0,0 +1,19 @@
+package interface_package7;
+
+public interface InterA {
+
+ public default void show1(){
+ System.out.println("show1方法开始执行了");
+ show3();
+ }
+
+ public default void show2(){
+ System.out.println("show2方法开始执行了");
+ show3();
+ }
+
+ //普通的私有方法,给默认方法服务的
+ private void show3(){
+ System.out.println("记录代码执行过程中的各种细节");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd32644e065932e516207cbbbf8501f2a57fe401
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package7/Test.java
@@ -0,0 +1,15 @@
+package interface_package7;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 接口中私有方法的定义格式:
+ 格式1:private 返回值类型 方法名(参数列表) { }
+ 范例1:private void show() { }
+
+ 格式2:private static 返回值类型 方法名(参数列表) { }
+ 范例2:private static void method() { }
+ */
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/Inter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/Inter.java
new file mode 100644
index 0000000000000000000000000000000000000000..ded443ee74df9d9c7e5d22cc9aa9ecb8d7517ec5
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/Inter.java
@@ -0,0 +1,14 @@
+package interface_package8;
+
+public interface Inter {
+ public abstract void method1();
+ public abstract void method2();
+ public abstract void method3();
+ public abstract void method4();
+ public abstract void method5();
+ public abstract void method6();
+ public abstract void method7();
+ public abstract void method8();
+ public abstract void method9();
+ public abstract void method10();
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterAdapter.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..badb7b5ee11eab275e752af6d65e27e7a654e650
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterAdapter.java
@@ -0,0 +1,54 @@
+package interface_package8;
+
+public abstract class InterAdapter implements Inter {
+
+ @Override
+ public void method1() {
+
+ }
+
+ @Override
+ public void method2() {
+
+ }
+
+ @Override
+ public void method3() {
+
+ }
+
+ @Override
+ public void method4() {
+
+ }
+
+ @Override
+ public void method5() {
+
+ }
+
+ @Override
+ public void method6() {
+
+ }
+
+ @Override
+ public void method7() {
+
+ }
+
+ @Override
+ public void method8() {
+
+ }
+
+ @Override
+ public void method9() {
+
+ }
+
+ @Override
+ public void method10() {
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterImpl.java b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..23e40ab86c601a280ca2048513e59df66e33ef58
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_module/src/interface_package8/InterImpl.java
@@ -0,0 +1,11 @@
+package interface_package8;
+
+
+public class InterImpl extends InterAdapter {
+ //我需要用到哪个方法,就重写哪个方法就可以了
+
+ @Override
+ public void method5() {
+ System.out.println("method5");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/Object_Oriented_Advanced_polymorphic_module.iml b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/Object_Oriented_Advanced_polymorphic_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/Object_Oriented_Advanced_polymorphic_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Animal.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f144f7c69c9d9411b7e2e684a8252429af3eb1f
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Animal.java
@@ -0,0 +1,41 @@
+package polymorphic_case;
+
+public class Animal {
+ /*
+ 属性:
+ 年龄,颜色
+ 行为:
+ eat(String something); (something表示吃的东西)
+ */
+
+ private int age;
+ private String color;
+
+ public Animal() {
+ }
+
+ public Animal(int age, String color) {
+ this.age = age;
+ this.color = color;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+
+ public void eat(String something){
+ System.out.println("动物在吃" + something);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Cat.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Cat.java
new file mode 100644
index 0000000000000000000000000000000000000000..bec815d05013970edff7f22ed2052c4f50874071
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Cat.java
@@ -0,0 +1,19 @@
+package polymorphic_case;
+
+public class Cat extends Animal {
+ public Cat() {
+ }
+
+ public Cat(int age, String color) {
+ super(age, color);
+ }
+
+ @Override
+ public void eat(String something) {
+ System.out.println(getAge() + "岁的" + getColor() + "颜色的猫眯着眼睛侧着头吃" + something);
+ }
+
+ public void catchMouse(){
+ System.out.println("猫抓老鼠");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Dog.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..885a82f967bd58195c2f3895eb0507edd5582b9c
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Dog.java
@@ -0,0 +1,24 @@
+package polymorphic_case;
+
+public class Dog extends Animal {
+ //空参构造
+ //带全部参数的构造
+
+ public Dog() {
+ }
+
+ public Dog(int age, String color) {
+ super(age, color);
+ }
+
+ //行为
+
+ @Override
+ public void eat(String something) {
+ System.out.println(getAge() + "岁的" + getColor() + "颜色的狗两只前腿死死的抱住" + something + "猛吃");
+ }
+
+ public void lookHome(){
+ System.out.println("狗在看家");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Person.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Person.java
new file mode 100644
index 0000000000000000000000000000000000000000..400a4c0ae9f7cd86d480daee159dc751e39118f4
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Person.java
@@ -0,0 +1,62 @@
+package polymorphic_case;
+
+public class Person {
+ private String name;
+ private int age;
+
+ public Person() {
+ }
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ //行为
+// //饲养狗
+// public void keepPet(Dog dog, String something) {
+// System.out.println("年龄为" + age + "岁的" + name + "养了一只" +
+// dog.getColor() + "颜色的" + dog.getAge() + "岁的狗");
+// dog.eat(something);
+// }
+//
+// //饲养猫
+// public void keepPet(Cat cat,String something){
+// System.out.println("年龄为" + age + "岁的" + name + "养了一只" +
+// cat.getColor() + "颜色的" + cat.getAge() + "岁的猫");
+// cat.eat(something);
+// }
+
+ //想要一个方法,能接收所有的动物,包括猫,包括狗
+ //方法的形参:可以写这些类的父类 Animal
+ public void keepPet(Animal a, String something) {
+ if (a instanceof Dog dog) {
+ System.out.println("年龄为" + age + "岁的" + name + "养了一只" +
+ dog.getColor() + "颜色的" + dog.getAge() + "岁的狗");
+ dog.eat(something);
+ } else if (a instanceof Cat cat) {
+ System.out.println("年龄为" + age + "岁的" + name + "养了一只" +
+ cat.getColor() + "颜色的" + cat.getAge() + "岁的猫");
+ cat.eat(something);
+
+ } else {
+ System.out.println("没有这种动物");
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..54d167e009133f04a4db7bb50a88993934b22b57
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_case/Test.java
@@ -0,0 +1,15 @@
+package polymorphic_case;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象并调用方法
+
+ Person p = new Person("老王", 30);
+ Dog d = new Dog(2, "黑");
+ p.keepPet(d, "骨头");
+
+ Person p2 = new Person("老李", 25);
+ Cat c = new Cat(3, "灰");
+ p.keepPet(c, "鱼");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Administrator.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Administrator.java
new file mode 100644
index 0000000000000000000000000000000000000000..9171685c26320789b1768034f8ce0910c0005ed3
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Administrator.java
@@ -0,0 +1,8 @@
+package polymorphic_package1;
+
+public class Administrator extends Person {
+ @Override
+ public void show() {
+ System.out.println("管理员的信息为:" + getName() + ", " + getAge());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Person.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Person.java
new file mode 100644
index 0000000000000000000000000000000000000000..76d0d8ea9e2a06afd1442e77277d5afff303c952
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Person.java
@@ -0,0 +1,34 @@
+package polymorphic_package1;
+
+public class Person {
+ private String name;
+ private int age;
+
+ public Person() {
+ }
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public void show() {
+ System.out.println(name + ", " + age);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd9a676db0793c2f8efa4d881d28a43c098a8777
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Student.java
@@ -0,0 +1,8 @@
+package polymorphic_package1;
+
+public class Student extends Person {
+ @Override
+ public void show() {
+ System.out.println("学生的信息为:" + getName() + ", " + getAge());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Teacher.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab81616b0a8325086360db743467deae6be83d58
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Teacher.java
@@ -0,0 +1,8 @@
+package polymorphic_package1;
+
+public class Teacher extends Person {
+ @Override
+ public void show() {
+ System.out.println("老师的信息为:" + getName() + ", " + getAge());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea657083d4f550f6841e8c8576ae120cfcb3110e
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package1/Test.java
@@ -0,0 +1,28 @@
+package polymorphic_package1;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建三个对象,并调用register方法
+ Student s = new Student();
+ s.setName("张三");
+ s.setAge(18);
+
+ Teacher t = new Teacher();
+ t.setName("王建国");
+ t.setAge(30);
+
+ Administrator admin = new Administrator();
+ admin.setName("管理员");
+ admin.setAge(35);
+
+ register(s);
+ register(t);
+ register(admin);
+ }
+
+ //这个方法既能接收老师,又能接收学生,还能接收管理员
+ //只能把参数写成这三个类型的父类
+ public static void register(Person p) {
+ p.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..c014a7cc73dc3c7beb60b8037559c30f5a0ec8bc
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package2/Test.java
@@ -0,0 +1,46 @@
+package polymorphic_package2;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象(多态方式)
+ // Fu f = new Zi();
+ Animal a = new Dog();
+
+ //调用成员变量:编译看左边,运行也看左边
+ //编译看左边:javac编译代码的时候,会看左边父类中有没有这个变量,如果有,编译成功,如果没有,编译失败。
+ //运行也看左边:java运行代码的时候,实际获取的就是左边父类中成员变量的值
+ System.out.println(a.name);//动物
+
+ //调用成员方法:编译看左边,运行看右边
+ //编译看左边:javac编译代码的时候,会看左边父类中有没有这个变量,如果有,编译成功,如果没有,编译失败。
+ //运行看右边:java运行代码的时候,实际获取的就是右边子类中成员方法
+ a.show();
+
+ }
+}
+
+class Animal{
+ String name="动物";
+
+ public void show(){
+ System.out.println("Animal --- show方法");
+ }
+}
+
+class Dog extends Animal{
+ String name="狗";
+
+ @Override
+ public void show() {
+ System.out.println("Dog --- show方法");
+ }
+}
+
+class Cat extends Animal{
+ String name="猫";
+
+ @Override
+ public void show() {
+ System.out.println("Cat --- show方法");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package3/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package3/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..42df9f77a13c1ba9a0c57411b2af70a9fc541a26
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_polymorphic_module/src/polymorphic_package3/Test.java
@@ -0,0 +1,67 @@
+package polymorphic_package3;
+
+public class Test {
+ public static void main(String[] args) {
+ //创建对象
+ Animal a = new Dog();
+ //编译看左边,运行看右边
+ a.eat();
+
+ //多态弊端:
+ //不能调用子类的特有功能
+
+ //解决方案:
+ //变回子类类型即可
+ Dog d = (Dog) a;
+ d.lookHome();
+
+// if (a instanceof Dog) {
+// Dog d1 = (Dog) a;
+// d1.lookHome();
+// } else if (a instanceof Cat) {
+// Cat c = (Cat) a;
+// c.catchMouse();
+// } else{
+// System.out.println("没有这个类型,无法转换");
+// }
+
+ //新特性
+ //先判断a是否是Dog类型,如果是,则强转成Dog类型,转换之后变量名为d1
+ //如果不是,则不强转,结果直接是false
+ if (a instanceof Dog d1) {
+ d1.lookHome();
+ } else if (a instanceof Cat c) {
+ c.catchMouse();
+ } else{
+ System.out.println("没有这个类型,无法转换");
+ }
+ }
+}
+
+class Animal {
+ public void eat() {
+ System.out.println("动物在吃东西");
+ }
+}
+
+class Dog extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("狗吃骨头");
+ }
+
+ public void lookHome() {
+ System.out.println("狗看家");
+ }
+}
+
+class Cat extends Animal {
+ @Override
+ public void eat() {
+ System.out.println("猫吃小鱼干");
+ }
+
+ public void catchMouse() {
+ System.out.println("猫抓老鼠");
+ }
+}
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/Object_Oriented_Advanced_static_module.iml b/Object_Oriented_project/Object_Oriented_Advanced_static_module/Object_Oriented_Advanced_static_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/Object_Oriented_Advanced_static_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..07010ea51e2616135069856698cd3722fb366e4e
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/Student.java
@@ -0,0 +1,53 @@
+package static_package1;
+
+public class Student {
+ //属性:姓名、年龄、性别
+ private String name;
+ private int age;
+ private String gender;
+
+ //新增:老师的姓名
+ public static String teacherName;
+
+ public Student() {
+ }
+
+ public Student(String name, int age, String gender) {
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ //行为
+ public void study() {
+ System.out.println(name + "正在学习");
+ }
+
+ public void show() {
+ System.out.println(name + ", " + age + ", " + gender+", "+teacherName);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/StudentTest.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/StudentTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..30057361f7890a488c6f7f89457716540e4e0e20
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package1/StudentTest.java
@@ -0,0 +1,25 @@
+package static_package1;
+
+public class StudentTest {
+ public static void main(String[] args) {
+ Student.teacherName = "老王";
+ //1、创建第一个学生对象
+ Student s1 = new Student();
+ s1.setName("张三");
+ s1.setAge(23);
+ s1.setGender("男");
+ //s1.teacherName = "老王";
+
+ s1.study();
+ s1.show();
+
+ //2、创建第二个学生对象
+ Student s2 = new Student();
+ s2.setName("李四");
+ s2.setAge(24);
+ s2.setGender("女");
+
+ s2.study();
+ s2.show();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/ArrayUtil.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/ArrayUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d72bd76a8575daf624d0ad32346c94511dae834
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/ArrayUtil.java
@@ -0,0 +1,36 @@
+package static_package2;
+
+import java.lang.reflect.Array;
+
+public class ArrayUtil {
+
+ //私有化构造方法
+ //目的:为了不让外界创建他的对象
+ private ArrayUtil() {
+ }
+
+ //需要定义为静态的,方便调用
+ public static String printArr(int[] arr) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("[");
+ for (int i = 0; i < arr.length; i++) {
+ //i 索引 arr[i] 元素
+ if (i == arr.length - 1) {
+ sb.append(arr[i]);
+ } else {
+ sb.append(arr[i] + ", ");
+ }
+ }
+ sb.append("]");
+
+ return sb.toString();
+ }
+
+ public static double getAverage(double[] arr) {
+ double sum = 0;
+ for (int i = 0; i < arr.length; i++) {
+ sum += arr[i];
+ }
+ return sum / arr.length;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..013057cdfabef2cbd911396b391cf6572d7a6889
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package2/Test.java
@@ -0,0 +1,15 @@
+package static_package2;
+
+public class Test {
+ public static void main(String[] args) {
+ //测试工具类中的两个方法是否正确
+
+ int[] arr1 = {1, 2, 3, 4, 5};
+ String s = ArrayUtil.printArr(arr1);
+ System.out.println(s);
+
+ double[] arr2 = {1.5, 3.7, 4.9, 5.8, 6.6};
+ double avg = ArrayUtil.getAverage(arr2);
+ System.out.println(avg);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..50143e1438aa86e8f4d1553bcaff8fe57d7c95e6
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Student.java
@@ -0,0 +1,39 @@
+package static_package3;
+
+public class Student {
+ private String name;
+ private int age;
+ private String gender;
+
+ public Student(){}
+
+ public Student(String name, int age, String gender) {
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/StudentUtil.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/StudentUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..86331828308bb02d5ddb8e2ee6ffd66efcb189c8
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/StudentUtil.java
@@ -0,0 +1,24 @@
+package static_package3;
+
+import java.util.ArrayList;
+
+public class StudentUtil {
+ private StudentUtil() {
+ }
+
+ //静态方法
+ public static int getMaxAgeStudent(ArrayList list) {
+ //1、定义一个参照物
+ int max = list.get(0).getAge();
+
+ //2、循环遍历集合
+ for (int i = 1; i < list.size(); i++) {
+ //i 索引 list.get(i) 元素/学生对象
+ int tempAge=list.get(i).getAge();
+ if (tempAge > max) {
+ max = tempAge;
+ }
+ }
+ return max;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff8dc474e775c66a290f7f55f51fbf7e9e60f851
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package3/Test.java
@@ -0,0 +1,26 @@
+package static_package3;
+
+import java.util.ArrayList;
+
+public class Test {
+ public static void main(String[] args) {
+ //1、创建一个集合用来存储学生对象
+ ArrayList list = new ArrayList<>();
+
+ //2、创建3个学生对象
+ Student stu1 = new Student("张三", 23, "男");
+ Student stu2 = new Student("李四", 24, "女");
+ Student stu3 = new Student("王五", 25, "男");
+
+ //3、把学生对象添加到集合当中
+ list.add(stu1);
+ list.add(stu2);
+ list.add(stu3);
+
+ //4、调用工具类中的方法
+ int maxAgeStudent = StudentUtil.getMaxAgeStudent(list);
+
+ System.out.println(maxAgeStudent);
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Student.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb51c86dd4fcd85fa8a04d7b723723f46ada7ce2
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Student.java
@@ -0,0 +1,35 @@
+package static_package4;
+
+/*
+总结:
+ 静态方法中没有this关键字
+ 静态方法中,只能访问静态
+ 非静态方法可以访问所有
+ */
+
+public class Student {
+ String name;
+ int age;
+ static String teacherName;
+
+ //this:表示当前方法调用者的地址值
+ //这个this:是由虚拟机赋值的
+ public void show1(Student this) {
+ System.out.println(this.name + ", " + this.age + ", " + teacherName);
+
+ //调用其他方法
+ this.show2();
+
+ method();
+ }
+
+ public void show2() {
+ System.out.println("show2");
+ }
+
+ public static void method() {
+ //error: System.out.println(name);
+ //error: show1();
+ System.out.println("静态方法");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/StudentTest.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/StudentTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f1643ad8d20defa75ca4081388bd8be02102e8a
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/StudentTest.java
@@ -0,0 +1,21 @@
+package static_package4;
+
+public class StudentTest {
+ public static void main(String[] args) {
+
+ Student.teacherName = "老王";
+
+ Student s1 = new Student();
+ s1.name = "张三";
+ s1.age = 23;
+ s1.show1();
+
+ System.out.println("===============");
+
+ Student s2 = new Student();
+ s2.name = "李四";
+ s2.age = 24;
+ s2.show1();
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Test.java b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e18e51696d6bb5981d3f3dfee94f52f064c8e0a
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Advanced_static_module/src/static_package4/Test.java
@@ -0,0 +1,14 @@
+package static_package4;
+
+public class Test {
+ public static void main(String[] args) {
+ // [] : 数组
+ // String : 数据类型
+ // args : 数组名
+
+ System.out.println(args.length);
+ for (int i = 0; i < args.length; i++) {
+ System.out.println(args[i]);
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/Object_Oriented_Basis_module.iml b/Object_Oriented_project/Object_Oriented_Basis_module/Object_Oriented_Basis_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/Object_Oriented_Basis_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriend.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriend.java
new file mode 100644
index 0000000000000000000000000000000000000000..4371c92949bc5eae4683c8076ba07aa1a99818a8
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriend.java
@@ -0,0 +1,57 @@
+package Object_Oriented_Basis_package;
+
+public class GirlFriend {
+ //属性
+ private String name;
+ private int age;
+ private String gender;
+
+ //针对于每一个私有化的成员变量,都要提供get和set方法
+ //set方法:给成员变量赋值
+ //get方法:对外提供成员变量的值
+
+ public void setName(String name) {
+ //局部变量表示测试类中调用方法传递过来的数据
+ //等号的左边:就表示成员位置的name
+ this.name = name;
+ }
+
+ //作用:对外提供name属性的
+ public String getName() {
+ return name;
+ }
+
+ //age
+ //setAge:给成员变量age进行赋值的
+ //getAge:对外提供成员变量age的值
+ public void setAge(int age) {
+ if (age >= 18 && age <= 50) {
+ this.age = age;
+ } else {
+ System.out.println("非法参数");
+ }
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ //gender
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ //行为
+ public void sleep() {
+ System.out.println("女朋友在睡觉");
+ }
+
+ public void eat() {
+ System.out.println("女朋友在吃饭");
+ }
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriendTest.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriendTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..84a338969dae0c19a9a93d4dcd47dcb65d65a2e1
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/GirlFriendTest.java
@@ -0,0 +1,33 @@
+package Object_Oriented_Basis_package;
+
+public class GirlFriendTest {
+ public static void main(String[] args) {
+ //创建女朋友的对象
+ GirlFriend gf1 = new GirlFriend();
+
+ //赋值
+ gf1.setName("小诗诗");
+ gf1.setAge(18);
+ gf1.setGender("萌妹子");
+
+ System.out.println(gf1.getName());
+ System.out.println(gf1.getAge());
+ System.out.println(gf1.getGender());
+
+ gf1.eat();
+ gf1.sleep();
+
+ System.out.println("===============");
+ GirlFriend gf2 = new GirlFriend();
+ gf2.setName("小丹丹");
+ gf2.setAge(19);
+ gf2.setGender("萌妹子");
+
+ System.out.println(gf2.getName());
+ System.out.println(gf2.getAge());
+ System.out.println(gf2.getGender());
+
+ gf2.eat();
+ gf2.sleep();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/Phone.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/Phone.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a3d02cc81fea6717b2b38e3e5950b69c8fc4827
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/Phone.java
@@ -0,0 +1,16 @@
+package Object_Oriented_Basis_package;
+
+public class Phone {
+ //属性
+ String brand;
+ double price;
+
+ //行为
+ public void call(){
+ System.out.println("手机在打电话!");
+ }
+
+ public void playGame(){
+ System.out.println("手机在玩游戏!");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/PhoneTest.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/PhoneTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..28c74ec6e4ef48989cd858545f195fc9419373fc
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_Oriented_Basis_package/PhoneTest.java
@@ -0,0 +1,27 @@
+package Object_Oriented_Basis_package;
+
+public class PhoneTest {
+ public static void main(String[] args) {
+ //创建手机的对象
+ Phone p = new Phone();
+
+ //叫做给手机赋值
+ p.brand = "小米";
+ p.price = 1999.98;
+
+ //获取手机对象中的值
+ System.out.println(p.brand);
+ System.out.println(p.price);
+
+ //调用手机中的方法即可
+ p.call();
+ p.playGame();
+
+ Phone p2 = new Phone();
+ p2.brand = "苹果";
+ p2.price = 8999;
+
+ p2.call();
+ p2.playGame();
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StringTest.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StringTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..da924a7fa1f50e2767c1aae3bf66d06785c4cfb1
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StringTest.java
@@ -0,0 +1,14 @@
+package Object_oriented_encapsulation_package;
+
+public class StringTest {
+ public static void main(String[] args) {
+ String s = "wswcfvrtfbfsdmdzs";
+
+ int len = s.length();
+ System.out.println(len);
+
+ String ss = s.toUpperCase();
+ System.out.println(ss);
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/Student.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e791644cc05cea5a1aa90c6a520697faaa672fc
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/Student.java
@@ -0,0 +1,33 @@
+package Object_oriented_encapsulation_package;
+
+public class Student {
+ private String name;
+ private int age;
+
+ //如果我们自己没有写任何的构造方法
+ //那么虚拟机给我们加一个空参构造方法
+ public Student() {
+ System.out.println("空参构造");
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StudentTest.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StudentTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..7966161f70bbc8cb798450b7c80b23427e505e8f
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Object_oriented_encapsulation_package/StudentTest.java
@@ -0,0 +1,14 @@
+package Object_oriented_encapsulation_package;
+
+public class StudentTest {
+ public static void main(String[] args) {
+ //创建对象
+ //调用的空参构造
+ Student s = new Student();
+
+ Student s1 = new Student("张三", 23);
+
+ System.out.println(s1.getName());
+ System.out.println(s1.getAge());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Basis_module/src/Standard_Javabean_class_package/User.java b/Object_Oriented_project/Object_Oriented_Basis_module/src/Standard_Javabean_class_package/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..0065e44555b4d9fa3fd055881026cc2ab5af5e83
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Basis_module/src/Standard_Javabean_class_package/User.java
@@ -0,0 +1,160 @@
+package Standard_Javabean_class_package;
+
+public class User {
+ //属性
+ private String username;
+ private String password;
+ private String email;
+ private String gender;
+ private int age;
+
+ //插件PTG 1秒生成标准Javabean
+
+ public User() {
+ }
+
+ public User(String username, String password, String email, String gender, int age) {
+ this.username = username;
+ this.password = password;
+ this.email = email;
+ this.gender = gender;
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ * @return username
+ */
+ public String getUsername() {
+ return username;
+ }
+
+ /**
+ * 设置
+ * @param username
+ */
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ /**
+ * 获取
+ * @return password
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * 设置
+ * @param password
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * 获取
+ * @return email
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * 设置
+ * @param email
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ * 获取
+ * @return gender
+ */
+ public String getGender() {
+ return gender;
+ }
+
+ /**
+ * 设置
+ * @param gender
+ */
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ /**
+ * 获取
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+
+ //快捷键:
+ //command + n
+
+// public User() {
+// }
+//
+// public User(String username, String password, String email, String gender, int age) {
+// this.username = username;
+// this.password = password;
+// this.email = email;
+// this.gender = gender;
+// this.age = age;
+// }
+//
+// public String getUsername() {
+// return username;
+// }
+//
+// public void setUsername(String username) {
+// this.username = username;
+// }
+//
+// public String getPassword() {
+// return password;
+// }
+//
+// public void setPassword(String password) {
+// this.password = password;
+// }
+//
+// public String getEmail() {
+// return email;
+// }
+//
+// public void setEmail(String email) {
+// this.email = email;
+// }
+//
+// 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;
+// }
+
+
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/Object_Oriented_Case_module.iml b/Object_Oriented_project/Object_Oriented_Case_module/Object_Oriented_Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/Object_Oriented_Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/GameTest.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/GameTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f242f6ba2f502726137204c8167dfb16009297b3
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/GameTest.java
@@ -0,0 +1,37 @@
+package case1_Fighting_game_package;
+
+public class GameTest {
+ public static void main(String[] args) {
+ //1、创建第一个角色
+ Role r1 = new Role("乔峰", 100, '男');
+
+ //2、创建第二个角色
+ Role r2 = new Role("鸠摩智", 100, '男');
+
+ //展示一下角色的信息
+ r1.showRoleInfo();
+ r2.showRoleInfo();
+
+ //3、开始格斗 回合制游戏
+ while (true) {
+ //r1开始攻击r2
+ r1.attack(r2);
+
+ //判断r2的剩余血量
+ if (r2.getBlood() == 0) {
+ System.out.println(r1.getName() + "K.O了" + r2.getName());
+ break;
+ }
+
+ //r2开始攻击r1
+ r2.attack(r1);
+
+ //判断r1的剩余血量
+ if (r1.getBlood() == 0) {
+ System.out.println(r2.getName() + "K.O了" + r1.getName());
+ break;
+ }
+
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/Role.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/Role.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c944f0ecf0af3d0376487d3b4514f9ad08fb851
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/Role.java
@@ -0,0 +1,175 @@
+package case1_Fighting_game_package;
+
+import java.util.Random;
+
+public class Role {
+ private String name;
+ private int blood;
+
+ private char gender;
+
+ private String face;//长相是随机的
+
+ String[] boyFaces = {"风流俊雅", "气宇轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞"};
+ String[] girlFaces = {"沉鱼落雁", "亭亭玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹"};
+
+ //attack 攻击描述:
+ String[] attacks_desc = {
+ "%s使出了一招【背心刺】,转到对方身后,一掌向%s背心的灵台穴拍去。",
+ "%s使出了一招【游空探爪】,飞起身形自半空中变掌为爪,锁向%s",
+ "%s大喝一声,身形下伏,一招【霹雷坠地】,捶向%s双腿。",
+ "%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。",
+ "%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s",
+ "%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s"
+ };
+
+ //injure 受伤描述:
+ String[] injures_desc = {
+ "结果%s退半步,毫发无损",
+ "结果给%s造成一处瘀伤",
+ "结果一击命中,%s痛得弯下了腰",
+ "结果%s痛苦地闷哼了一声,显然受了点内伤",
+ "结果%s摇摇晃晃,一跤摔倒在地",
+ "结果%s脸色一下变得惨白,连退了好几步",
+ "结果「轰」的一声,%s口中鲜血狂喷而出",
+ "结果%s一声惨叫,像滩软泥般塌了下去"
+ };
+
+ public Role() {
+ }
+
+ public char getGender() {
+ return gender;
+ }
+
+ public void setGender(char gender) {
+ this.gender = gender;
+ }
+
+ public String getFace() {
+ return face;
+ }
+
+ public void setFace(char gender) {
+ Random r = new Random();
+
+ //长相是随机的
+ if (gender == '男') {
+ //从boyfaces里面随机长相
+ int index = r.nextInt(boyFaces.length);
+ this.face = boyFaces[index];
+
+ } else if (gender == '女') {
+ //从girlfaces里面随机长相
+ int index = r.nextInt(girlFaces.length);
+ this.face = girlFaces[index];
+
+ } else {
+ this.face = "面目狰狞";
+ }
+
+ }
+
+ public Role(String name, int blood, char gender) {
+ this.name = name;
+ this.blood = blood;
+ this.gender = gender;
+
+ //随机长相
+ setFace(gender);
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ *
+ * @return blood
+ */
+ public int getBlood() {
+ return blood;
+ }
+
+ /**
+ * 设置
+ *
+ * @param blood
+ */
+ public void setBlood(int blood) {
+ this.blood = blood;
+ }
+
+ //定义一个方法用于攻击别人
+ //思考:谁攻击谁?
+ //Role r1 = new Role();
+ //Role r2 = new Role();
+ //r1.攻击(r2);
+ //方法的调用者去攻击参数
+ public void attack(Role role) {
+ Random r = new Random();
+
+ int index = r.nextInt(attacks_desc.length);
+ String KungFu = attacks_desc[index];
+
+ //输出一个攻击的效果
+ System.out.printf(KungFu, this.getName(), role.getName());
+
+ //计算造成的伤害 1~20
+
+ int hurt = r.nextInt(20) + 1;
+
+ //修改一下挨揍的人的血量
+ //剩余血量
+ int remainBoold = role.getBlood() - hurt;
+
+ //对剩余血量做一个验证,如果为负数了,就修改为0
+ remainBoold = remainBoold < 0 ? 0 : remainBoold;
+
+ //修改一下挨揍的人的血量
+ role.setBlood(remainBoold);
+
+ //受伤描述
+ if (remainBoold > 90) {
+ System.out.printf(injures_desc[0], role.getName());
+ } else if (remainBoold > 80) {
+ System.out.printf(injures_desc[1], role.getName());
+ } else if (remainBoold > 70) {
+ System.out.printf(injures_desc[2], role.getName());
+ } else if (remainBoold > 60) {
+ System.out.printf(injures_desc[3], role.getName());
+ } else if (remainBoold > 50) {
+ System.out.printf(injures_desc[4], role.getName());
+ } else if (remainBoold > 30) {
+ System.out.printf(injures_desc[5], role.getName());
+ } else if (remainBoold > 10) {
+ System.out.printf(injures_desc[6], role.getName());
+ } else {
+ System.out.printf(injures_desc[7], role.getName());
+ }
+ System.out.println();
+
+ }
+
+ public void showRoleInfo() {
+ System.out.println("姓名为:" + getName());
+ System.out.println("血量为:" + getBlood());
+ System.out.println("性别为:" + getGender());
+ System.out.println("长相为:" + getFace());
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/print.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/print.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a7f8401bf43830b252ded941c1c5003ab5613b5
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case1_Fighting_game_package/print.java
@@ -0,0 +1,13 @@
+package case1_Fighting_game_package;
+
+public class print {
+ public static void main(String[] args) {
+ //两部分参数:
+ //第一部分参数:要输出的内容%s(占位)
+ //第二部分参数:填充的数据
+ System.out.printf("你好啊%s", "张三");
+
+ System.out.println();
+ System.out.printf("%s你好啊%s", "张三", "李四");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/Goods.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/Goods.java
new file mode 100644
index 0000000000000000000000000000000000000000..c734225e5dd741d6bdf839f96c5be609d64173b0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/Goods.java
@@ -0,0 +1,50 @@
+package case2_object_array_package1;
+
+public class Goods {
+ private String id;
+ private String name;
+ private double price;
+ private int count;
+
+ public Goods() {
+ }
+
+ public Goods(String id, String name, double price, int count) {
+ this.id = id;
+ this.name = name;
+ this.price = price;
+ this.count = count;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public int getCount() {
+ return count;
+ }
+
+ public void setCount(int count) {
+ this.count = count;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/GoodsTest.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/GoodsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb58b1d39ff12f33972d28857ae52dbe3297c2e9
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package1/GoodsTest.java
@@ -0,0 +1,25 @@
+package case2_object_array_package1;
+
+public class GoodsTest {
+ public static void main(String[] args) {
+ //1、创建一个数组
+ Goods[] arr = new Goods[3];
+
+ //2、创建三个商品对象
+ Goods g1 = new Goods("001", "华为手机", 5999, 100);
+ Goods g2 = new Goods("002", "保温杯", 227, 50);
+ Goods g3 = new Goods("003", "枸杞", 12.7, 70);
+
+ //3、把商品添加到数组中
+ arr[0] = g1;
+ arr[1] = g2;
+ arr[2] = g3;
+
+ //4、遍历
+ for (int i = 0; i < arr.length; i++) {
+ // i 索引 arr[i] 元素
+ Goods good = arr[i];
+ System.out.println(good.getId() + "," + good.getName() + "," + good.getPrice() + "," + good.getCount());
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/Car.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/Car.java
new file mode 100644
index 0000000000000000000000000000000000000000..877862750e52d37713fdda7ad0ae104e0c73fa08
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/Car.java
@@ -0,0 +1,40 @@
+package case2_object_array_package2;
+
+public class Car {
+ private String brand;//品牌
+ private int price;//价格
+ private String color;//颜色
+
+ public Car() {
+ }
+
+ public Car(String brand, int price, String color) {
+ this.brand = brand;
+ this.price = price;
+ this.color = color;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/CarTest.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/CarTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..82e4ba5333c1c1c851320b768392b54a7dbc5a80
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/CarTest.java
@@ -0,0 +1,42 @@
+package case2_object_array_package2;
+
+import java.util.Scanner;
+
+public class CarTest {
+ public static void main(String[] args) {
+ //1、创建一个数组用来存3个汽车对象
+ Car[] arr = new Car[3];
+
+ //2、创建汽车对象,数据来自于键盘录入
+ Scanner sc = new Scanner(System.in);
+
+ for (int i = 0; i < arr.length; i++) {
+ //创建汽车的对象
+ Car c = new Car();
+
+ //录入品牌
+ System.out.println("请输入汽车的品牌:");
+ String brand = sc.next();
+ c.setBrand(brand);
+
+ //录入价格
+ System.out.println("请输入汽车的价格:");
+ int price = sc.nextInt();
+ c.setPrice(price);
+
+ //录入颜色
+ System.out.println("请输入汽车的颜色:");
+ String color = sc.next();
+ c.setColor(color);
+
+ //把汽车对象添加到数组当中
+ arr[i] = c;
+ }
+
+ //3、遍历数组
+ for (int i = 0; i < arr.length; i++) {
+ Car car = arr[i];
+ System.out.println(car.getBrand() + "," + car.getPrice() + "," + car.getColor());
+ }
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f2f652082a0fc2d92a4f3549488e3b3ffe453ea
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf.java
@@ -0,0 +1,44 @@
+package case2_object_array_package2;
+
+import java.util.Scanner;
+
+public class scanf {
+ public static void main(String[] args) {
+ //键盘录入:
+ //第一套体系:
+ //nextInt();接收整数
+ //nextDouble();接收小数
+ //next();接收字符串
+ //遇到空格、制表符、回车就停止接受。这些符号后面的数据就不会接受了。
+
+ //第二套体系:
+ //nextLine();接收字符串
+
+ Scanner sc = new Scanner(System.in);
+
+ System.out.println("请输入第一个整数:");
+ int num = sc.nextInt();
+ System.out.println(num);
+
+ System.out.println("请输入第二个整数:");
+ int num2 = sc.nextInt();
+ System.out.println(num2);
+
+ System.out.println("请输入第一个字符串:");
+ String str1 = sc.next();
+ System.out.println(str1);
+
+ System.out.println("请输入第二个字符串:");
+ String str2 = sc.next();
+ System.out.println(str2);
+
+ System.out.println("请输入第一个字符串:");
+ String line1 = sc.nextLine();
+ System.out.println(line1);
+
+ System.out.println("请输入第二个字符串:");
+ String line2 = sc.nextLine();
+ System.out.println(line2);
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf2.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf2.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ccc364852f176a80ec59f9d034c8404d1079dc3
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package2/scanf2.java
@@ -0,0 +1,21 @@
+package case2_object_array_package2;
+
+import java.util.Scanner;
+
+public class scanf2 {
+ public static void main(String[] args) {
+ //键盘录入的两套体系不能混用
+ //弊端:先用nextInt,再用nextLine,会导致下面的nextLine接受不到数据
+
+ Scanner sc = new Scanner(System.in);
+
+ System.out.println("请输入一个整数:");
+ int num = sc.nextInt();
+ System.out.println(num);//123
+
+ System.out.println("请输入一个字符串:");
+ String line = sc.nextLine();
+ System.out.println(line);
+
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/Phone.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/Phone.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a55720b1f9667721b15ae95835545cc49b092ae
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/Phone.java
@@ -0,0 +1,40 @@
+package case2_object_array_package3;
+
+public class Phone {
+ private String brand;//品牌
+ private int price;//价格
+ private String color;//颜色
+
+ public Phone() {
+ }
+
+ public Phone(String brand, int price, String color) {
+ this.brand = brand;
+ this.price = price;
+ this.color = color;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/PhoneTest.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/PhoneTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce809034be1b8c6951a29403a9800056aaacccc0
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package3/PhoneTest.java
@@ -0,0 +1,31 @@
+package case2_object_array_package3;
+
+public class PhoneTest {
+ public static void main(String[] args) {
+ //1、创建一个数组
+ Phone[] arr = new Phone[3];
+
+ //2、创建手机的对象
+ Phone p1 = new Phone("小米", 1999, "白色");
+ Phone p2 = new Phone("华为", 4999, "蓝色");
+ Phone p3 = new Phone("魅族", 3999, "红色");
+
+ //3、把手机对象添加到数组中
+ arr[0] = p1;
+ arr[1] = p2;
+ arr[2] = p3;
+
+ //4、获取三部手机的平均价格
+ int sum = 0;
+ for (int i = 0; i < arr.length; i++) {
+ //i 索引 arr[i] 元素(手机对象)
+ Phone p = arr[i];
+ sum += p.getPrice();
+ }
+
+ //5、求平均值
+ double avg = sum * 0.1 / arr.length;
+
+ System.out.println(avg);
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriend.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriend.java
new file mode 100644
index 0000000000000000000000000000000000000000..8b73f7333ee3e639b6cadcd5ae2805b4cf4c4fd7
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriend.java
@@ -0,0 +1,50 @@
+package case2_object_array_package4;
+
+public class GirlFriend {
+ private String name;//姓名
+ private int age;//年龄
+ private String gender;//性别
+ private String hobby;//爱好
+
+ public GirlFriend() {
+ }
+
+ public GirlFriend(String name, int age, String gender, String hobby) {
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ this.hobby = hobby;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getHobby() {
+ return hobby;
+ }
+
+ public void setHobby(String hobby) {
+ this.hobby = hobby;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriendTest.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriendTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ba53ac9b94a5617b0e722616dd9a94787b240ee
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package4/GirlFriendTest.java
@@ -0,0 +1,45 @@
+package case2_object_array_package4;
+
+public class GirlFriendTest {
+ public static void main(String[] args) {
+ //1、定义数组存入女朋友的对象
+ GirlFriend[] arr = new GirlFriend[4];
+
+ //2、创建女朋友的对象
+ GirlFriend gf1 = new GirlFriend("小诗诗", 18, "萌妹子", "吃零食");
+ GirlFriend gf2 = new GirlFriend("小丹丹", 19, "萌妹子", "玩游戏");
+ GirlFriend gf3 = new GirlFriend("小惠惠", 20, "萌妹子", "看书,学习");
+ GirlFriend gf4 = new GirlFriend("小莉莉", 23, "憨妹子", "睡觉");
+
+ //3、把对象添加到数组当中
+ arr[0] = gf1;
+ arr[1] = gf2;
+ arr[2] = gf3;
+ arr[3] = gf4;
+
+ //4、求和
+ int sum = 0;
+ for (int i = 0; i < arr.length; i++) {
+ //i 索引 arr[i]元素(女朋友对象)
+ GirlFriend gf = arr[i];
+ //累加
+ sum += gf.getAge();
+ }
+
+ //5、平均值
+ int avg = sum / arr.length;
+ System.out.println(avg);
+
+ //6、统计年龄比平均值低的有几个,打印他们的信息
+ int count = 0;
+ for (int i = 0; i < arr.length; i++) {
+ GirlFriend gf = arr[i];
+ if (gf.getAge() < avg) {
+ count++;
+ System.out.println(gf.getName() + "," + gf.getAge() + "," + gf.getGender() + "," + gf.getHobby());
+ }
+ }
+
+ System.out.println(count + "个");
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Student.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..d318302a7b34ea5da6857e14000cd72a626c82f2
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Student.java
@@ -0,0 +1,40 @@
+package case2_object_array_package5;
+
+public class Student {
+ private int id;
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(int id, String name, int age) {
+ this.id = id;
+ this.name = name;
+ this.age = age;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Test.java b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2134ebd6912c35c9588c660c29f8660947a62df
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_Case_module/src/case2_object_array_package5/Test.java
@@ -0,0 +1,187 @@
+package case2_object_array_package5;
+
+public class Test {
+ public static void main(String[] args) {
+ /*
+ 定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号、姓名各不相同
+ 学生的属性:学号、姓名、年龄。
+ 要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
+ 要求2:添加完毕之后,遍历所有学生信息。
+ 要求3:通过id删除学生信息
+ 如果存在,则删除,如果不存在,则提示删除失败。
+ 要求4:删除完毕之后,遍历所有学生信息。
+ 要求5:查询数组id为"heima002"的学生,如果存在,则将他的年龄+1岁
+ */
+
+ //1、创建一个数组用来存储学生对象
+ Student[] arr = new Student[3];
+
+ //2、创建学生对象并添加到数组当中
+ Student stu1 = new Student(1, "张三", 23);
+ Student stu2 = new Student(2, "李四", 24);
+ //Student stu3 = new Student(3, "王五", 25);
+
+ //3、把学生对象添加到数组当中
+ arr[0] = stu1;
+ arr[1] = stu2;
+ //arr[2] = stu3;
+
+ //要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
+ //读题拆解法:
+ Student stu4 = new Student(4, "赵六", 26);
+
+ //唯一性判断
+ //已存在 --- 不用添加
+ //不存在 --- 就可以把学生对象添加进数组
+ boolean flag = contains(arr, stu4.getId());
+ if (flag) {
+ //已存在 --- 不用添加
+ System.out.println("当前id重复,请修改id后再进行添加。");
+
+ } else {
+ //不存在 --- 就可以把学生对象添加进数组
+ //把stu4添加到数组当中
+ //1、数组已经存满 --- 只能创建一个新的数组,新数组的长度 = 老数组 + 1;
+ //2、数组没有存满 --- 直接添加
+ int count = getCount(arr);
+ if (count == arr.length) {
+ //已经存满
+ //创建一个新的数组,长度 = 老数组长度 + 1;
+ //然后把老数组的元素,拷贝到新数组当中
+ Student[] newArr = createNewArr(arr);
+ //把stu4添加进去
+ newArr[count] = stu4;
+
+ //要求2:添加完毕之后,遍历所有学生信息。
+ printArr(newArr);
+ } else {
+ //没有存满
+ //[stu1, stu2, null]
+ //getCount获取到的是2,表示数组当中已经有了2个元素
+ //还有一层意思,如果下一次要添加数据,就是添加到2索引到位置
+ arr[count] = stu4;
+
+ //要求2:添加完毕之后,遍历所有学生信息。
+ printArr(arr);
+ }
+
+ }
+
+// 要求3:通过id删除学生信息
+// 如果存在,则删除,如果不存在,则提示删除失败。
+
+ //要找到id在数组中对应的索引
+ int index = getIndex(arr, 3);
+ if (index >= 0) {
+ //如果存在,则删除
+ //[stu1, stu2, stu3]
+ arr[index] = null;
+
+ //要求4:删除完毕之后,遍历所有学生信息。
+ printArr(arr);
+
+ } else {
+ //如果不存在,则提示删除失败
+ System.out.println("当前id不存在,删除失败");
+
+ }
+
+ //要求5:查询数组id为"heima002"的学生,如果存在,则将他的年龄+1岁
+ //先要找到id为2的学生的索引
+ index = getIndex(arr, 2);
+
+ //判断索引
+ if (index >= 0) {
+ //存在,则将他的年龄+1岁
+ Student stu = arr[index];
+ //把原来的年龄拿出来
+ int newAge=stu.getAge()+1;
+ //把+1之后的年龄塞进去
+ stu.setAge(newAge);
+
+ //遍历数组
+ printArr(arr);
+ } else {
+ //不存在,则直接提示
+ System.out.println("当前id不存在,修改失败");
+ }
+
+ }
+
+ //1、我要干嘛? 找到id在数组中的索引
+ //2、我需要什么? 数组 id
+ //3、调用处是否需要继续使用方法的结果? 要
+ public static int getIndex(Student[] arr, int id) {
+ for (int i = 0; i < arr.length; i++) {
+ //依次得到每一个学生对象
+ Student stu = arr[i];
+ //对stu进行一个非空判断
+ if (stu != null) {
+ int sid = stu.getId();
+ if (sid == id) {
+ return i;
+ }
+ }
+ }
+
+ //当循环结束之后,还没有找到就表示不存在
+ return -1;
+ }
+
+ public static void printArr(Student[] arr) {
+ System.out.println("===================");
+ for (int i = 0; i < arr.length; i++) {
+ Student stu = arr[i];
+ if (arr[i] != null) {
+ System.out.println(stu.getId() + "," + stu.getName() + "," + stu.getAge());
+ }
+ }
+ }
+
+ //创建一个新数组,长度 = 老数组长度 + 1
+ //然后把老数组的元素,拷贝到新数组当中
+ public static Student[] createNewArr(Student[] arr) {
+ Student[] newArr = new Student[arr.length + 1];
+
+ //循环遍历得到老数组中的每一个元素
+ for (int i = 0; i < arr.length; i++) {
+ newArr[i] = arr[i];
+ }
+
+ //把新数组返回
+ return newArr;
+ }
+
+ //定义一个方法判断数组中已经存了几个元素
+ public static int getCount(Student[] arr) {
+ //定义一个计数器用来统计
+ int count = 0;
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] != null) {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ //1、我要干嘛? 唯一性判断
+ //2、我干这件事情,需要什么才能完成? 数组,id
+ //3、调用处是否需要继续使用方法的结果? 必须返回
+ public static boolean contains(Student[] arr, int id) {
+ for (int i = 0; i < arr.length; i++) {
+ //依次获取到数组里面的每一个学生对象
+ Student stu = arr[i];
+ if (stu != null) {
+ //获取数组中学生对象的id
+ int sid = stu.getId();
+ //比较
+ if (sid == id) {
+ return true;
+ }
+ }
+ }
+
+ //当循环结束之后,还没有找到一样的,那么就表示数组中要查找的id是不存在的
+ return false;
+ }
+}
diff --git a/Object_Oriented_project/Object_Oriented_project.iml b/Object_Oriented_project/Object_Oriented_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Object_Oriented_project/Object_Oriented_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..ad58c26725104394cbc2eb012de9596afa051cde
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..08ec3f7ca28cb509c23c2634b3a03fe0e3796d89
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Swim.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Swim.class
new file mode 100644
index 0000000000000000000000000000000000000000..c610dcc8eeee0fbdc75a8c16c08f727a054fc20b
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Swim.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..87e5520bb61df2340b35dd79dd1c57ec6c7b3a72
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$2.class
new file mode 100644
index 0000000000000000000000000000000000000000..963f48de2a70e355b2bf2b8d78985215f8d83c87
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$3.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$3.class
new file mode 100644
index 0000000000000000000000000000000000000000..b93557f1e2f42b708fee83f6963639b37d75395e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test$3.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..e20bf72f1a6064da2b71d7988a3a034397567098
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..ca18ebca8a80fb3ca4270af87c6cf150489d997c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$2.class
new file mode 100644
index 0000000000000000000000000000000000000000..b3455e60faf40159a5faca6831e2992a05433dd3
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2$2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2.class
new file mode 100644
index 0000000000000000000000000000000000000000..661b02a92e76476eedf0cad3de60663491f3bdb6
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Anonymous_Inner_Class_package1/Test2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Code_block_demo1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Code_block_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5bf1e0e7e4c4a49c9888c36c7e8b28734f33fbab
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Code_block_demo1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..28caf4ac17b5d22360cb444347c9ca87522ba782
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Code_block_package/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..6282a4944e6000ab7b3382a3b66c89f18a2511c8
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..685b9fca57fade8d155eb0ec318daf71b7190a87
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Frog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Frog.class
new file mode 100644
index 0000000000000000000000000000000000000000..7207dd0381448e64503e7108962a1ab563fffa57
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Frog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Rabbit.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Rabbit.class
new file mode 100644
index 0000000000000000000000000000000000000000..ec99da296ee97b35068e1756f0d39b69bd152e40
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Rabbit.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Swim.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Swim.class
new file mode 100644
index 0000000000000000000000000000000000000000..c8f0706e4f785b8de57741537d5c70fda5c8c7c6
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Swim.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..6ecb34b7454d62535f4c9ee1af298fa8a50a53d3
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Interface_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car$Engine.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car$Engine.class
new file mode 100644
index 0000000000000000000000000000000000000000..03ebf40ab5e971946406db43afcc9c4ea88e472e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car$Engine.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car.class
new file mode 100644
index 0000000000000000000000000000000000000000..87d1d48974c643a236b17d15565bfacf82c4ff21
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Car.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..fbf667099925d7543bb0ac9ccc20ea3ef6ef5e2f
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Internal_class_package/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer$1Inner.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer$1Inner.class
new file mode 100644
index 0000000000000000000000000000000000000000..b1056518d90bccde3a030accd0d8632711db8922
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer$1Inner.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer.class
new file mode 100644
index 0000000000000000000000000000000000000000..c36a3ef3ac273b29b1d6e3f1ba7f8e575796e492
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Outer.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..d85c1f53a25c786c61cb9e12648f85cbf5765f4a
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Local_inner_class_package/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer$Inner.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer$Inner.class
new file mode 100644
index 0000000000000000000000000000000000000000..ec1b08a86c325902630f20fec5d828b6f8f5205f
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer$Inner.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer.class
new file mode 100644
index 0000000000000000000000000000000000000000..019f93592e15b3d74ef94211b92dd5e07667d522
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Outer.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..b58292557216ea9c657482b3a7a3694f88fec98b
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer$Inner.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer$Inner.class
new file mode 100644
index 0000000000000000000000000000000000000000..061fe6b76c9e28418b61909232c131dea297841a
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer$Inner.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer.class
new file mode 100644
index 0000000000000000000000000000000000000000..d6cf68560ba8c41edc8a1677ecdb5e3ef8a4f2c3
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Outer.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..681a36a3d5567922901dd90c8ef32cea4da6cc5e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Member_internal_class_package2/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..26f49bda29062f6569c960f798f031ff59953a43
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..17ca513db3e8bd22c1a5ffedc1a1dbdc2393d75c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package1/Teacher.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package1/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d89437610a8298e5f082537923e703e395977d6
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package1/Teacher.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package2/Teacher.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package2/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..b138194026dc384449f66787a63b77b7de340956
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Multiple_packages/package2/Teacher.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Permission_modifier_package/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Permission_modifier_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..0fbc3990a5c01da1f7ea0967a02c9412e9cf12bf
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Permission_modifier_package/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer$Inner.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer$Inner.class
new file mode 100644
index 0000000000000000000000000000000000000000..6c5c783b8d8978b832f28b3db58df8202116c12a
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer$Inner.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer.class
new file mode 100644
index 0000000000000000000000000000000000000000..443ecb8b01ac77557beae4dbffa776a1d57a71c3
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Outer.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..4379d45ce82dda52b2015bf1406617cf39cb9cea
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/Static_inner_class_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Person.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..b2e9fc0bf23f7613267bd6cca0bfed60a2f19cf6
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Person.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..3f7fb8d3a3123c617f919196d5a7db86499f840f
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Teacher.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..7be557c85105fd64e93029f026cc0c36c33cf020
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Teacher.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..f43ef382d12f2f03eeab1ba0d0c26ade78c2f400
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..41d89420cc5e1bed1f272cac3d6dbe3b1675093e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..607056c7293c598a1047ccf4810f2c79e4733241
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Frog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Frog.class
new file mode 100644
index 0000000000000000000000000000000000000000..dcd41fc04a4094839019baba56c0ddb0dcad4f81
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Frog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Sheep.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Sheep.class
new file mode 100644
index 0000000000000000000000000000000000000000..8f3d3ba4928a2c39c1fe3417ca2eb669b1ce6c36
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Sheep.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..82fd81262f928397c3d9866af430f40a24b47019
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/abstract_class_package2/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Fu.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Fu.class
new file mode 100644
index 0000000000000000000000000000000000000000..0a05fb3cc2f5a56b1f9f35c3a0a3129e98f284c0
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Fu.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..05a38b234673d6d76027de6f42347671c1fbf57d
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..82b5709b21087729018fac6a71670de8b003ab00
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test2.class
new file mode 100644
index 0000000000000000000000000000000000000000..2a0cc57450184c436d447a68470fe52531a15c06
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/final_package/Test2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballCoach.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballCoach.class
new file mode 100644
index 0000000000000000000000000000000000000000..73dab6358eeb7ead5da68a597e3e78a009c9b048
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballCoach.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballSporter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballSporter.class
new file mode 100644
index 0000000000000000000000000000000000000000..a1f3c19f4850f0ca2e518b2621683f2ada0b6cc7
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/BasketballSporter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Coach.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Coach.class
new file mode 100644
index 0000000000000000000000000000000000000000..c48691dc41c6a714f571aaa8012a887ab61953f6
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Coach.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/English.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/English.class
new file mode 100644
index 0000000000000000000000000000000000000000..bf680da4bb0ad00fda5cc4f27236d5eff0b8f6e5
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/English.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Person.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..c5c5716626adc80e63e07ba2fcd7a08a3e594860
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Person.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangCoach.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangCoach.class
new file mode 100644
index 0000000000000000000000000000000000000000..a5063059a258a7b493751213300a5b3c99e35c35
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangCoach.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangSporter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangSporter.class
new file mode 100644
index 0000000000000000000000000000000000000000..704832f673ad48aff3f4fb51d839ed1a34f31ea5
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/PingPangSporter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Sporter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Sporter.class
new file mode 100644
index 0000000000000000000000000000000000000000..78c954bcd89a15ca37137b50ae30ba4e1a7917f9
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Sporter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..29e94ef37dac34b1173e38f93d96b1440ebe5e44
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_case_package/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Inter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Inter.class
new file mode 100644
index 0000000000000000000000000000000000000000..63794dd6753f9b776e9b5e98a36699e09303f81d
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Inter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..cf778d3387c9ec7e425dd9db92489ff80ddd8871
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..19993f5987f8443f8cab7d01026ca49d16d300c3
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package2/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter1.class
new file mode 100644
index 0000000000000000000000000000000000000000..e000dedf651060994edea5a95691852aa67c3030
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter2.class
new file mode 100644
index 0000000000000000000000000000000000000000..37ca9dc73c2d57890afaa728f92bc711fc893f34
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Inter2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..551e185314a406565f039d704e8e6e3b6f0af8d0
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..e757dc1db1b46995ef727d16b557585dfbfed501
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package3/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3f01595c37887b7b9c2012864c007e7b7838472e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter2.class
new file mode 100644
index 0000000000000000000000000000000000000000..36a2b7eaddd6b2533115a716641f09c82adbd342
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter3.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter3.class
new file mode 100644
index 0000000000000000000000000000000000000000..dd8dc6298b74d9ca712312c2e8de86f840f74d12
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Inter3.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..4ab4093756e2450f18742b732352d21d0bd40fa1
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..8b2565cf42aa10399bd545836dd12e8f1fe177e1
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package4/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter1.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter1.class
new file mode 100644
index 0000000000000000000000000000000000000000..84eb3db24afca7ebce175c1f1eff27a58b5457e8
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter1.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter2.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter2.class
new file mode 100644
index 0000000000000000000000000000000000000000..037c6b5440eac6aa2acc93a7d1e650f358efc3ca
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Inter2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..d5bde85d791aa9f13ff95a7d7f6cea0fe4a1f47e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..9bf74a05156e5e3a6092f1f6d66837275dd84f9e
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package5/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Inter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Inter.class
new file mode 100644
index 0000000000000000000000000000000000000000..cea634ae96f121c45cc463655fabb5de5f411998
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Inter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..e969be78a175389084eb7a52e7bff73368c37e46
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..e947216caddfc766d8d04ed1e54ab615eeb51f16
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package6/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/InterA.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/InterA.class
new file mode 100644
index 0000000000000000000000000000000000000000..2a425aa2824eb42c7b286a99104e624e8cefc34f
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/InterA.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..73ede40066eb49ea11ece5dcd7bdfff01b018d81
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package7/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/Inter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/Inter.class
new file mode 100644
index 0000000000000000000000000000000000000000..eb703d5cfa39e5fdb2f7c12f5bdcc87d590e2c4c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/Inter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterAdapter.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterAdapter.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1b3caf5aa554ba06c98ace7ee98f20897716863
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterAdapter.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterImpl.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..c0fbe96a7f333f46588ab8f6a57c83b1afbbb525
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_module/interface_package8/InterImpl.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..503eb59c21ae87efa2f769bac12a39fdae0e1457
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Cat.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Cat.class
new file mode 100644
index 0000000000000000000000000000000000000000..5b2268a32bdc5fd83cb236947af8ea69c04c7e48
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Cat.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..fcb615057f91fd4791b07d35b5b0f5a11d91b770
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Person.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..eeb5cd3e0616ebaef48a0cee36d493ddcca7411c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Person.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..f7be4574de7fadd818d43d44f47b957ff2c2dc76
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_case/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Administrator.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Administrator.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ca61e631e9c45da0a1535c28eadd5a3e3c1c588
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Administrator.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Person.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..f495f5e206cc71f5691ea6dff9f3f8c4875f313b
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Person.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..3f0d4eb6eeef0ac0a6476215cb2d386ff8f62dcc
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Teacher.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..5d546e82697b905ee7ba4676847212cdedb38831
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Teacher.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..7e20c01d11eb94cfd5fc4d6691e9e1b82ecc01da
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package1/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..fc9d1ae0a48aa826547a548c48acb42f0d872563
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Cat.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Cat.class
new file mode 100644
index 0000000000000000000000000000000000000000..0aae1268bb4fc0c17115e90917cd0e3964fb3f6c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Cat.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..e563e8f42a8ba511eabf5c9c67127aaafcb9ac67
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..f6a246fdfd2437a162e134ca547e2c95951fcbd9
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package2/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Animal.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Animal.class
new file mode 100644
index 0000000000000000000000000000000000000000..c70e786a679e807c5782c74cc4016493fb5a1312
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Animal.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Cat.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Cat.class
new file mode 100644
index 0000000000000000000000000000000000000000..41ef4a06e5732d16cb6b98e175ae917297254441
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Cat.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Dog.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Dog.class
new file mode 100644
index 0000000000000000000000000000000000000000..72728c0a52fafaeef7c8d319029d9387753d368c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Dog.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..b886bbe5cdc2647fe2f3d2bef13ad261dab6394b
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Advanced_polymorphic_module/polymorphic_package3/Test.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriend.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriend.class
new file mode 100644
index 0000000000000000000000000000000000000000..db445bd9c5fe75dca6b9f09eee204c6bf9c715e2
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriend.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriendTest.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriendTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..517ef50eac68b0b711a1993523dda566ca2dc3f0
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/GirlFriendTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/Phone.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/Phone.class
new file mode 100644
index 0000000000000000000000000000000000000000..dd43ab8a3e97b5b3bce9870b074c34d052137fce
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/Phone.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/PhoneTest.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/PhoneTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..5a55921241d136fdfb5203d22e8e79fa7d472105
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_Oriented_Basis_package/PhoneTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StringTest.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StringTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..fa54052b7bd4171789cc6ff94bea88f5152ec790
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StringTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..39f97333365fc448d602cd9667ff3bbbf6a9114a
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StudentTest.class b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StudentTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..349770cebb92bd2b631c50f5085346fd801d4da8
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Basis_module/Object_oriented_encapsulation_package/StudentTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/GameTest.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/GameTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..1303d66df6f6799e833a434b301e847281afd76a
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/GameTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/Role.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/Role.class
new file mode 100644
index 0000000000000000000000000000000000000000..86c1788bceb80bb908c19d05bd5f64bdaeb50690
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/Role.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/print.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/print.class
new file mode 100644
index 0000000000000000000000000000000000000000..7fb2993912257abf90c277c419f0f8125c217fd0
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case1_Fighting_game_package/print.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/Goods.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/Goods.class
new file mode 100644
index 0000000000000000000000000000000000000000..e60f94b2e0c51867ce703118bc876663266ccbf0
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/Goods.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/GoodsTest.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/GoodsTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..b9edc92f7a6c1d1c49168956dcddbaafcebc7a56
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package1/GoodsTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/Car.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/Car.class
new file mode 100644
index 0000000000000000000000000000000000000000..53b06b4948f6a9f01fd137464118307ddbe4168c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/Car.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/CarTest.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/CarTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..c612a94b3713fa568d8076cef2a5f8765305b029
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/CarTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf.class
new file mode 100644
index 0000000000000000000000000000000000000000..b873e951f2bc60e6207fd6e091f592d5577a78c2
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf2.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf2.class
new file mode 100644
index 0000000000000000000000000000000000000000..f2d7baae7c860b59c4f421ad4763aed0ab48bf08
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package2/scanf2.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/Phone.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/Phone.class
new file mode 100644
index 0000000000000000000000000000000000000000..3933d51d1b5b5b13c3cfab74d2d603a82859bd1c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/Phone.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/PhoneTest.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/PhoneTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..ea14e0b5a9c9c2517ceadbfa9d62f973ea2fd7e1
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package3/PhoneTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriend.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriend.class
new file mode 100644
index 0000000000000000000000000000000000000000..896418673286dd38f0bf5e1bf486c9c5faf00ac4
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriend.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriendTest.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriendTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..43cc8dc35f406eab7167597e94df795954b0f978
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package4/GirlFriendTest.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Student.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..dc5456492dc4fddaa885cb4e70b7fc79afa79d02
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Student.class differ
diff --git a/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Test.class b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..e9a83e5b4699ed6f37339e29f991afa07a36ef6c
Binary files /dev/null and b/Object_Oriented_project/out/production/Object_Oriented_Case_module/case2_object_array_package5/Test.class differ
diff --git a/Process_control_statement_project/.DS_Store b/Process_control_statement_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..cadfea69b926beff6dd8271a83357bb3133a221a
Binary files /dev/null and b/Process_control_statement_project/.DS_Store differ
diff --git a/Process_control_statement_project/.idea/.gitignore b/Process_control_statement_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Process_control_statement_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Process_control_statement_project/.idea/misc.xml b/Process_control_statement_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Process_control_statement_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/.idea/modules.xml b/Process_control_statement_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cdfe0cc702788dfbc35aac2f8e777392520f55f1
--- /dev/null
+++ b/Process_control_statement_project/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/.idea/uiDesigner.xml b/Process_control_statement_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/Process_control_statement_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/.idea/workspace.xml b/Process_control_statement_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4edce536eaa77760e6b9a1b26884684d3e5eaf24
--- /dev/null
+++ b/Process_control_statement_project/.idea/workspace.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1675580384227
+
+
+ 1675580384227
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/Cyclic_structure_module/Cyclic_structure_module.iml b/Process_control_statement_project/Cyclic_structure_module/Cyclic_structure_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/Cyclic_structure_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case1_Every_seven_days.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case1_Every_seven_days.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e9ac8e6aa0dcbe4517c69ea892247e61056ea74
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case1_Every_seven_days.java
@@ -0,0 +1,28 @@
+package Case_package;
+
+public class case1_Every_seven_days {
+ public static void main(String[] args) {
+ /*
+ 朋友聚会的时候可能会玩一个游戏:逢7过
+ 游戏规则:从任意一个数字开始报数,当你要报的数字是包括7或者7的倍数时,都要说:过
+ 需求:使用程序在控制台打印出1~100之间的满足逢7过规则的数据。
+ */
+
+ //分析:
+ //个位 7 十位 7 7的倍数
+ //1 2 3 4 5 6 过 8 9
+
+ //1.得到1~100之间的每一个数字
+ //开始:1
+ //结束:100
+ for (int i = 1; i <= 100; i++) {
+ //2.判断每一个数字,如果符合规则,就打印过;如果不符合规则就打印真实的数字
+ if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
+ System.out.println("过");
+ continue;
+ }
+ System.out.println(i);
+ }
+
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case2_square_root.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case2_square_root.java
new file mode 100644
index 0000000000000000000000000000000000000000..e023dcc81641a0a8d73b5c5982b8d32fce6f7ab2
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case2_square_root.java
@@ -0,0 +1,49 @@
+package Case_package;
+
+import java.util.Scanner;
+
+public class case2_square_root {
+ public static void main(String[] args) {
+ /*
+ 需求:键盘录入一个大于等于2的整数 x,计算并返回 x 的平方根。
+ 结果只保留整数部分,小数部分将被舍去。
+ */
+
+ //分析:
+ //平方根 16的平方根是4
+ // 4的平方根为2
+
+ // 10
+ // 1 * 1 = 1 < 10
+ // 2 * 2 = 4 < 10
+ // 3 * 3 = 9 < 10
+ // 4 * 4 = 16 > 10
+ //推断:10的平方根在3~4之间。
+
+ //在代码当中
+ //从1开始循环,拿着数字的平方跟原来的数字进行比较
+ //如果小于的,那么继续往后判断
+ //如果相等,那么当前数字就是平方根
+ //如果大于的,那么前一个数字就是平方的整数部分
+
+ //1.键盘录入一个整数
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入一个整数:");
+ int number = sc.nextInt();
+
+ //2.从1开始循环判断
+ //开始:1
+ //结束:number
+ for (int i = 1; i <= number; i++) {
+ //用i*i 再跟number进行比较
+ if (i * i == number) {
+ System.out.println(i + "就是" + number + "的平方根");
+ //一旦找到了,循环就可以停止了,后面的数字就不需要再找了,提高代码的运行效率。
+ break;
+ } else if (i * i > number) {
+ System.out.println(i - 1 + "就是" + number + "平方根的整数部分");
+ break;
+ }
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case3_Judge_prime_number1.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case3_Judge_prime_number1.java
new file mode 100644
index 0000000000000000000000000000000000000000..bcf76854eba0f0b2b77f8de58b0449139b0bcdc9
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case3_Judge_prime_number1.java
@@ -0,0 +1,51 @@
+package Case_package;
+
+import java.util.Scanner;
+
+public class case3_Judge_prime_number1 {
+ public static void main(String[] args) {
+ //需求:键盘录入一个正整数 x,判断该整数是否为一个质数。
+
+ //质数
+ //如果一个整数只能被1和本身整除,那么这个数就是质数,否则这个数叫做合数
+ //7 = 1 * 7 质数
+ //8 = 1 * 8 2 * 4 合数
+
+ //分析:
+ //1.键盘录入一个正整数
+ //number
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入一个正整数:");
+ int number = sc.nextInt();
+
+
+ //定义一个变量,表示标记
+ //标记着number是否为一个质数
+ //true:是一个质数
+ //false:不是一个质数
+
+ //表示最初就认为number是一个质数
+ boolean flag = true;
+
+ //2.判断
+ //写一个循环,从2开始判断,一直判断到number-1为止
+ //看这个范围之内,有没有数字可以被 number 整数
+ for (int i = 2; i < number; i++) {
+ //i 依次表示这个范围之内的每一个数字
+ //看number是否能被i整除即可
+ if (number % i == 0) {
+ //System.out.println(number + "不是一个质数。");
+ flag = false;
+ break;
+ }
+ }
+
+ //只有当这个循环结束了,表示这个范围之内所有的数字都判断完毕了
+ //此时才能断定number是一个质数
+ if (flag) {
+ System.out.println(number + "是一个质数");
+ } else {
+ System.out.println(number + "不是一个质数");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case4_Judge_prime_number2.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case4_Judge_prime_number2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3e00a2a243f45f21b26b711da08c4b859c93d0c
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case4_Judge_prime_number2.java
@@ -0,0 +1,33 @@
+package Case_package;
+
+public class case4_Judge_prime_number2 {
+ public static void main(String[] args) {
+ // 10000
+ // 2~9999
+ //循环次数过多
+
+ //推荐一个简化的思路
+ //81
+ //1 * 81
+ //3 * 27
+ //9 * 9
+
+ //以81的平方根9,为中心
+ //而且假设 a * b = 81
+ //那么a和b中,其中有一个必定是小于等于9的
+ //另一个是大于等于9的
+
+ //假设,都是大于9 —— 9.1 * 9.1 > 81
+ //假设,都是小于9 —— 8.9 * 8.9 < 81
+ //其中一个数字一定是小于等于平方根
+ //另一个数字一定是大于等于平方根
+
+ int number = 100;
+
+ //如果这个范围之内,所有的数字都不能被number整除
+ //那么number就一定是一个质数
+// for (int i = 2; i <= number的平方根; i++){
+//
+// }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case5_Guess_numbers1.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case5_Guess_numbers1.java
new file mode 100644
index 0000000000000000000000000000000000000000..f99159a39b2c842c2c1c82ef4864dac949048665
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case5_Guess_numbers1.java
@@ -0,0 +1,26 @@
+package Case_package;
+
+//1、导包
+
+import java.util.Random;
+
+public class case5_Guess_numbers1 {
+ public static void main(String[] args) {
+ //先获取一个随机数
+ //范围:0~10
+
+ //2、创建对象
+ Random r = new Random();
+
+ //3、生成随机数
+ //判断技巧:
+ //在小括号中,书写的是生成随机数的范围
+ //这个范围一定是从0开始的
+ //到这个数-1结束
+ //口诀:包头不包尾,包左不包右
+ for (int i = 0; i < 100; i++) {
+ int number = r.nextInt(10);//0~9
+ System.out.println(number);
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case6_Guess_numbers2.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case6_Guess_numbers2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c9b39b1383799a246b4862935d772bab19c473aa
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case6_Guess_numbers2.java
@@ -0,0 +1,28 @@
+package Case_package;
+
+import java.util.Random;
+
+public class case6_Guess_numbers2 {
+ public static void main(String[] args) {
+ //需求:
+ //随机范围:1~100
+
+ //创建对象
+ Random r = new Random();
+
+ //生成随机数
+ int number = r.nextInt(100) + 1;//1~100
+ System.out.println(number);
+
+ //秘诀
+ //用来生成任意数到任意数之间的随机数 7~15
+ //1、让这个范围头尾都减去一个值,让这个范围从0开始 -7 0~8
+ //2、尾巴+1 8+1=9
+ //3、最终的结果,再加上第一步减去的值。
+ int number2 = r.nextInt(9) + 7;
+ //0~8 + 7
+ System.out.println(number2);
+
+
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case7_Guess_numbers3.java b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case7_Guess_numbers3.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b0bbad66f5f4d2de11514a5d2959e375afc3daf
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Case_package/case7_Guess_numbers3.java
@@ -0,0 +1,57 @@
+package Case_package;
+
+import java.util.Random;
+import java.util.Scanner;
+
+public class case7_Guess_numbers3 {
+ public static void main(String[] args) {
+ //需求:程序自动生成一个 1-100 之间的随机数字,使用程序实现猜出这个数字是多少?
+
+ //扩展小需求:加一个保底机制,3次猜不中,直接提示猜中了
+
+ //注意点:
+ //1、生成随机数的代码 int number = r.nextInt(100) + 1;
+ //不能写在循环的里面,否则每一次都会产生一个新的随机数
+
+ //2、抽奖机制
+ //用点券去抽水晶
+ //保底 360次
+
+ //计数器
+ //用来统计当前已经猜了多少次
+ int count = 0;
+
+ //分析:
+ //1、生成一个1~100之间的随机数字
+ Random r = new Random();
+ int number = r.nextInt(100) + 1;
+ System.out.println(number);
+
+ //2、猜这个数字是多少
+ Scanner sc = new Scanner(System.in);
+
+ while (true) {
+ System.out.println("请输入你要猜的数字:");
+ int guessNumber = sc.nextInt();
+ count++;
+
+ if(count==3){
+ System.out.println("猜中了");
+ break;
+ }
+
+ //3、判断两个数字给出不同的提示
+ //猜的数字大了,提示 大了
+ //猜的数字小了,提示 小了
+ //猜的数字一样,提示猜中了
+ if (guessNumber > number) {
+ System.out.println("大了");
+ } else if (guessNumber < number) {
+ System.out.println("小了");
+ } else {
+ System.out.println("恭喜你,猜中了!");
+ break;
+ }
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo1.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..583ed8729e00e24aafc35c518501b12f54467568
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo1.java
@@ -0,0 +1,17 @@
+package For_package;
+
+public class For_demo1 {
+ public static void main(String[] args) {
+ //1.需求:打印5次HelloWorld
+
+ //分析:
+ //i 1~5
+// for(初始化语句;条件判断语句;条件控制语句){
+// 循环体
+// }
+
+ for(int i=1;i<=5;i++){
+ System.out.println("HelloWorld");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo2.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcd30d0e7cfabd0ec1d95b703b320c1b06cc8e5f
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/For_demo2.java
@@ -0,0 +1,29 @@
+package For_package;
+
+public class For_demo2 {
+ public static void main(String[] args) {
+ //需求1:打印1~5
+
+ //分析:
+ //开始条件:1
+ //结束条件:5
+ for(int i=1;i<=5;i++){
+ //第一次循环:i = 1
+ //第二次循环:i = 2
+ // i : 1 2 3 4 5
+ System.out.println(i);
+ }
+
+
+ //需求2:打印5~1
+ //分析:
+ //开始条件:5
+ //结束条件:1
+ for(int i=5;i>=1;i--){
+ //第一次循环:i = 5
+ //第二次循环:i = 4
+ // i : 5 4 3 2 1
+ System.out.println(i);
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/case1_Disconnection_and_reconnection.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case1_Disconnection_and_reconnection.java
new file mode 100644
index 0000000000000000000000000000000000000000..d383c6bb234d3446fa4c8508e0cb113eb1bdef24
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case1_Disconnection_and_reconnection.java
@@ -0,0 +1,24 @@
+package For_package;
+
+public class case1_Disconnection_and_reconnection {
+ public static void main(String[] args) {
+ /*
+ 在实际开发中,需要重复执行的代码,会选择循环实现。
+ 比如:玩游戏的时候,如果网不好那么会经常断线重连。
+ 那么断线重连这个业务逻辑就需要重复执行。
+ 假设现在公司要求,断线重连的业务逻辑最多只写5次
+ 请用代码实现。
+ 备注:断线重连的业务逻辑可以用输出语句替代
+ */
+
+ //分析:
+ //1.因为我们需要重复执行某段代码,所以需要用循环解决
+ //循环的次数 5 次
+ //开始条件:1
+ //结束条件:5
+
+ for (int i = 1; i <= 5; i++) {
+ System.out.println("第" + i + "次执行断线重连的业务逻辑");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/case2_Summation.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case2_Summation.java
new file mode 100644
index 0000000000000000000000000000000000000000..742ea956c2922c49f3518c3ec6faa3e9a7c4c83d
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case2_Summation.java
@@ -0,0 +1,26 @@
+package For_package;
+
+public class case2_Summation {
+ public static void main(String[] args) {
+ /*
+ 需求:在实际开发中,如果要获取一个范围中的每一个数据时,也会用到循环。
+ 比如:求1~5之间的和。
+ */
+
+ //分析:
+ //1.循环1~5得到里面的每一个数字
+ //开始条件:1
+ //结束条件:5
+
+ int sum = 0;//用来进行累加的
+
+ for (int i = 1; i <= 100; i++) {
+ System.out.println(i);
+ //可以把得到的每一个数字累加到变量sum当中
+ sum += i;
+ }
+
+ //当循环结束之后,表示已经把1~5累加到变量sum当中了
+ System.out.println("sum = " + sum);
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/case3_Sum_of_even_numbers.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case3_Sum_of_even_numbers.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa62b3cc60f67145b15af87deed65bb21c765476
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case3_Sum_of_even_numbers.java
@@ -0,0 +1,25 @@
+package For_package;
+
+public class case3_Sum_of_even_numbers {
+ public static void main(String[] args) {
+ /*
+ 需求:在实际开发中,如果要获取一个范围中的每一个数据时,会用到循环。
+ 但是此时,大多情况下,不会获取所有的数据,而是获取其中符合要求的数据。
+ 此时就需要循环和其他语句结合使用了。
+ 比如:求1~100之间的偶数和
+ */
+
+ //分析:
+ //1.获取1~100之间的每个数
+ int sum = 0;
+ for (int i = 1; i <= 100; i++) {
+ //2.累加求和(先判断,再求和)
+ if (i % 2 == 0) {
+ sum += i;
+ }
+ }
+
+ //打印sum
+ System.out.println("sum = " + sum);
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/For_package/case4_Number_that_meets_the_condition.java b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case4_Number_that_meets_the_condition.java
new file mode 100644
index 0000000000000000000000000000000000000000..9aa36ae85e470ec09fdeceb2302bc49ffa2024f1
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/For_package/case4_Number_that_meets_the_condition.java
@@ -0,0 +1,39 @@
+package For_package;
+
+import java.util.Scanner;
+
+public class case4_Number_that_meets_the_condition {
+ public static void main(String[] args) {
+ /*
+ 需求:键盘录入两个数字,表示一个范围。
+ 统计这个范围中
+ 既能被3整除,又能被5整除数字有多少个?
+ */
+
+ //分析:
+ //1.键盘录入两个数字
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请录入一个数字表示范围的开始:");
+ int start = sc.nextInt();
+
+ System.out.println("请录入一个数字表示范围的结束:");
+ int end = sc.nextInt();
+
+ //统计变量
+ //简单理解:统计符合要求的数字的个数
+ int count = 0;
+
+ //2.利用循环获取这个范围中的每一个数字
+ //开始条件:start
+ //结束条件:end
+ for (int i = start; i <= end; i++) {
+ //3.对每一个数字进行判断,统计有多少个满足要求的数字
+ if (i % 3 == 0 && i % 5 == 0) {
+ System.out.println(i);
+ count++;
+ }
+ }
+
+ System.out.println("count = " + count);
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Infinite_loop_package/Infinite_loop_demo1.java b/Process_control_statement_project/Cyclic_structure_module/src/Infinite_loop_package/Infinite_loop_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa1445304266c37271b0478e539e6741a11eb436
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Infinite_loop_package/Infinite_loop_demo1.java
@@ -0,0 +1,22 @@
+package Infinite_loop_package;
+
+public class Infinite_loop_demo1 {
+ public static void main(String[] args) {
+ //for格式的无限循环
+// for(;;){
+// System.out.println("学习!");
+// }
+
+ //while格式的无限循环
+// while(true){
+// System.out.println("玩耍!");
+// }
+
+ //注意事项:
+ //无限循环的下面不能再写其他代码了,因为循环永远停不下来,那么下面的代码永远执行不到。
+ while(true){
+ System.out.println("给女神表白");
+ }
+ //System.out.println("女神答应");
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo1.java b/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f007f07453e2ed9885de4afee86c56e95573e24
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo1.java
@@ -0,0 +1,14 @@
+package Skip_Loop_package;
+
+public class skip_loop_demo1 {
+ public static void main(String[] args) {
+ //1.跳过某一次循环
+ for (int i = 1; i <= 5; i++) {
+ if(i==3){
+ //结束本次循环,继续下次循环
+ continue;
+ }
+ System.out.println("小老虎在吃第" + i + "个包子");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo2.java b/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..61342f5bc6228abc1ffb0e63e4e257d9638dc5e3
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/Skip_Loop_package/skip_loop_demo2.java
@@ -0,0 +1,14 @@
+package Skip_Loop_package;
+
+public class skip_loop_demo2 {
+ public static void main(String[] args) {
+ //2.结束整个循环
+ for (int i = 1; i <= 5; i++) {
+ if (i == 4) {
+ //结束整个循环
+ break;
+ }
+ System.out.println("小老虎在吃第" + i + "个包子");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/While_package/While_demo1.java b/Process_control_statement_project/Cyclic_structure_module/src/While_package/While_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..777e2da45d278fad0adde4cdd4d4d0106ec232c1
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/While_package/While_demo1.java
@@ -0,0 +1,16 @@
+package While_package;
+
+public class While_demo1 {
+ public static void main(String[] args) {
+ //需求:利用while循环打印1~100
+ //分析:
+ //开始条件:1
+ //结束条件:100
+
+ int i=1;
+ while(i<=100){
+ System.out.println(i);
+ i++;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/While_package/case1_Origami_times.java b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case1_Origami_times.java
new file mode 100644
index 0000000000000000000000000000000000000000..693e58ae3dbdd619b64b061d17b8bcee9d9734dd
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case1_Origami_times.java
@@ -0,0 +1,38 @@
+package While_package;
+
+public class case1_Origami_times {
+ public static void main(String[] args) {
+ /*
+ 需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),
+ 假如我有一张足够大的纸,它的厚度是0.1毫米。
+ 请问:我折叠多少次,可以折成珠穆朗玛峰的高度?
+ */
+
+ //分析:折叠纸张,每一次折叠纸张的厚度都是原先的两倍
+ // double a = 0.1;
+ // a = a * 2;
+ // a *= 2;
+
+ //1.定义一个变量用来记录山峰的高度
+ double height = 8844430;
+
+ //2.定义一个变量用来记录纸张的初始厚度
+ double paper = 0.1;
+
+ //3.定义一个变量用来统计次数
+ int count = 0;
+
+ //4.循环折叠纸张,只要纸张的厚度小于山峰的高度,那么循环就继续
+ //每折叠一次,统计次数就要++
+ //选择while理由:此时我们不知道循环的次数也不知道循环的范围,只知道循环的结束条件,所以用while
+ while (paper < height) {
+ //折叠纸张
+ paper = paper * 2;
+ //折叠一次,++
+ count++;
+ }
+
+ //当循环结束之后,count记录的值就是折叠的次数
+ System.out.println(count);
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/While_package/case2_Palindromes.java b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case2_Palindromes.java
new file mode 100644
index 0000000000000000000000000000000000000000..205f24d9134e8b37244fdec67b53158871147784
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case2_Palindromes.java
@@ -0,0 +1,39 @@
+package While_package;
+
+public class case2_Palindromes {
+ public static void main(String[] args) {
+ /*
+ 需求:给你一个整数 x。
+ 如果 x 是一个回文整数,打印true,否则,返回false
+ 解释:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
+ 例如:121是回文,而123不是
+ */
+
+ //核心思路:把数字倒过来跟原来的数字进行比较
+
+ //1.定义数字
+ int x = 12345;
+
+ //定义一个临时变量用于记录x原来的值,用于最后进行比较
+ int temp = x;
+
+ int num = 0;
+
+ //2.利用循环开始
+ while (x != 0) {
+ //从右往左 获取每一位数字
+ int ge = x % 10;
+ //修改一下x记录的值
+ x = x / 10;
+ //把当前获取到的数字拼接到最右边
+ num = num * 10 + ge;
+ }
+
+ //3.打印num
+ System.out.println(num);
+ System.out.println(temp);
+
+ //4.比较
+ System.out.println(num == temp);
+ }
+}
diff --git a/Process_control_statement_project/Cyclic_structure_module/src/While_package/case3_Get_quotient_and_remainder.java b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case3_Get_quotient_and_remainder.java
new file mode 100644
index 0000000000000000000000000000000000000000..7383a86fde910ef360e72c8f43368b8e74585e22
--- /dev/null
+++ b/Process_control_statement_project/Cyclic_structure_module/src/While_package/case3_Get_quotient_and_remainder.java
@@ -0,0 +1,49 @@
+package While_package;
+
+public class case3_Get_quotient_and_remainder {
+ public static void main(String[] args) {
+ /*
+ 需求:给定两个整数,被除数和除数(都是正数,且不超过int的范围)。
+ 将两数相除,要求不使用乘法、除法和 % 运算符
+ 得到商和余数。
+
+ 分析:
+ 被除数 / 除数 = 商 …… 余数
+
+ int a = 100;
+ int b = 10;
+
+ 100 - 10 = 90;
+ 90 - 10 = 80;
+ 80 - 10 = 70;
+ ……
+ 10 - 10 = 0;
+
+ */
+
+ //1.定义变量记录被除数
+ int dividend = 10;
+
+ //2.定义变量记录除数
+ int divisor = 3;
+
+ //3.定义一个变量用来统计相减了多少次
+ int count = 0;
+
+ //3.while循环
+ //在循环中,不断的用 被除数 - 除数
+ //只要被除数 是大于等于除数的,那么就一直循环
+ while (dividend >= divisor) {
+ dividend = dividend - divisor;
+ //只要减一次,那么统计变量就自增一次
+ count++;
+ }
+
+ //当循环结束之后 dividend 变量记录的就是余数
+ System.out.println("余数:" + dividend);
+
+ //当循环结束之后,count记录的值就是商
+ System.out.println("商:" + count);
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/Judgment_structure_module.iml b/Process_control_statement_project/Judgment_structure_module/Judgment_structure_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/Judgment_structure_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo1.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..937ee81fff05cd5b158c4e9ea49f70e496308cc0
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo1.java
@@ -0,0 +1,26 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class If_demo1 {
+ public static void main(String[] args) {
+ //需求:键盘录入女婿酒量,如果大于2斤,老丈人给出回应,反之不回应
+
+ //if格式:
+ //if(关系表达式){
+ // 语句体;
+ //}
+
+ //分析:
+ //1.键盘录入女婿的酒量
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入女婿酒量:");
+ int wine = sc.nextInt();
+
+ //2、对酒量进行判断
+ if (wine > 2) {
+ System.out.println("小伙子,不错哟!");
+ }
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo2.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ea0db0fe407feef15a92c41d41385925b1dee4b
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo2.java
@@ -0,0 +1,28 @@
+package If_package;
+
+/*
+if(关系表达式){
+ 语句体;
+}
+
+if的注意点:
+ 1.大括号的开头可以另起一行书写,但是建议写在第一行的末尾。
+ 2.在语句体中,如果只有一句代码,大括号可以省略不写,个人建议,大括号还是不要省略
+ 3.如果对一个布尔类型的变量进行判断,不要用==号,直接把变量写在小括号即可
+ */
+
+public class If_demo2 {
+ public static void main(String[] args) {
+ int number = 10;
+ if (number >= 10) {
+ System.out.println("number大于等于10");
+ //int a=10; //1、定义变量a 2、给变量a赋值为100
+ }
+
+ boolean flag = false;
+ if (flag) {
+ System.out.println("flag的值为true");
+ }
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo3.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..b083e57ac1817bfc0e8928ec61ebf3f5e5bcd0a2
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/If_demo3.java
@@ -0,0 +1,27 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class If_demo3 {
+ public static void main(String[] args) {
+ /*
+ 需求:键盘录入一个整数,表示身上的钱。
+ 如果大于等于100块,就去网红餐厅。
+ 否则,就吃经济实惠的沙县小吃。
+ */
+
+ //分析:
+ //1.键盘录入一个整数,表示身上的钱
+ Scanner sc=new Scanner(System.in);
+ System.out.println("请录入身上的钱:");
+ int money=sc.nextInt();
+
+ //2.对钱进行判断(二选一)
+ if(money>=100){
+ System.out.println("吃网红餐厅!");
+ }
+ else{
+ System.out.println("吃经济实惠的沙县小吃");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case1_Examination.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case1_Examination.java
new file mode 100644
index 0000000000000000000000000000000000000000..1380b6235b0026460b08158143a2fa7440eef8b4
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case1_Examination.java
@@ -0,0 +1,15 @@
+package If_package;
+
+public class case1_Examination {
+ public static void main(String[] args) {
+ //小红:如果你这次考试全班第一,我就做你女朋友
+
+ //分析:
+ //1、定义变量记录小明的名次
+ int ranking = 2;
+ //2、对小明的名次进行判断。
+ if (ranking == 1) {
+ System.out.println("小红成为了小明的女朋友!");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case2_Autopilot.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case2_Autopilot.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d0572a4d68855962dcb814d3bcbf3f66143b32a
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case2_Autopilot.java
@@ -0,0 +1,30 @@
+package If_package;
+
+public class case2_Autopilot {
+ public static void main(String[] args) {
+ //汽车无人驾驶会涉及到大量的判断
+ //当汽车行驶的时候遇到了红绿灯,就会进行判断
+ //如果红灯亮,就停止
+ //如果黄灯亮,就减速
+ //如果绿灯亮,就行驶
+
+ //1.定义三个变量表示灯的状态
+ //true 亮 false 灭
+ boolean isLightGreen = false;
+ boolean isLightYellow = false;
+ boolean isLightRed = true;
+
+ //2.判断
+ //红灯亮,就停止
+ //黄灯亮,就减速
+ //绿灯亮,就行驶
+ if (isLightGreen) {
+ System.out.println("GoGoGo!!!");
+ } else if (isLightYellow) {
+ System.out.println("slow!!!");
+ } else if (isLightRed) {
+ System.out.println("stop!!!");
+ }
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case3_Payment_for_goods.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case3_Payment_for_goods.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f923e5ffcd3d4b628d9465ce12b0aa016f42b01
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case3_Payment_for_goods.java
@@ -0,0 +1,28 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class case3_Payment_for_goods {
+ public static void main(String[] args) {
+ /*
+ 在实际开发中,如果要根据两种不同的情况来执行不同的代码,就需要用到if的第二种格式。
+ 需求:
+ 假设,用户在超市实际购买,商品总价为:600元。
+ 键盘录入一个整数表示用户实际支付的钱。
+ 如果付款大于等于600,表示付款成功,否则付款失败。
+ */
+
+ //分析:
+ //1.键盘录入一个整数表示用户实际支付的钱
+ Scanner sc = new Scanner(System.in);
+ System.out.println("录入一个整数表示实际支付的钱:");
+ int money = sc.nextInt();
+
+ //2.判断
+ if (money >= 600) {
+ System.out.println("付款成功!");
+ } else {
+ System.out.println("付款失败!");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case4_Cinema_seat_selection.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case4_Cinema_seat_selection.java
new file mode 100644
index 0000000000000000000000000000000000000000..22338bac50ef35a11a2045c690b88819369df89b
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case4_Cinema_seat_selection.java
@@ -0,0 +1,33 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class case4_Cinema_seat_selection {
+ public static void main(String[] args) {
+ /*
+ 在实际开发中,电影院选座也会使用到if判断。
+ 假设某影院售卖了100张票,票的序号为1~100。
+ 其中奇数票号坐左侧,偶数票号坐右侧。
+ 键盘录入一个整数表示电影票的票号。
+ 根据不同情况,给出不同的提示。
+ 如果票号为奇数,那么打印坐左边。
+ 如果票号为偶数,那么打印坐右边。
+ */
+
+ //分析:
+ //1.键盘录入一个整数表示电影票的票号。
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入一个票号:");
+ int ticket = sc.nextInt();
+
+ //只有当ticket在0~100之间,才是真实有效的票
+ if (ticket >= 0 && ticket <= 100) {
+ //2.判断票号是奇数还是偶数
+ if (ticket % 2 == 1) {
+ System.out.println("坐左边!");
+ } else {
+ System.out.println("坐右边!");
+ }
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case5_Giving_gifts.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case5_Giving_gifts.java
new file mode 100644
index 0000000000000000000000000000000000000000..6c9c8ce66f3dd6278ade00d17b6e7fd3cfe5a7be
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case5_Giving_gifts.java
@@ -0,0 +1,40 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class case5_Giving_gifts {
+ public static void main(String[] args) {
+ /*
+ 根据不同的分数送不同的礼物。
+ 如果是95~100分,送自行车一辆
+ 如果是90~94分,游乐场玩一天
+ 如果是80~89分,送变形金刚一个
+ 如果是80分以下,揍一顿
+ */
+
+ //分析:
+ //1.键盘录入小明的考试成绩
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请录入一个整数,表示小明的成绩:");
+ int score = sc.nextInt();
+
+ //对异常数据进行判断校验
+ //0~100合理数据
+ if (score > 0 && score <= 100) {
+ //2.根据不同的考试成绩,给出不同的奖励
+ 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("揍一顿!");
+ }
+ } else {
+ System.out.println("当前录入的成绩不合法!");
+ }
+
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/If_package/case6_prices_for_goods.java b/Process_control_statement_project/Judgment_structure_module/src/If_package/case6_prices_for_goods.java
new file mode 100644
index 0000000000000000000000000000000000000000..38a9b80b962a33fc8f9aa2db612543aeb1336747
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/If_package/case6_prices_for_goods.java
@@ -0,0 +1,39 @@
+package If_package;
+
+import java.util.Scanner;
+
+public class case6_prices_for_goods {
+ public static void main(String[] args) {
+ /*
+ 在实际开发中,多种情况判断时,会用到if的第三种格式。
+ 需求:
+ 商场都会有VIP的会员制,根据不同的会员会有不同的折扣。
+ 假设商品总价为1000
+ 键盘录入会员级别,并计算出实际支付的钱
+ 会员1级:打9折
+ 会员2级:打8折
+ 会员3级:打7折
+ 非会员:不打折,要打也打骨折
+ */
+
+ //分析:
+ //1.定义变量记录总价
+ int price = 1000;
+
+ //2.键盘录入会员的级别
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请录入会员的级别:");
+ int vip = sc.nextInt();
+
+ //3.根据级别来计算实际要支付的钱
+ if (vip == 1) {
+ System.out.println("实际支付的钱为:" + (price * 0.9));
+ } else if (vip == 2) {
+ System.out.println("实际支付的钱为:" + (price * 0.8));
+ } else if (vip == 3) {
+ System.out.println("实际支付的钱为:" + (price * 0.7));
+ } else {
+ System.out.println("实际支付的钱为:" + price);
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo1.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..680c034371b9e4dffdb5efb3074ddc268ba006e5
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo1.java
@@ -0,0 +1,29 @@
+package Switch_package;
+
+public class Switch_demo1 {
+ public static void main(String[] args) {
+ //兰州拉面、武汉热干面、北京炸酱面、陕西油泼面
+
+ //1.定义变量记录我心里想吃的面
+ String noodles = "兰州拉面";
+
+ //2.拿着这个面利用switch跟四种面条匹配
+ switch (noodles){
+ case "兰州拉面":
+ System.out.println("吃兰州拉面!");
+ break;
+ case"武汉热干面":
+ System.out.println("吃武汉热干面!");
+ break;
+ case"北京炸酱面":
+ System.out.println("吃北京炸酱面!");
+ break;
+ case"陕西油泼面":
+ System.out.println("吃陕西油泼面!");
+ break;
+ default:
+ System.out.println("吃方便面");
+ break;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo2.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..94ba4edaa233955ecc962f5f757efd8abc60f899
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo2.java
@@ -0,0 +1,27 @@
+package Switch_package;
+
+/*
+default的位置和省略:
+ 1.位置:default不一定是写在最下面的,我们可以写在任意位置,只不过习惯会写在最下面
+ 2.省略:default可以省略,语法不会有问题,但是不建议省略
+ */
+
+public class Switch_demo2 {
+ public static void main(String[] args) {
+ int number=1;
+ switch(number){
+ case 1:
+ System.out.println("number的值为1");
+ break;
+ case 10:
+ System.out.println("number的值为10");
+ break;
+ case 20:
+ System.out.println("number的值为20");
+ break;
+// default:
+// System.out.println("number的值不是1、10或者20");
+// break;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo3.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..0030e103a8d1de9e56995c1553db1f959aa90a12
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo3.java
@@ -0,0 +1,34 @@
+package Switch_package;
+
+/*
+ case穿透
+ 就是语句体中没有写break导致的。
+
+ 执行流程:
+ 首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。
+ 如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。
+ 如果没有发现break,那么程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。
+
+ 使用场景:
+ 如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码。
+ */
+
+public class Switch_demo3 {
+ public static void main(String[] args) {
+ int number=10;
+ switch(number){
+ case 1:
+ System.out.println("number的值为1");
+ //break;
+ case 10:
+ System.out.println("number的值为10");
+ //break;
+ case 20:
+ System.out.println("number的值为20");
+ //break;
+ default:
+ System.out.println("number的值不是1、10或者20");
+ break;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo4.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2b1e1c29aaddbfc4de84826c1b344c75e0b7ee7
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo4.java
@@ -0,0 +1,41 @@
+package Switch_package;
+
+/*
+ switch新特性:
+ JDK12
+ */
+public class Switch_demo4 {
+ public static void main(String[] args) {
+ //需求:
+ //1 2 3 一 二 三
+
+// int number=1;
+// switch(number){
+// case 1:
+// System.out.println("一");
+// break;
+// case 2:
+// System.out.println("二");
+// break;
+// case 3:
+// System.out.println("三");
+// break;
+// default:
+// System.out.println("没有这种选项");
+// break;
+// }
+
+ int number=1;
+ switch(number){
+ case 1->{
+ System.out.println("一");
+ }
+ case 2->System.out.println("二");
+ case 3->System.out.println("三");
+
+ default -> {
+ System.out.println("没有这种选项");
+ }
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo5.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..b018df39240bb5f2c59208c990334705531920a4
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/Switch_demo5.java
@@ -0,0 +1,13 @@
+package Switch_package;
+
+/*
+ switch和if第三种格式各自的使用场景
+ if的第三种格式:一般用于对范围的判断
+ switch:把有限个数据一一列举出来,让我们任选其一
+ */
+
+public class Switch_demo5 {
+ public static void main(String[] args) {
+
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case1_Exercise_program.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case1_Exercise_program.java
new file mode 100644
index 0000000000000000000000000000000000000000..53e3406daa2c9c2495f2bffd5e616da4d4abc9cb
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case1_Exercise_program.java
@@ -0,0 +1,52 @@
+package Switch_package;
+
+import java.util.Scanner;
+
+public class case1_Exercise_program {
+ public static void main(String[] args) {
+ /*
+ 需求:键盘录入星期数,显示今天的减肥活动。
+ 周一:跑步
+ 周二:游泳
+ 周三:慢步
+ 周四:动感单车
+ 周五:拳击
+ 周六:爬山
+ 周日:好好吃一顿
+ */
+
+ //分析:
+ //1.键盘录入星期数
+ Scanner sc=new Scanner(System.in);
+ System.out.println("请录入星期:");
+ int week=sc.nextInt();
+
+ //2.利用switch对星期进行匹配
+ switch(week){
+ 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;
+ default:
+ System.out.println("没有这个星期!");
+ break;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case2_Working_days_and_rest_days.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case2_Working_days_and_rest_days.java
new file mode 100644
index 0000000000000000000000000000000000000000..c4f67237e9568a2b72fc05bf8de75b02bc00a248
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case2_Working_days_and_rest_days.java
@@ -0,0 +1,25 @@
+package Switch_package;
+
+import java.util.Scanner;
+
+public class case2_Working_days_and_rest_days {
+ public static void main(String[] args) {
+ /*
+ 需求:键盘录入星期数,输出工作日、休息日
+ (1-5)工作日 (6-7)休息日
+ */
+
+ //分析:
+ //1.键盘录入星期数
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请录入一个整数表示星期:");
+ int week = sc.nextInt();
+
+ //2.利用switch语句来进行选择
+ switch (week) {
+ case 1, 2, 3, 4, 5 -> System.out.println("工作日");
+ case 6, 7 -> System.out.println("休息日");
+ default -> System.out.println("没有这个星期");
+ }
+ }
+}
diff --git a/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case3_User_selection.java b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case3_User_selection.java
new file mode 100644
index 0000000000000000000000000000000000000000..10af5100bb1e28cee209890df48eff12e3be80f8
--- /dev/null
+++ b/Process_control_statement_project/Judgment_structure_module/src/Switch_package/case3_User_selection.java
@@ -0,0 +1,44 @@
+package Switch_package;
+
+import java.util.Scanner;
+
+public class case3_User_selection {
+ public static void main(String[] args) {
+ /*
+ 在实际开发中,如果我们需要在多种情况下选择其中一个,就可以使用switch语句。
+ 当我们拨打了某些服务电话时,一般都会有按键选择。
+ 假设现在我们拨打了一个机票预定电话。
+ 电话中语音提示:
+ 1、机票查询
+ 2、机票预订
+ 3、机票改签
+ 4、退出服务
+ 其他按键也是退出服务,请使用switch模拟该业务逻辑。
+ */
+
+ //分析:
+ //1.键盘录入一个整数表示我们的选择
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入您的选择:");
+ int choose = sc.nextInt();
+
+ //2.根据选择执行不同的代码
+ switch (choose) {
+ case 1:
+ System.out.println("机票查询");
+ break;
+ case 2:
+ System.out.println("机票预订");
+ break;
+ case 3:
+ System.out.println("机票改签");
+ break;
+ case 4:
+ System.out.println("退出服务");
+ break;
+ default:
+ System.out.println("退出服务");
+ break;
+ }
+ }
+}
diff --git a/Process_control_statement_project/Process_control_statement_project.iml b/Process_control_statement_project/Process_control_statement_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Process_control_statement_project/Process_control_statement_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case1_Every_seven_days.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case1_Every_seven_days.class
new file mode 100644
index 0000000000000000000000000000000000000000..57eda663dd0eb56dc78f67a3ec7c87f26aa8bb58
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case1_Every_seven_days.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case2_square_root.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case2_square_root.class
new file mode 100644
index 0000000000000000000000000000000000000000..1dfc7525ce4bf4260807201d20f226d87fd8de55
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case2_square_root.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case3_Judge_prime_number1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case3_Judge_prime_number1.class
new file mode 100644
index 0000000000000000000000000000000000000000..115073829b7f7cbbc27e48c3d4c4bd4b26d9d067
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case3_Judge_prime_number1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case4_Judge_prime_number2.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case4_Judge_prime_number2.class
new file mode 100644
index 0000000000000000000000000000000000000000..b12bbadde5a3d122ca9768ab70d3b8c4f5063ac6
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case4_Judge_prime_number2.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case5_Guess_numbers1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case5_Guess_numbers1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f66fd2195b12c836cad3580b803ec0ff182b2e68
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case5_Guess_numbers1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case6_Guess_numbers2.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case6_Guess_numbers2.class
new file mode 100644
index 0000000000000000000000000000000000000000..d293d72fcd04888cab302c6574b2bdb834890a4a
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case6_Guess_numbers2.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case7_Guess_numbers3.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case7_Guess_numbers3.class
new file mode 100644
index 0000000000000000000000000000000000000000..3126e2425674ca01c358ff560a07e8912df2fde1
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Case_package/case7_Guess_numbers3.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..12c5552bbb33a103d0b99722a45d797927cbac45
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo2.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..b88d5b65a3a1c7d7acd7108fba8ebf4b2e4f80d5
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/For_demo2.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case1_Disconnection_and_reconnection.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case1_Disconnection_and_reconnection.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1a29566ace1ee98cfcc802555b637630b642957
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case1_Disconnection_and_reconnection.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case2_Summation.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case2_Summation.class
new file mode 100644
index 0000000000000000000000000000000000000000..5639cef286f16cbb71d821bf4a91e13ea452ac7d
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case2_Summation.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case3_Sum_of_even_numbers.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case3_Sum_of_even_numbers.class
new file mode 100644
index 0000000000000000000000000000000000000000..1a8a364272fbaa35a3602e10607f932a0bdb0d54
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case3_Sum_of_even_numbers.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case4_Number_that_meets_the_condition.class b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case4_Number_that_meets_the_condition.class
new file mode 100644
index 0000000000000000000000000000000000000000..388d1cbaeb9dcb835c69568b6dc36c728fa2615b
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/For_package/case4_Number_that_meets_the_condition.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Infinite_loop_package/Infinite_loop_demo1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Infinite_loop_package/Infinite_loop_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..7a84552406d699527e7a157e7b4518cfba2c1dfe
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Infinite_loop_package/Infinite_loop_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d6c9f94f7a67601acda98904262680a6c536365
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo2.class b/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..db89421eed10d155a8f923acdc935c06895914fe
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/Skip_Loop_package/skip_loop_demo2.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/While_demo1.class b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/While_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3ff368bc2877d91a492590adb0c61328743ab9a2
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/While_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case1_Origami_times.class b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case1_Origami_times.class
new file mode 100644
index 0000000000000000000000000000000000000000..765e52b5bec8d932ff759ce07922ea8e85cd90f1
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case1_Origami_times.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case2_Palindromes.class b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case2_Palindromes.class
new file mode 100644
index 0000000000000000000000000000000000000000..62fa3ede3585316ed1d0b4228e60bb5a9bbee902
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case2_Palindromes.class differ
diff --git a/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case3_Get_quotient_and_remainder.class b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case3_Get_quotient_and_remainder.class
new file mode 100644
index 0000000000000000000000000000000000000000..a24866101736b61be6c3a710bbc9350e25769f55
Binary files /dev/null and b/Process_control_statement_project/out/production/Cyclic_structure_module/While_package/case3_Get_quotient_and_remainder.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo1.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..01b9d59362696d97c420ade9f4c2ac92eb5db904
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo2.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..8821973583e4980bc1a15eafe8d1d2c6860c3847
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo2.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo3.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..7144dac602d19c056437b61d74b5c875e7bdc136
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/If_demo3.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case1_Examination.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case1_Examination.class
new file mode 100644
index 0000000000000000000000000000000000000000..8a8fb8823e76efddb97334c497982d2c5c65e45c
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case1_Examination.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case2_Autopilot.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case2_Autopilot.class
new file mode 100644
index 0000000000000000000000000000000000000000..919af640bad0d3d8561fea537c2f8b6db8e309de
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case2_Autopilot.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case3_Payment_for_goods.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case3_Payment_for_goods.class
new file mode 100644
index 0000000000000000000000000000000000000000..449c77ef01c7a289fdd63afbdcd4203337d54eae
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case3_Payment_for_goods.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case4_Cinema_seat_selection.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case4_Cinema_seat_selection.class
new file mode 100644
index 0000000000000000000000000000000000000000..03ee12665ca2ad5f107131133dd3289c51bd40bc
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case4_Cinema_seat_selection.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case5_Giving_gifts.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case5_Giving_gifts.class
new file mode 100644
index 0000000000000000000000000000000000000000..d3fbd55d5a2ec11c712e026058e407a3cefd90d9
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case5_Giving_gifts.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case6_prices_for_goods.class b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case6_prices_for_goods.class
new file mode 100644
index 0000000000000000000000000000000000000000..b6d083330151215303bf421d81193cf356a670b2
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/If_package/case6_prices_for_goods.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo1.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5b62418ebe3aac839b0e77ba87b93b6e8ae27484
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo1.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo2.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..514f0e89a1de39a947d70f09978658624ed619f6
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo2.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo3.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..de2793c95740272663365a430f65fde6c5bd0c39
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo3.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo4.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..d14dc8aaee7f90009de2585119f240fe4e5e0672
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo4.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo5.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo5.class
new file mode 100644
index 0000000000000000000000000000000000000000..890f4ba8f5b97ed2f37d6bdd3a5319724b79fb31
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/Switch_demo5.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case1_Exercise_program.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case1_Exercise_program.class
new file mode 100644
index 0000000000000000000000000000000000000000..4aa42fdcc59d7a1378a6c6e5ee293e248aa22310
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case1_Exercise_program.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case2_Working_days_and_rest_days.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case2_Working_days_and_rest_days.class
new file mode 100644
index 0000000000000000000000000000000000000000..040d39be6c2a1b34e18f545767693123c4ea5f69
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case2_Working_days_and_rest_days.class differ
diff --git a/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case3_User_selection.class b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case3_User_selection.class
new file mode 100644
index 0000000000000000000000000000000000000000..3a2859b4337f6f189ead3d608e9b04b16ac440aa
Binary files /dev/null and b/Process_control_statement_project/out/production/Judgment_structure_module/Switch_package/case3_User_selection.class differ
diff --git a/Reflect_project/.DS_Store b/Reflect_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..305773c583f3f1931d91e6b17f345baa126a66b6
Binary files /dev/null and b/Reflect_project/.DS_Store differ
diff --git a/Reflect_project/.idea/.gitignore b/Reflect_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Reflect_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Reflect_project/.idea/misc.xml b/Reflect_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Reflect_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/.idea/modules.xml b/Reflect_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de1dbdcae2c98cda9e8a9c59e8a3780bb3a0f82a
--- /dev/null
+++ b/Reflect_project/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/.idea/workspace.xml b/Reflect_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..25eeb83990ca042601539f79989ddf1b608dc7e6
--- /dev/null
+++ b/Reflect_project/.idea/workspace.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677999062572
+
+
+ 1677999062572
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/Case_module/Case_module.iml b/Reflect_project/Case_module/Case_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Reflect_project/Case_module/Case_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/Case_module/prop.properties b/Reflect_project/Case_module/prop.properties
new file mode 100644
index 0000000000000000000000000000000000000000..d737a70273166a071ce28cd59e05c0814391225f
--- /dev/null
+++ b/Reflect_project/Case_module/prop.properties
@@ -0,0 +1,2 @@
+classname=case_package2.Teacher
+method=teach
diff --git a/Reflect_project/Case_module/src/case_package1/Student.java b/Reflect_project/Case_module/src/case_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..89e109e7675493c24a3b739a3a34ce5b246c5707
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package1/Student.java
@@ -0,0 +1,105 @@
+package case_package1;
+
+public class Student {
+ private String name;
+ private int age;
+ private char gender;
+ private double height;
+ private String hobby;
+
+
+ public Student() {
+ }
+
+ public Student(String name, int age, char gender, double height, String hobby) {
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ this.height = height;
+ this.hobby = hobby;
+ }
+
+ /**
+ * 获取
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ * @return gender
+ */
+ public char getGender() {
+ return gender;
+ }
+
+ /**
+ * 设置
+ * @param gender
+ */
+ public void setGender(char gender) {
+ this.gender = gender;
+ }
+
+ /**
+ * 获取
+ * @return height
+ */
+ public double getHeight() {
+ return height;
+ }
+
+ /**
+ * 设置
+ * @param height
+ */
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+ /**
+ * 获取
+ * @return hobby
+ */
+ public String getHobby() {
+ return hobby;
+ }
+
+ /**
+ * 设置
+ * @param hobby
+ */
+ public void setHobby(String hobby) {
+ this.hobby = hobby;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + ", gender = " + gender + ", height = " + height + ", hobby = " + hobby + "}";
+ }
+}
diff --git a/Reflect_project/Case_module/src/case_package1/Teacher.java b/Reflect_project/Case_module/src/case_package1/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..98f6acb2778cae7ffda4ac4f6e983138df81f6ae
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package1/Teacher.java
@@ -0,0 +1,50 @@
+package case_package1;
+
+public class Teacher {
+ private String name;
+ private double salary;
+
+ public Teacher() {
+ }
+
+ public Teacher(String name, double salary) {
+ this.name = name;
+ this.salary = salary;
+ }
+
+ /**
+ * 获取
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ * @return salary
+ */
+ public double getSalary() {
+ return salary;
+ }
+
+ /**
+ * 设置
+ * @param salary
+ */
+ public void setSalary(double salary) {
+ this.salary = salary;
+ }
+
+ public String toString() {
+ return "Teacher{name = " + name + ", salary = " + salary + "}";
+ }
+}
diff --git a/Reflect_project/Case_module/src/case_package1/Test.java b/Reflect_project/Case_module/src/case_package1/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..313035c1908e55a0ad057c00b2bef4c1a0cb9b05
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package1/Test.java
@@ -0,0 +1,47 @@
+package case_package1;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+public class Test {
+ public static void main(String[] args) throws IllegalAccessException, IOException {
+ /*
+ 对于任意一个对象,都可以把对象所有的字段名和值,保存到文件中去
+ */
+
+ Student s = new Student("小A", 23, '女', 167.5, "睡觉");
+ Teacher t = new Teacher("播姐", 10000);
+
+ saveObject(s);
+ }
+
+ //把对象里面所有的成员变量名和值保存到本地文件中
+ private static void saveObject(Object obj) throws IllegalAccessException, IOException {
+ //1、获取字节码文件的对象
+ Class> clazz = obj.getClass();
+
+ //创建IO流
+ BufferedWriter bw = new BufferedWriter(new FileWriter("/Users" +
+ "/zhaoxiaoyong/Documents/Java/Reflect_project/Case_module/src/case_package1/a.txt"));
+
+ //2、获取所有的成员变量
+ Field[] fields = clazz.getDeclaredFields();
+ for (Field field : fields) {
+ field.setAccessible(true);
+ //获取成员变量的名字
+ String name = field.getName();
+ //获取成员变量的值
+ Object value = field.get(obj);
+ System.out.println(name + "=" + value);
+
+ //写出数据
+ bw.write(name + "=" + value);
+ bw.newLine();
+ }
+
+ bw.close();
+
+ }
+}
diff --git a/Reflect_project/Case_module/src/case_package1/a.txt b/Reflect_project/Case_module/src/case_package1/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..20d35f61f0305192eeb5dea5e902e3fb59f818ef
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package1/a.txt
@@ -0,0 +1,5 @@
+name=小A
+age=23
+gender=女
+height=167.5
+hobby=睡觉
diff --git a/Reflect_project/Case_module/src/case_package2/Student.java b/Reflect_project/Case_module/src/case_package2/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..6fb719e1e6f5c80b88273b6f4909b2a4936fc493
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package2/Student.java
@@ -0,0 +1,58 @@
+package case_package2;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ *
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ *
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + "}";
+ }
+
+ private void study() {
+ System.out.println("在学习!");
+ }
+}
diff --git a/Reflect_project/Case_module/src/case_package2/Teacher.java b/Reflect_project/Case_module/src/case_package2/Teacher.java
new file mode 100644
index 0000000000000000000000000000000000000000..90b1b5d4cd1c1b432e105a39b54c999ffd28fa8f
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package2/Teacher.java
@@ -0,0 +1,7 @@
+package case_package2;
+
+public class Teacher {
+ private void teach(){
+ System.out.println("在教学~");
+ }
+}
diff --git a/Reflect_project/Case_module/src/case_package2/Test.java b/Reflect_project/Case_module/src/case_package2/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..b5e6145824b83615c126ffb535857fa2628a7956
--- /dev/null
+++ b/Reflect_project/Case_module/src/case_package2/Test.java
@@ -0,0 +1,47 @@
+package case_package2;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Properties;
+
+public class Test {
+ public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
+ /*
+ 反射可以跟配置文件结合的方式,动态的创建对象,并调用方法
+ */
+
+ //1、读取配置文件中的信息
+ Properties prop = new Properties();
+ FileInputStream fis = new FileInputStream("/Users/zhaoxiaoyong" +
+ "/Documents/Java/Reflect_project/Case_module/prop.properties");
+ prop.load(fis);
+ fis.close();
+ System.out.println(prop);
+
+ //2、获取全类名和方法名
+ String className = (String) prop.get("classname");
+ String methodName = (String) prop.get("method");
+
+ System.out.println(className);
+ System.out.println(methodName);
+
+
+ //3、利用反射创建对象并运行方法
+ Class> clazz = Class.forName(className);
+
+ //获取构造方法
+ Constructor> con = clazz.getDeclaredConstructor();
+ Object o = con.newInstance();
+ System.out.println(o);
+
+ //获取成员方法并运行
+ Method method = clazz.getDeclaredMethod(methodName);
+ method.setAccessible(true);
+ method.invoke(o);
+
+ }
+}
diff --git a/Reflect_project/Reflect_module/Reflect_module.iml b/Reflect_project/Reflect_module/Reflect_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Reflect_project/Reflect_module/Reflect_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo1.java b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..87124ebe610f3a7691e2d1c46296f7320679ad4b
--- /dev/null
+++ b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo1.java
@@ -0,0 +1,32 @@
+package Reflect_package1;
+
+public class Reflect_demo1 {
+ public static void main(String[] args) throws ClassNotFoundException {
+ /*
+ * 获取class对象的三种方式:
+ * 1、Class.forName("全类名");
+ * 2、类名.class
+ * 3、对象.getClass();
+ * */
+
+ //1、第一种方式
+ //全类名:包名 + 类名
+ Class> clazz1 = Class.forName("Reflect_package1.Student");
+ //打印
+ System.out.println(clazz1);
+
+ //2、第二种方式
+ Class clazz2 = Student.class;
+ System.out.println(clazz2);
+
+ //3、第三种方式
+ Student s = new Student();
+ Class extends Student> clazz3 = s.getClass();
+ System.out.println(clazz3);
+
+ //比较
+ System.out.println(clazz1 == clazz2 && clazz2 == clazz3);
+
+
+ }
+}
diff --git a/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo2.java b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..4283fadb8894d8d63a64d9bb6428eef59b7b6166
--- /dev/null
+++ b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo2.java
@@ -0,0 +1,72 @@
+package Reflect_package1;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Parameter;
+
+public class Reflect_demo2 {
+ public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
+ /*
+ Class类中用于获取构造方法的方法:
+ Constructor>[] getConstructors ()
+ Constructor>[] getDeclaredConstructors ()
+ Constructor getConstructor (Class>...parameterTypes)
+ Constructor getDeclaredConstructor (Class>...parameterTypes)
+
+ Constructor类中用于创建对象的方法:
+ T newInstance (Object...initargs)
+ setAccessible (boolean flag)
+ */
+
+ //1、获取class字节码文件对象
+ Class> clazz = Class.forName("Reflect_package1.Student");
+
+ //2、获取public构造方法
+ Constructor>[] cons1 = clazz.getConstructors();
+
+ for (Constructor> con : cons1) {
+ System.out.println(con);
+ }
+ System.out.println("========================");
+
+ //获取所有构造方法
+ Constructor>[] cons2 = clazz.getDeclaredConstructors();
+ for (Constructor> con : cons2) {
+ System.out.println(con);
+ }
+ System.out.println("========================");
+
+ //获取单个的构造方法
+ Constructor> con1 = clazz.getDeclaredConstructor();
+ System.out.println(con1);
+ System.out.println("========================");
+
+ Constructor> con2 = clazz.getDeclaredConstructor(String.class);
+ System.out.println(con2);
+ System.out.println("========================");
+
+ Constructor> con3 = clazz.getDeclaredConstructor(String.class, int.class);
+ System.out.println(con3);
+ System.out.println("========================");
+
+
+ //获取权限修饰符
+ int modifiers = con3.getModifiers();
+ System.out.println(modifiers);
+ System.out.println("========================");
+
+ //获取构造方法所有的参数
+ Parameter[] parameters = con3.getParameters();
+ for (Parameter parameter : parameters) {
+ System.out.println(parameter);
+ }
+ System.out.println("========================");
+
+ //创建对象
+ Constructor> con4 = clazz.getDeclaredConstructor(int.class);
+ con4.setAccessible(true);//暴力反射:表示临时取消权限校验
+ Student stu = (Student) con4.newInstance( 23);
+
+ System.out.println(stu);
+ }
+}
diff --git a/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f69543bfb0c4a498ef064c4711300cb7d76be31
--- /dev/null
+++ b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java
@@ -0,0 +1,66 @@
+package Reflect_package1;
+
+import java.lang.reflect.Field;
+
+public class Reflect_demo3 {
+ public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException {
+ /*
+ Class类中用于获取成员变量的方法
+ Field[] getFields () 返回所有公共成员变量对象的数组
+ Field[] getDeclaredFields () 返回所有成员变量对象的数组
+ Field getField (String name) 返回单个公共成员变量对象
+ Field getDeclaredField (String name) 返回单个成员变量对象
+
+ Field类中用于创建对象的方法:
+ void set (Object obj, Object value) 赋值
+ Object get (Object obj) 获取值
+ */
+
+ //1、获取class字节码文件的对象
+ Class> clazz = Class.forName("Reflect_package1.Student");
+
+ //2、获取public成员变量
+ Field[] fields = clazz.getFields();
+
+ for (Field field : fields) {
+ System.out.println(field);
+ }
+ System.out.println("=========================");
+
+ //3、获取所有的成员变量
+ Field[] fields2 = clazz.getDeclaredFields();
+ for (Field field : fields2) {
+ System.out.println(field);
+ }
+ System.out.println("=========================");
+
+ //获取单个成员变量
+ Field g = clazz.getField("gender");
+ System.out.println(g);
+ System.out.println("=========================");
+
+ //获取权限修饰符
+ int modifiers = g.getModifiers();
+ System.out.println(modifiers);
+
+ //获取成员变量名
+ String ge = g.getName();
+ System.out.println(ge);
+
+ //获取成员变量的数据类型
+ Class> type = g.getType();
+ System.out.println(type);
+ System.out.println("=========================");
+
+ //获取成员变量记录的值
+ Student s = new Student("zhangsan", 23, "男");
+ Field name = clazz.getDeclaredField("name");//获取成员变量
+ name.setAccessible(true);//取消权限修饰符
+ Object value = name.get(s);
+ System.out.println(value);
+
+ //修改对象里面记录的值
+ name.set(s, "lisi");
+ System.out.println(s);
+ }
+}
diff --git a/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo4.java b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..4deaf8f57bc06a5e07f8876ad9c47ac7711ec924
--- /dev/null
+++ b/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo4.java
@@ -0,0 +1,83 @@
+package Reflect_package1;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
+
+public class Reflect_demo4 {
+ public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ /*
+ Class类中用于获取成员方法的方法:
+ Method[] getMethods ():返回所有公共成员方法对象的数组,包括继承的
+ Method[] getDeclaredMethods ():返回所有成员方法对象的数组,不包括继承的
+ Method getMethod (String name, Class>...parameterTypes):返回单个公共成员方法对象
+ Method getDeclaredMethod (String name, Class>...parameterTypes):返回单个成员方法对象
+
+ Method类中用于创建对象的方法
+ Object invoke (Object obj, Object...args) 运行方法
+ 参数一:用obj对象调用该方法
+ 参数二:调用方法的传递参数(如果没有就不写)
+ 返回值:方法的返回值(如果没有就不写)
+ */
+
+ //1、获取class字节码文件对象
+ Class> clazz = Class.forName("Reflect_package1.Student");
+
+ //2、获取里面所有的方法对象
+ Method[] methods1 = clazz.getMethods();
+ for (Method method : methods1) {
+ System.out.println(method);
+ }
+ System.out.println("=====================");
+
+ //3、获取里面所有的方法对象(不能获取父类的,但是可以获取本类私有的方法)
+ Method[] methods2 = clazz.getDeclaredMethods();
+ for (Method method : methods2) {
+ System.out.println(method);
+ }
+ System.out.println("=====================");
+
+ //4、获取单一的公共成员方法
+ Method m = clazz.getMethod("sleep");
+ System.out.println(m);
+ System.out.println("=====================");
+
+ //5、获取单一的成员方法
+ Method e = clazz.getDeclaredMethod("eat", String.class);
+ System.out.println(e);
+ System.out.println("=====================");
+
+ //6、获取方法的修饰符
+ int modifiers = m.getModifiers();
+ System.out.println(modifiers);
+
+ //获取方法的名字
+ String name = m.getName();
+ System.out.println(name);
+
+ //获取方法的形参
+ Parameter[] parameters = e.getParameters();
+ for (Parameter parameter : parameters) {
+ System.out.println(parameter);
+ }
+ System.out.println("=====================");
+
+ //7、获取方法抛出的异常
+ Class>[] exceptionTypes = m.getExceptionTypes();
+ for (Class> exceptionType : exceptionTypes) {
+ System.out.println(exceptionType);
+ }
+
+
+ //方法运行
+// Object invoke (Object obj, Object...args) 运行方法
+// 参数一:用obj对象调用该方法
+// 参数二:调用方法的传递参数(如果没有就不写)
+// 返回值:方法的返回值(如果没有就不写)
+ Student s = new Student();
+ e.setAccessible(true);//忽略权限
+ Object result = e.invoke(s, "汉堡包");
+ System.out.println(result);
+
+ }
+}
diff --git a/Reflect_project/Reflect_module/src/Reflect_package1/Student.java b/Reflect_project/Reflect_module/src/Reflect_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..03b48b68193e056bbfa35ace2dd393d9e97c3265
--- /dev/null
+++ b/Reflect_project/Reflect_module/src/Reflect_package1/Student.java
@@ -0,0 +1,81 @@
+package Reflect_package1;
+
+import java.io.IOException;
+
+public class Student {
+ private String name;
+ private int age;
+ public String gender;
+
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ private Student(int age) {
+ this.age = age;
+ }
+
+ protected Student(String name) {
+ this.name = name;
+ }
+
+ public Student(String name, int age, String gender) {
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ }
+
+ /**
+ * 获取
+ *
+ * @return name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * 设置
+ *
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 获取
+ *
+ * @return age
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * 设置
+ *
+ * @param age
+ */
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public void sleep() throws IOException, NullPointerException {
+ System.out.println("睡觉");
+ }
+
+ private int eat(String something) {
+ System.out.println("在吃" + something);
+ return 0;
+ }
+
+ public String toString() {
+ return "Student{name = " + name + ", age = " + age + "}";
+ }
+}
diff --git a/Reflect_project/Reflect_project.iml b/Reflect_project/Reflect_project.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Reflect_project/Reflect_project.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reflect_project/out/production/Case_module/case_package1/Student.class b/Reflect_project/out/production/Case_module/case_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..cbe85b02ee28c8f5a1eed3be6d469cf379faf4ce
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package1/Student.class differ
diff --git a/Reflect_project/out/production/Case_module/case_package1/Teacher.class b/Reflect_project/out/production/Case_module/case_package1/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..54a160081b7e1c7f10ee9592468d28ec0faca486
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package1/Teacher.class differ
diff --git a/Reflect_project/out/production/Case_module/case_package1/Test.class b/Reflect_project/out/production/Case_module/case_package1/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..6228351960b7dcbb9329d769132de4fccc9e7a7c
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package1/Test.class differ
diff --git a/Reflect_project/out/production/Case_module/case_package1/a.txt b/Reflect_project/out/production/Case_module/case_package1/a.txt
new file mode 100644
index 0000000000000000000000000000000000000000..20d35f61f0305192eeb5dea5e902e3fb59f818ef
--- /dev/null
+++ b/Reflect_project/out/production/Case_module/case_package1/a.txt
@@ -0,0 +1,5 @@
+name=小A
+age=23
+gender=女
+height=167.5
+hobby=睡觉
diff --git a/Reflect_project/out/production/Case_module/case_package2/Student.class b/Reflect_project/out/production/Case_module/case_package2/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..202b7526df1bade126c099ac5a7098b5ccce1401
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package2/Student.class differ
diff --git a/Reflect_project/out/production/Case_module/case_package2/Teacher.class b/Reflect_project/out/production/Case_module/case_package2/Teacher.class
new file mode 100644
index 0000000000000000000000000000000000000000..3514aa72a37be295109cbb6c024223d937435934
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package2/Teacher.class differ
diff --git a/Reflect_project/out/production/Case_module/case_package2/Test.class b/Reflect_project/out/production/Case_module/case_package2/Test.class
new file mode 100644
index 0000000000000000000000000000000000000000..d0b2ebaf238a5b87a6b983c44f7a835de4f43267
Binary files /dev/null and b/Reflect_project/out/production/Case_module/case_package2/Test.class differ
diff --git a/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo1.class b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo1.class
new file mode 100644
index 0000000000000000000000000000000000000000..b4d5e0e0b43ccdbc5b90943589c630020357da8e
Binary files /dev/null and b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo1.class differ
diff --git a/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo2.class b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo2.class
new file mode 100644
index 0000000000000000000000000000000000000000..7404357e582b4ee49a64184675096450b2f3ed7f
Binary files /dev/null and b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo2.class differ
diff --git a/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo3.class b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo3.class
new file mode 100644
index 0000000000000000000000000000000000000000..5088e92e5ad0c92d3d7c2ad85bd0b2cbed45901a
Binary files /dev/null and b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo3.class differ
diff --git a/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo4.class b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo4.class
new file mode 100644
index 0000000000000000000000000000000000000000..575ac5c0115583a6bc3d6427d754ace160e74517
Binary files /dev/null and b/Reflect_project/out/production/Reflect_module/Reflect_package1/Reflect_demo4.class differ
diff --git a/Reflect_project/out/production/Reflect_module/Reflect_package1/Student.class b/Reflect_project/out/production/Reflect_module/Reflect_package1/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..547d827061c1fd883fbf5398558118608f1e4e78
Binary files /dev/null and b/Reflect_project/out/production/Reflect_module/Reflect_package1/Student.class differ
diff --git a/Set_advanced_project/.DS_Store b/Set_advanced_project/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..96b2eaa489fde3e8c10926cfa9bf4a41dd6b7e44
Binary files /dev/null and b/Set_advanced_project/.DS_Store differ
diff --git a/Set_advanced_project/.idea/.gitignore b/Set_advanced_project/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Set_advanced_project/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Set_advanced_project/.idea/misc.xml b/Set_advanced_project/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d15472f6bd508063a8bf88f336fb99213cc81d0c
--- /dev/null
+++ b/Set_advanced_project/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/.idea/modules.xml b/Set_advanced_project/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..084960d33b0e10331758246e04cdb140292fcb90
--- /dev/null
+++ b/Set_advanced_project/.idea/modules.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/.idea/uiDesigner.xml b/Set_advanced_project/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/Set_advanced_project/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/.idea/workspace.xml b/Set_advanced_project/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..12f5775de58ccbc0688dd757e2cb297e471db101
--- /dev/null
+++ b/Set_advanced_project/.idea/workspace.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1677067125962
+
+
+ 1677067125962
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/Collection_module/Collection_module.iml b/Set_advanced_project/Collection_module/Collection_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Set_advanced_project/Collection_module/Collection_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo1.java b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..4811f64bb5b9d9a6c0c7ccd84b8c37837073716c
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo1.java
@@ -0,0 +1,39 @@
+package Collection_ergodic_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+public class Collection_demo1 {
+ public static void main(String[] args) {
+ /*
+ Collection系列集合三种通用的遍历方式:
+ 1、迭代器遍历
+ 2、增强for遍历
+ 3、lambda表达式遍历
+
+ 迭代器遍历相关的三个方法:
+ Iterator iterator() : 获取一个迭代器对象
+ boolean hasNext() : 判断当前指向的位置是否有元素
+ E next() : 获取当前指向的元素并移动指针
+ */
+
+ //1、创建集合并添加元素
+ Collection coll = new ArrayList<>();
+ coll.add("aaa");
+ coll.add("bbb");
+ coll.add("ccc");
+ coll.add("ddd");
+
+ //2、获取迭代器对象
+ //迭代器就好比是一个箭头,默认指向集合的0索引处
+ Iterator it = coll.iterator();
+
+ //3、利用循环不断地去获取集合中的每一个元素
+ while (it.hasNext()) {
+ //4、next方法的两件事情:获取元素并移动指针
+ String str = it.next();
+ System.out.println(str);
+ }
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo2.java b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..60bf563e1ac0238b31d9fa49dcad1b1479d3a527
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo2.java
@@ -0,0 +1,53 @@
+package Collection_ergodic_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+public class Collection_demo2 {
+ public static void main(String[] args) {
+ /*
+ 迭代器的细节注意点:
+ 1、报错:NoSuchElementException
+ 2、迭代器遍历完毕,指针不会复位
+ 3、循环中只能用一次next方法,否则容易访问越界
+ 4、迭代器遍历时,不能用集合的方法进行增加或者删除,只能用迭代器里的方法删除
+ */
+
+ //1、创建集合并添加元素
+ Collection coll = new ArrayList<>();
+ coll.add("aaa");
+ coll.add("bbb");
+ coll.add("ccc");
+ coll.add("ddd");
+
+ //2、获取迭代器对象
+ //迭代器就好比是一个箭头,默认指向集合的0索引处
+ Iterator it = coll.iterator();
+
+ //3、利用循环不断地去获取集合中的每一个元素
+ while (it.hasNext()) {
+ //4、next方法的两件事情:获取元素并移动指针
+ String str = it.next();
+ System.out.println(str);
+ }
+
+ //当上面循环结束之后,迭代器的指针已经指向了最后没有元素的位置
+ //System.out.println(it.next()); NoSuchElementException
+
+ //迭代器遍历完毕,指针不会复位
+ System.out.println(it.hasNext());
+
+ //如果我们要继续第二次遍历集合,只能再次获取一个新的迭代器对象
+ Iterator it2 = coll.iterator();
+ while(it2.hasNext()){
+ String str = it2.next();
+ if("bbb".equals(str)){
+ //error: coll.remove("bbb");
+ it.remove();
+ }
+ System.out.println(str);
+ }
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo3.java b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..d95384ea08aa2ddc088e6553299e476424c88def
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo3.java
@@ -0,0 +1,36 @@
+package Collection_ergodic_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class Collection_demo3 {
+ public static void main(String[] args) {
+ /*
+ Collection系列集合三种通用的遍历方式:
+ 1、迭代器遍历
+ 2、增强for遍历
+ 3、lambda表达式遍历
+
+ 增强for格式:
+ for(数据类型 变量名:集合/数组){
+
+ }
+
+ 快速生成方式:
+ 集合的名字 + for 回车
+ */
+
+ //1、创建集合并添加元素
+ Collection coll = new ArrayList<>();
+ coll.add("zhangsan");
+ coll.add("lisi");
+ coll.add("wangwu");
+
+ //2、利用增强for进行遍历
+ //注意点:
+ //s其实就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据
+ for (String s : coll) {
+ System.out.println(s);
+ }
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo4.java b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..134336724b0bc4d64262551d454172945c9e317e
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_ergodic_package/Collection_demo4.java
@@ -0,0 +1,38 @@
+package Collection_ergodic_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.function.Consumer;
+
+public class Collection_demo4 {
+ public static void main(String[] args) {
+ /*
+ Collection系列集合三种通用的遍历方式:
+ 1、迭代器遍历
+ 2、增强for遍历
+ 3、lambda表达式遍历
+
+ lambda表达式遍历:
+ default void forEach(Consumer super T> action):
+ */
+
+ //1、创建集合并添加元素
+ Collection coll = new ArrayList<>();
+ coll.add("zhangsan");
+ coll.add("lisi");
+ coll.add("wangwu");
+
+ //2、利用匿名内部类的形式
+ coll.forEach(new Consumer() {
+ @Override
+ //s依次表示集合中的每一个数据
+ public void accept(String s) {
+ System.out.println(s);
+ }
+ });
+
+ //lambda表达式
+ coll.forEach(s -> System.out.println(s));
+
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo1.java b/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8762d7c78a2d700a8997e10bda4ca090e586fa2
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo1.java
@@ -0,0 +1,64 @@
+package Collection_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class Collection_demo1 {
+ public static void main(String[] args) {
+ /*
+ public boolean add (E e) 添加
+ public void clear () 清空
+ public boolean remove (E e) 删除
+ public boolean contains (Object obj) 判断是否包含
+ public boolean isEmpty () 判断是否为空
+ public int size () 集合长度
+
+ 注意点:
+ Collection是一个接口,我们不能直接创建他的对象
+ 所以,现在我们学习他的方法时,只能创建他实现类的对象
+ 实现类:ArrayList
+ */
+
+ Collection coll = new ArrayList<>();
+
+ //1、添加元素
+ //细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的
+ //细节2:如果我们要往Set系列集合中添加数据,如果当前要添加的元素不存在,方法返回true,表示添加成功。
+ // 如果当前要添加的元素已经存在,方法返回false,表示添加失败。
+ // 因为Set系列的集合不允许重复
+ coll.add("aaa");
+ coll.add("bbb");
+ coll.add("ccc");
+ System.out.println(coll);
+
+ //2、清空
+ coll.clear();
+ System.out.println(coll);
+
+ coll.add("aaa");
+ coll.add("bbb");
+ coll.add("ccc");
+
+ //3、删除
+ //细节1:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除,只能通过元素的对象进行删除
+ //细节2:方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false
+ // 如果删除元素不存在,就会删除失败
+ coll.remove("aaa");
+ System.out.println(coll);
+
+ //4、判断元素是否包含
+ //细节:底层是依赖equals方法进行判断是否存在的
+ //所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。
+ boolean result1 = coll.contains("bbb");
+ System.out.println(result1);
+
+ //5、判断集合是否为空
+ boolean result2 = coll.isEmpty();
+ System.out.println(result2);
+
+ //6、获取集合的长度
+ coll.add("ddd");
+ int size = coll.size();
+ System.out.println(size);
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo2.java b/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..e52355f926f3239f4c51bea61bdbfaa5963fd103
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_package/Collection_demo2.java
@@ -0,0 +1,30 @@
+package Collection_package;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class Collection_demo2 {
+ public static void main(String[] args) {
+ //1、创建集合的对象
+ Collection coll = new ArrayList<>();
+
+ //2、创建三个学生对象
+ Student s1 = new Student("zhangsan", 23);
+ Student s2 = new Student("lisi", 24);
+ Student s3 = new Student("wangwu", 25);
+
+ //3、把学生对象添加到集合当中
+ coll.add(s1);
+ coll.add(s2);
+ coll.add(s3);
+
+ //4、判断集合中某一个学生对象是否包含
+ Student s4 = new Student("zhangsan", 23);
+
+ //如果同姓名和同年龄,就认为是同一个学生
+ //因为contains方法在底层依赖equals方法判断对象是否一致的。
+ //如果存的是自定义对象,没有重写equals方法,那么默认使用Object类中的equals方法进行判断
+ //而Object类中的equals方法,依赖地址值进行判断
+ System.out.println(coll.contains(s4));
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collection_package/Student.java b/Set_advanced_project/Collection_module/src/Collection_package/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..cba87c61d9adee1698d9d3c06786a3eb08195684
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collection_package/Student.java
@@ -0,0 +1,45 @@
+package Collection_package;
+
+import java.util.Objects;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Student student = (Student) o;
+ return age == student.age && Objects.equals(name, student.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, age);
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo1.java b/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2438054d2a38fc8d62c11eea24a1eeb1fcd94f3
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo1.java
@@ -0,0 +1,28 @@
+package Collections_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class Collections_demo1 {
+ public static void main(String[] args) {
+ /*
+ public static boolean addAll (Collection c, T...elements) 批量添加元素
+ public static void shuffle (List> list) 打乱List集合元素的顺序
+ */
+
+ //addAll 批量添加元素
+
+ //1、创建集合对象
+ ArrayList list=new ArrayList<>();
+
+ //2、批量添加元素
+ Collections.addAll(list,"abc","abc","bcd","edf","asdf");
+
+ //3、打印集合
+ System.out.println(list);
+
+ //4、shuffle 打乱
+ Collections.shuffle(list);
+ System.out.println(list);
+ }
+}
diff --git a/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo2.java b/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d41c77e70010d327375c9e8c7d2d9f459cc76f4
--- /dev/null
+++ b/Set_advanced_project/Collection_module/src/Collections_package/Collections_demo2.java
@@ -0,0 +1,96 @@
+package Collections_package;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+public class Collections_demo2 {
+ public static void main(String[] args) {
+ /*
+ public static void sort(List list) 排序
+ public static void sort(List list, Comparator c) 根据指定的规则进行排序
+ public static int binarySearch (List list, T key) 以二分查找法查找元素
+ public static void copy(List dest, List src) 拷贝集合中的元素
+ public static int fill (List list, T obj) 使用指定的元素填充集合
+ public static void max/min(Collection coll) 根据默认的自然排序获取最大/小值
+ public static void swap(List> list, int i, int j) 交换集合中指定位置的元素
+ */
+
+
+ System.out.println("-------------sort默认规则--------------------------");
+ //默认规则,需要重写Comparable接口compareTo方法。Integer已经实现,按照从小打大的顺序排列
+ //如果是自定义对象,需要自己指定规则
+ ArrayList list1 = new ArrayList<>();
+ Collections.addAll(list1, 10, 1, 2, 4, 8, 5, 9, 6, 7, 3);
+ Collections.sort(list1);
+ System.out.println(list1);
+
+
+ System.out.println("-------------sort自己指定规则规则--------------------------");
+ Collections.sort(list1, new Comparator() {
+ @Override
+ public int compare(Integer o1, Integer o2) {
+ return o2 - o1;
+ }
+ });
+ System.out.println(list1);
+
+ Collections.sort(list1, (o1, o2) -> o2 - o1);
+ System.out.println(list1);
+
+ System.out.println("-------------binarySearch--------------------------");
+ //需要元素有序
+ ArrayList list2 = new ArrayList<>();
+ Collections.addAll(list2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ System.out.println(Collections.binarySearch(list2, 9));
+ System.out.println(Collections.binarySearch(list2, 1));
+ System.out.println(Collections.binarySearch(list2, 20));
+
+ System.out.println("-------------copy--------------------------");
+ //把list3中的元素拷贝到list4中
+ //会覆盖原来的元素
+ //注意点:如果list3的长度 > list4的长度,方法会报错
+ ArrayList list3 = new ArrayList<>();
+ ArrayList list4 = new ArrayList<>();
+ Collections.addAll(list3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ Collections.addAll(list4, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+ Collections.copy(list4, list3);
+ System.out.println(list3);
+ System.out.println(list4);
+
+ System.out.println("-------------fill--------------------------");
+ //把集合中现有的所有数据,都修改为指定数据
+ ArrayList list5 = new ArrayList<>();
+ Collections.addAll(list5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ Collections.fill(list5, 100);
+ System.out.println(list5);
+
+ System.out.println("-------------max/min--------------------------");
+ //求最大值或者最小值
+ ArrayList list6 = new ArrayList<>();
+ Collections.addAll(list6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ System.out.println(Collections.max(list6));
+ System.out.println(Collections.min(list6));
+
+ System.out.println("-------------max/min指定规则--------------------------");
+ // String中默认是按照字母的abcdefg顺序进行排列的
+ // 现在我要求最长的字符串
+ // 默认的规则无法满足,可以自己指定规则
+ // 求指定规则的最大值或者最小值
+ ArrayList list7 = new ArrayList<>();
+ Collections.addAll(list7, "a","aa","aaa","aaaa");
+ System.out.println(Collections.max(list7, new Comparator() {
+ @Override
+ public int compare(String o1, String o2) {
+ return o1.length() - o2.length();
+ }
+ }));
+
+ System.out.println("-------------swap--------------------------");
+ ArrayList list8 = new ArrayList<>();
+ Collections.addAll(list8, 1, 2, 3);
+ Collections.swap(list8,0,2);//指定位置之间的交换
+ System.out.println(list8);
+
+ }
+}
diff --git a/Set_advanced_project/Generics_module/Generics_module.iml b/Set_advanced_project/Generics_module/Generics_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Set_advanced_project/Generics_module/Generics_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/Animal.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/Animal.java
new file mode 100644
index 0000000000000000000000000000000000000000..e93fdbbdaa47ec9e8b6647c5f66323acccc5b7d6
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/Animal.java
@@ -0,0 +1,40 @@
+package Generics_Case_package;
+
+public abstract class Animal {
+ private String name;
+ private int age;
+
+ public Animal() {
+ }
+
+ public Animal(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ @Override
+ public String toString() {
+ return "Animal{" +
+ "name='" + name + '\'' +
+ ", age=" + age +
+ '}';
+ }
+
+ public abstract void eat();
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/Cat.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/Cat.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ba8c4dfb83774321a1245898042fab758ed5a89
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/Cat.java
@@ -0,0 +1,7 @@
+package Generics_Case_package;
+
+public abstract class Cat extends Animal{
+ //1、继承抽象类,重写里面所有的抽象方法
+ //2、本身Cat也是一个抽象的,让Cat的子类再去重写抽象方法
+
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/Dog.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/Dog.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b9172a58d968a7d4efca184da98cb8f970dcd5b
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/Dog.java
@@ -0,0 +1,4 @@
+package Generics_Case_package;
+
+public abstract class Dog extends Animal {
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/HuskyDog.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/HuskyDog.java
new file mode 100644
index 0000000000000000000000000000000000000000..f17124c06be8af9615e2cfbd118ebbd71c43dc3e
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/HuskyDog.java
@@ -0,0 +1,8 @@
+package Generics_Case_package;
+
+public class HuskyDog extends Dog {
+ @Override
+ public void eat() {
+ System.out.println("一只叫做" + getName() + "的," + getAge() + "岁的哈士奇,正在吃骨头,边吃边拆家");
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/LiHuaCat.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/LiHuaCat.java
new file mode 100644
index 0000000000000000000000000000000000000000..27f78bd85936a352c0d33e4a27ed90baaaff2451
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/LiHuaCat.java
@@ -0,0 +1,8 @@
+package Generics_Case_package;
+
+public class LiHuaCat extends Cat {
+ @Override
+ public void eat() {
+ System.out.println("一只叫做" + getName() + "的," + getAge() + "岁的狸花猫,正在吃鱼");
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/PersianCat.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/PersianCat.java
new file mode 100644
index 0000000000000000000000000000000000000000..185b8c4078be0456aee30ecb5b8b1fc5cc09f5e6
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/PersianCat.java
@@ -0,0 +1,8 @@
+package Generics_Case_package;
+
+public class PersianCat extends Cat {
+ @Override
+ public void eat() {
+ System.out.println("一只叫做" + getName() + "的," + getAge() + "岁的波斯猫,正在吃小饼干");
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/TeddyDog.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/TeddyDog.java
new file mode 100644
index 0000000000000000000000000000000000000000..1bf21d8cf1fcd9c3e5eda382993f0fc9541d3b72
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/TeddyDog.java
@@ -0,0 +1,8 @@
+package Generics_Case_package;
+
+public class TeddyDog extends Dog {
+ @Override
+ public void eat() {
+ System.out.println("一只叫做" + getName() + "的," + getAge() + "岁的泰迪,正在吃骨头,边吃边蹭");
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_Case_package/Test.java b/Set_advanced_project/Generics_module/src/Generics_Case_package/Test.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d10a7d4b990f5fae7fc034adab186b588b096bb
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_Case_package/Test.java
@@ -0,0 +1,24 @@
+package Generics_Case_package;
+
+import java.util.ArrayList;
+
+public class Test {
+ public static void main(String[] args) {
+
+ }
+
+ //要求1:该方法能养所有品种的猫,但是不能养狗
+ public static void keepCat(ArrayList extends Cat> list){
+ //遍历集合,调用动物的eat方法
+ }
+
+ //要求2:该方法能养所有品种的狗,但是不能养猫
+ public static void keepDog(ArrayList extends Dog> list){
+ //遍历集合,调用动物的eat方法
+ }
+
+ //要求3:该方法能养所有的动物,但是不能传递其他类型
+ public static void keepPet(ArrayList extends Animal> list){
+ //遍历集合,调用动物的eat方法
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package1/Generics_demo1.java b/Set_advanced_project/Generics_module/src/Generics_package1/Generics_demo1.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac644a4689335dcbc808a10ad2b19667664a7c7b
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package1/Generics_demo1.java
@@ -0,0 +1,34 @@
+package Generics_package1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+public class Generics_demo1 {
+ public static void main(String[] args) {
+ //没有泛型的时候,集合如何存储数据?
+ //结论:
+ //如果我们没有给集合指定类型,默认认为所有的数据类型都是Object类型
+ //此时可以往集合添加任意的数据类型
+ //带来一个坏处:我们在获取数据的时候,无法使用他的特有行为。
+
+ //此时推出了泛型,可以在添加数据的时候就把类型进行统一。
+ //而且我们在获取数据的时候,也省去了强转
+
+ //1、创建集合的对象
+ ArrayList list = new ArrayList();
+
+ //2、添加数据
+ list.add(123);
+ list.add("aaa");
+ list.add(new Student("zhangsan", 23));
+
+ //3、遍历集合获取里面的每一个元素
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ Object obj = it.next();
+ //多态的弊端:不能访问子类的特有功能
+ System.out.print(obj + " ");
+ }
+ System.out.println();
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package1/Student.java b/Set_advanced_project/Generics_module/src/Generics_package1/Student.java
new file mode 100644
index 0000000000000000000000000000000000000000..6988b82caa0504c0fa8a65036a4ce310e2eff0cb
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package1/Student.java
@@ -0,0 +1,30 @@
+package Generics_package1;
+
+public class Student {
+ private String name;
+ private int age;
+
+ public Student() {
+ }
+
+ public Student(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package2/Generics_demo2.java b/Set_advanced_project/Generics_module/src/Generics_package2/Generics_demo2.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfd103fef693e66248a6edc31d3aee8fd9f94877
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package2/Generics_demo2.java
@@ -0,0 +1,23 @@
+package Generics_package2;
+
+public class Generics_demo2 {
+ public static void main(String[] args) {
+ MyArrayList list = new MyArrayList<>();
+
+ list.add("aaa");
+ list.add("bbb");
+ list.add("ccc");
+
+ System.out.println(list);
+
+ MyArrayList list2 = new MyArrayList<>();
+ list2.add(123);
+ list2.add(456);
+ list2.add(789);
+
+ int i = list2.get(0);
+ System.out.println(i);
+
+ System.out.println(list2);
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package2/MyArrayList.java b/Set_advanced_project/Generics_module/src/Generics_package2/MyArrayList.java
new file mode 100644
index 0000000000000000000000000000000000000000..922fd7b511e3699818dc067d0189d5c54433697d
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package2/MyArrayList.java
@@ -0,0 +1,32 @@
+package Generics_package2;
+/*
+ 当我在编写一个类的时候,如果不确定类型,那么这个类就可以定义为泛型类
+ */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class MyArrayList {
+
+ Object[] obj = new Object[10];
+ int size;
+
+ /*
+ E:表示是不确定的类型,该类型在类名后面已经定义过了。
+ e:形参的名字,变量名
+ */
+ public boolean add(E e) {
+ obj[size] = e;
+ size++;
+ return true;
+ }
+
+ public E get(int index) {
+ return (E) obj[index];
+ }
+
+ @Override
+ public String toString() {
+ return Arrays.toString(obj);
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package3/Generics_demo3.java b/Set_advanced_project/Generics_module/src/Generics_package3/Generics_demo3.java
new file mode 100644
index 0000000000000000000000000000000000000000..f4526a79f91240b0b1c0117277d35d1766bcf7c6
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package3/Generics_demo3.java
@@ -0,0 +1,15 @@
+package Generics_package3;
+
+import java.util.ArrayList;
+
+public class Generics_demo3 {
+ public static void main(String[] args) {
+ ArrayList list1 = new ArrayList<>();
+ ListUtil.addAll(list1, "aaa", "bbb", "ccc");
+ System.out.println(list1);
+
+ ArrayList list2 = new ArrayList<>();
+ ListUtil.addAll(list2, 1, 22, 34, 56);
+ System.out.println(list2);
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package3/ListUtil.java b/Set_advanced_project/Generics_module/src/Generics_package3/ListUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..6540d90fe692f40722ed33bd877080b154d80b82
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package3/ListUtil.java
@@ -0,0 +1,21 @@
+package Generics_package3;
+
+import java.util.ArrayList;
+
+public class ListUtil {
+ private ListUtil() {
+ }
+
+ //类中定义一个静态方法addAll,用来添加多个集合的元素。
+
+ /*
+ * 参数一:集合
+ * 参数二~最后:要添加的元素
+ *
+ */
+ public static void addAll(ArrayList list, E... e) {
+ for (E element : e) {
+ list.add(element);
+ }
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package4/Generics_demo4.java b/Set_advanced_project/Generics_module/src/Generics_package4/Generics_demo4.java
new file mode 100644
index 0000000000000000000000000000000000000000..5156b2ee1f524aa4e0855193cd721c4d1dec07be
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package4/Generics_demo4.java
@@ -0,0 +1,17 @@
+package Generics_package4;
+
+public class Generics_demo4 {
+ public static void main(String[] args) {
+ /*
+ 泛型接口的两种使用方式:
+ 1、实现类给出具体的类型
+ 2、实现类延续泛型,创建实现类对象时再确定类型
+ */
+
+ MyArrayList2 list = new MyArrayList2();
+ list.add("123");
+
+ MyArrayList3 list2=new MyArrayList3<>();
+ list2.add("234");
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList2.java b/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList2.java
new file mode 100644
index 0000000000000000000000000000000000000000..c24a03469b96be936ef8e63b996dd514106a4837
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList2.java
@@ -0,0 +1,123 @@
+package Generics_package4;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+public class MyArrayList2 implements List {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(String s) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public String get(int index) {
+ return null;
+ }
+
+ @Override
+ public String set(int index, String element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, String element) {
+
+ }
+
+ @Override
+ public String remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List subList(int fromIndex, int toIndex) {
+ return null;
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList3.java b/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList3.java
new file mode 100644
index 0000000000000000000000000000000000000000..bcadcd1c810d61cee2bddff88b33371112adde7a
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package4/MyArrayList3.java
@@ -0,0 +1,123 @@
+package Generics_package4;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+public class MyArrayList3 implements List {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(E e) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection extends E> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection extends E> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public E get(int index) {
+ return null;
+ }
+
+ @Override
+ public E set(int index, E element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, E element) {
+
+ }
+
+ @Override
+ public E remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List subList(int fromIndex, int toIndex) {
+ return null;
+ }
+}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo5.java b/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo5.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0e725d38e9fc7ad3e81ca7a20548c917ae7eb71
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo5.java
@@ -0,0 +1,33 @@
+package Generics_package5;
+
+import java.util.ArrayList;
+
+public class Generics_demo5 {
+ public static void main(String[] args) {
+ /*
+ 泛型不具备继承性,但是数据具备继承性
+ */
+
+ //创建集合的对象
+ ArrayList list1 = new ArrayList<>();
+ ArrayList list2 = new ArrayList<>();
+ ArrayList list3 = new ArrayList<>();
+
+ //调用method方法
+ method(list1);
+ //error: method(list2);
+ //error: method(list3);
+
+ list1.add(new Ye());
+ list1.add(new Fu());
+ list1.add(new Zi());
+ }
+
+ //此时,泛型里面写的是什么类型,那么只能传递什么类型的数据
+ private static void method(ArrayList list1) {
+ }
+}
+
+class Ye{}
+class Fu extends Ye{}
+class Zi extends Fu{}
diff --git a/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo6.java b/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo6.java
new file mode 100644
index 0000000000000000000000000000000000000000..3804969d235b9054ee2892cd0311e1317081284c
--- /dev/null
+++ b/Set_advanced_project/Generics_module/src/Generics_package5/Generics_demo6.java
@@ -0,0 +1,54 @@
+package Generics_package5;
+
+import java.util.ArrayList;
+
+public class Generics_demo6 {
+ public static void main(String[] args) {
+ /*
+ * 需求:
+ * 定义一个方法,形参是一个集合,但是集合中的数据类型不确定
+ *
+ */
+
+ //创建集合的对象
+ ArrayList list1 = new ArrayList<>();
+ ArrayList list2 = new ArrayList<>();
+ ArrayList list3 = new ArrayList<>();
+ ArrayList list4 = new ArrayList<>();
+
+ method(list1);
+ method(list2);
+ method(list3);
+
+ //method(list4);
+
+ }
+
+ /*
+ * 此时:泛型里面写的是什么类型,那么只能传递什么类型的数据。
+ * 弊端:
+ * 利用泛型方法有一个小弊端,此时他可以接受任意的数据类型
+ * Ye Fu Zi Student
+ *
+ * 希望:本方法虽然不确定类型,但是以后我希望只能传递Ye Fu Zi
+ *
+ * 此时我们就可以使用泛型的通配符:
+ * ? 也表示不确定的类型
+ * 他可以进行类型的限定
+ * ? extends E:表示可以传递E或者E所有的子类类型
+ * ? super E:表示可以传递E或者E所有的父类类型
+ *
+ * 应用场景:
+ * 1、如果我们在定义类、方法、接口的时候,如果类型不确定,就可以定义泛型类、泛型方法、泛型接口
+ * 2、如果类型不确定,但是能知道以后只能传递某个继承体系中的,就可以泛型的通配符
+ * 泛型的通配符:
+ * 关键点:可以限定类型的范围。
+ */
+ public static void method(ArrayList extends Ye> list){
+
+ }
+}
+
+class Student{
+
+}
diff --git a/Set_advanced_project/Immutable_Set_module/Immutable_Set_module.iml b/Set_advanced_project/Immutable_Set_module/Immutable_Set_module.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Set_advanced_project/Immutable_Set_module/Immutable_Set_module.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_List.java b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_List.java
new file mode 100644
index 0000000000000000000000000000000000000000..3eeb7a6a5fab5298c26a6c6ec406a26ab00eb459
--- /dev/null
+++ b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_List.java
@@ -0,0 +1,36 @@
+package Immutable_Set_package;
+
+import java.util.Iterator;
+import java.util.List;
+
+public class Immutable_List {
+ public static void main(String[] args) {
+ /*
+ 创建不可变的List集合
+ "张三", "李四", "王五", "赵六"
+ */
+
+ //一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作
+ List list = List.of("张三", "李四", "王五", "赵六");
+
+ for (int i = 0; i < list.size(); i++) {
+ System.out.println(list.get(i));
+ }
+
+ System.out.println("--------------------------");
+ for (String s : list) {
+ System.out.println(s);
+ }
+
+ System.out.println("--------------------------");
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ String s = it.next();
+ System.out.println(s);
+ }
+
+ //error: list.remove("李四");
+ //error: list.add("aaaa");
+ //error: list.set(0, "bbb");
+ }
+}
diff --git a/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map.java b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map.java
new file mode 100644
index 0000000000000000000000000000000000000000..1f06f861dc57d56da7433c7ef10f22476e692670
--- /dev/null
+++ b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map.java
@@ -0,0 +1,45 @@
+package Immutable_Set_package;
+
+import java.util.Map;
+import java.util.Set;
+
+public class Immutable_Map {
+ public static void main(String[] args) {
+ /*
+ 创建Map的不可变集合
+
+ "张三","南京","李四","北京","王五","上海",
+ "赵六","广州","孙七","深圳","周八","杭州",
+ "吴九","宁波","郑十","苏州","刘一","无锡",
+ "陈二","嘉兴",
+
+ 细节1:键是不能重复的。
+ 细节2:Map里面的of方法,参数是有上限的,最多只能传递20个参数,10个键值对
+ 细节3:如果我们要传递多个键值对对象,数量大于10个,在Map接口中还有一个方法
+ */
+
+ //一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作
+ Map map = Map.of("张三", "南京", "李四", "北京", "王五", "上海",
+ "赵六", "广州", "孙七", "深圳", "周八", "杭州",
+ "吴九", "宁波", "郑十", "苏州", "刘一", "无锡",
+ "陈二", "嘉兴");
+
+ Set keys = map.keySet();
+ for (String key : keys) {
+ String value = map.get(key);
+ System.out.println(key + " = " + value);
+ }
+
+ System.out.println("----------------------");
+
+ Set> entries = map.entrySet();
+ for (Map.Entry entry : entries) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+
+ System.out.println(key + " = " + value);
+ }
+
+ }
+
+}
diff --git a/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map2.java b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map2.java
new file mode 100644
index 0000000000000000000000000000000000000000..a37251f95e2bf37bc3f1751d71e59341d30b8533
--- /dev/null
+++ b/Set_advanced_project/Immutable_Set_module/src/Immutable_Set_package/Immutable_Map2.java
@@ -0,0 +1,50 @@
+package Immutable_Set_package;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class Immutable_Map2 {
+ public static void main(String[] args) {
+ /*
+ 创建Map的不可变集合,键值对的数量超过10个
+ */
+
+ //1、创建一个普通的Map集合
+ HashMap hm = new HashMap<>();
+ hm.put("张三", "南京");
+ hm.put("李四", "北京");
+ hm.put("王五", "上海");
+ hm.put("赵六", "广州");
+ hm.put("孙七", "深圳");
+ hm.put("周八", "杭州");
+ hm.put("吴九", "宁波");
+ hm.put("郑十", "苏州");
+ hm.put("刘一", "无锡");
+ hm.put("陈二", "嘉兴");
+ hm.put("aaa", "111");
+
+ //2、利用上面的数据来获取一个不可变的集合
+ //获取到所有的键值对对象(Entry对象)
+ Set> entries = hm.entrySet();
+ //Map.Entry[] arr1 = entries.toArray(new Map.Entry[0]);
+
+ //把entries变成一个数组
+ Map.Entry[] arr1 = new Map.Entry[0];
+ //toArray方法在底层会比较集合的长度跟数组的长度两者的大小
+ //如果集合的长度 > 数组的长度:数据在数组中放不下,此时会根据实际数据的个数,重新创建数组
+ //如果集合的长度 《= 数组的长度:数据在数组中放得下,此时不会创建新的数组,而是直接用
+ Map.Entry[] arr2 = entries.toArray(arr1);
+
+ //不可变的map集合
+ Map map = Map.ofEntries(arr2);
+
+
+ //简化版本
+
+ Map