diff --git a/.vscode/launch.json b/.vscode/launch.json
index d2efd06a..3bf4d88d 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -4,12 +4,18 @@
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
- {
- "type": "java",
- "name": "Launch Java Program",
- "request": "launch",
- "mainClass": ""
- },
+ {
+ "type": "java",
+ "name": "Launch App",
+ "request": "launch",
+ "mainClass": "com.ykl.App"
+ },
+ {
+ "type": "java",
+ "name": "Launch Java Program",
+ "request": "launch",
+ "mainClass": ""
+ },
{
"type": "java",
"name": "Launch Java01HelloWorld",
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 8996fdb6..e69de29b 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -1,24 +0,0 @@
-{
- "version": "2.0.0",
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++:build",
- "command": "D:\\mingw\\mingw64\\bin\\g++.exe",
- "args": [
- "-g",
- "${file}",
- "-o",
- "${fileDirname}\\${fileBasenameNoExtension}.exe"
- ],
- "options": {
- "cwd": "${workspaceFolder}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": "build",
- "detail": "编译器: D:\\mingw\\mingw64\\bin\\g++.exe"
- },
- ]
-}
\ No newline at end of file
diff --git a/Java基础教程/Java语言基础/11 Object类.md b/Java基础教程/JDK学习/11 Object类.md
similarity index 100%
rename from Java基础教程/Java语言基础/11 Object类.md
rename to Java基础教程/JDK学习/11 Object类.md
diff --git a/Java基础教程/Java语言基础/12 包装器类.md b/Java基础教程/JDK学习/12 包装器类.md
similarity index 100%
rename from Java基础教程/Java语言基础/12 包装器类.md
rename to Java基础教程/JDK学习/12 包装器类.md
diff --git a/Java基础教程/Java语言基础/13 String&StringBuffer&StringBuilder.md b/Java基础教程/JDK学习/13 String类.md
similarity index 100%
rename from Java基础教程/Java语言基础/13 String&StringBuffer&StringBuilder.md
rename to Java基础教程/JDK学习/13 String类.md
diff --git a/Java基础教程/Java语言基础/14 Math类.md b/Java基础教程/JDK学习/14 Math类.md
similarity index 100%
rename from Java基础教程/Java语言基础/14 Math类.md
rename to Java基础教程/JDK学习/14 Math类.md
diff --git a/Java基础教程/Java语言基础/15 日期时间.md b/Java基础教程/JDK学习/15 日期时间.md
similarity index 100%
rename from Java基础教程/Java语言基础/15 日期时间.md
rename to Java基础教程/JDK学习/15 日期时间.md
diff --git a/Java基础教程/Java语言基础/16 Scanner.md b/Java基础教程/JDK学习/16 Scanner.md
similarity index 100%
rename from Java基础教程/Java语言基础/16 Scanner.md
rename to Java基础教程/JDK学习/16 Scanner.md
diff --git a/Java基础教程/Java语言基础/17 正则表达式.md b/Java基础教程/JDK学习/17 正则表达式.md
similarity index 100%
rename from Java基础教程/Java语言基础/17 正则表达式.md
rename to Java基础教程/JDK学习/17 正则表达式.md
diff --git a/Java基础教程/Java语言基础/20 Java容器.md b/Java基础教程/JDK学习/20 Java容器.md
similarity index 100%
rename from Java基础教程/Java语言基础/20 Java容器.md
rename to Java基础教程/JDK学习/20 Java容器.md
diff --git a/Java基础教程/Java语言基础/21 Java IO.md b/Java基础教程/JDK学习/21 Java IO.md
similarity index 100%
rename from Java基础教程/Java语言基础/21 Java IO.md
rename to Java基础教程/JDK学习/21 Java IO.md
diff --git a/Java基础教程/Java语言基础/22 JavaSocket.md b/Java基础教程/JDK学习/22 JavaSocket.md
similarity index 100%
rename from Java基础教程/Java语言基础/22 JavaSocket.md
rename to Java基础教程/JDK学习/22 JavaSocket.md
diff --git a/Java基础教程/Java语言基础/23 Java多线程.md b/Java基础教程/JDK学习/23 Java多线程.md
similarity index 100%
rename from Java基础教程/Java语言基础/23 Java多线程.md
rename to Java基础教程/JDK学习/23 Java多线程.md
diff --git a/Java基础教程/Java语言基础/05 面向对象.md b/Java基础教程/Java语言基础/05 面向对象.md
index ab33d9ca..cce96042 100644
--- a/Java基础教程/Java语言基础/05 面向对象.md
+++ b/Java基础教程/Java语言基础/05 面向对象.md
@@ -1,8 +1,9 @@
## 1 类和对象
-
+> 建模全宇宙,用有限的代码描述无限的世界
### 类的定义
-属性和方法(变量和函数),对象即实例。放到一起就是对象。面相对象的本质就是以类的方式组织代码,以对象组织封装数据。
+属性和方法(变量和函数),对象即实例。放到一起就是对象。面相对象的本质就是以类的方式组织代码,以对象组织封装数据。OOP:Object oriented programming
+
抽象,把共同的部分抽取出来,组成一个类。
@@ -89,10 +90,16 @@ public void setName(String name){
}
```
+### this
+调用重载的构造方法:
+1. 可以在构造方法中,通过this调用本类的另一个构造方法,且必须置于第一行。
+2. 可以通过this调用本类中带参或无参构造方法,调用带参构造方法时,需要按顺序传入设定的参数。
+3. 在一个构造方法内只能调用一个构造方法。
+4. 不能在类中普通成员方法内通过this调用构造方法。
### super
-
+- 子类的构造函数会默认调用父类的无参构造函数。而且通过super()方法调用父类的构造器,必须放在子类构造器的第一行。
- 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。应该注意到,子类一定会调用父类的构造函数来完成初始化工作,一般是调用父类的默认构造函数,如果子类需要调用父类其它构造函数,那么就可以使用 super() 函数。
- 访问父类的成员:如果子类重写了父类的某个方法,可以通过使用 super 关键字来引用父类的方法实现。
@@ -131,14 +138,17 @@ public class SuperExtendExample extends SuperExample {
}
```
+### static
+
+static方法和static变量和类加载器同时加载到内存中,存储在静态方法区。
## 2 三大特性——封装
-高内聚、低耦合。属性私有
+高内聚、低耦合。属性私有。
1. 隐藏实现的细节。将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
2. 提高系统的安全性。在getset中对输入数据进行安全检查。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。
3. 提供统一的接口
-4. 更容易理解与维护,也加强了程式码的安全性。
+4. 更容易理解与维护。
**实现封装的步骤**
@@ -151,6 +161,7 @@ public class SuperExtendExample extends SuperExample {
**继承的定义**
1. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2. 继承本质上是一种代码复用的方法。也提高了代码的耦合程度。
+3. 所有没有父类的类默认继承Object类。
```java
class 父类 {
@@ -250,6 +261,14 @@ public class TestSuperSub{
* 父类引用指向子类对象:Parent p = new Child();

+
+**多态的说明**
+* 多态是方法的多态,属性没有多态。
+* 被private/static/final定义的方法不能被重写。final类型的方法重写编译器会报错。static方法只能被同名函数重定义。
+
+**类型转换**
+* 向上转型,父类变量指向子类对象。向上转型是自动发生的
+* 向下转型,父类变量转为子类变量。向下转型需要强制类型转换。
```java
class Shape {
void draw() {}
@@ -329,7 +348,7 @@ class Dog extends Animal {
**多态实现方法**
-1. 重载和重写。
+1. 重载、重写、重定义(命名作用域屏蔽)
2. 接口实现
3. 抽象类和抽象方法
@@ -342,11 +361,14 @@ class Dog extends Animal {
* 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
+* 对象的引用类型决定了对象能够访问的方法。对象具体调用的方法,取决于对象的实际类型。(引用类型和实际类型。)
+
+
为了满足里式替换原则,重写有以下三个限制:
-- 子类方法的访问权限必须大于等于父类方法;
+- 访问权限修饰符范围只能扩大,不能缩小。子类方法的访问权限必须大于等于父类方法;
- 子类方法的返回类型必须是父类方法返回类型或为其子类型。
-- 子类方法抛出的异常类型必须是父类抛出异常类型或为其子类型。
+- 抛出异常的范围只能缩小,不能扩大。子类方法抛出的异常类型必须是父类抛出异常类型或为其子类型。
使用 @Override 注解,可以让编译器帮忙检查是否满足上面的三个限制条件。
diff --git a/Java基础教程/Java语言基础/06 接口和抽象类.md b/Java基础教程/Java语言基础/06 接口和抽象类.md
index f88d42fe..f59d57ae 100644
--- a/Java基础教程/Java语言基础/06 接口和抽象类.md
+++ b/Java基础教程/Java语言基础/06 接口和抽象类.md
@@ -2,12 +2,11 @@
## 1 抽象类
-抽象类和抽象方法都使用 abstract 关键字进行声明。
-* 如果一个类中包含抽象方法,那么这个类必须声明为抽象类。
-* 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
-
-
-抽象类和普通类最大的区别是,抽象类不能被实例化,只能被继承。
+* 抽象类和抽象方法都使用 abstract 关键字进行声明。
+* 抽象方法,是一种约束,只有方法的声明,没有方法的实现。如果一个类中包含抽象方法,那么这个类必须声明为抽象类。抽象类可以包含普通方法。
+* 抽象类,非抽象子类必须实现抽象方法。任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
+* 抽象类和普通类最大的区别是,抽象类不能被实例化,只能被继承。
+* 抽象类没有构造方法。
```java
public abstract class AbstractClassExample {
@@ -33,17 +32,19 @@ public class AbstractExtendClassExample extends AbstractClassExample {
```
## 2 接口
-
+* 接口规范、定义规则、本质上是契约。
implements关键字
* 使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)
+* 接口不能被实例化,接口中没有构造方法。必须重写接口中的方法。
+
+
* 接口是抽象类的延伸,在 Java 8 之前,它可以看成是一个完全抽象的类,也就是说它不能有任何的方法实现。
-* 从 Java 8 开始,**接口也可以拥有默认的方法实现**,这是因为不支持默认方法的接口的维护成本太高了。在 Java 8 之前,如果一个接口想要添加新的方法,那么要修改所有实现了该接口的类,让它们都实现新增的方法。
-* 接口的成员(字段 + 方法)默认都是 **public abstract**的,并且不允许定义为 private 或者 protected。从 Java 9 开始,**允许将方法定义为 private**,这样就能定义某些复用的代码又不会把方法暴露出去。
+* 接口的成员(字段 + 方法)默认都是 **public abstract**的,并且不允许定义为 private 或者 protected。
* 接口的字段默认都是 **static 和 final** 的。
diff --git a/Java基础教程/Java语言基础/07 Java内部类.md b/Java基础教程/Java语言基础/07 Java内部类.md
new file mode 100644
index 00000000..664239e0
--- /dev/null
+++ b/Java基础教程/Java语言基础/07 Java内部类.md
@@ -0,0 +1,13 @@
+# Java 内部类
+
+## 概述
+
+### 基本概念
+
+内部类就是在一个类的内部定义一个类。
+
+* 成员内部类
+* 静态内部类
+* 局部内部类
+* 匿名内部类
+
diff --git a/Java基础教程/Java语言基础/07 异常处理.md b/Java基础教程/Java语言基础/11 异常处理.md
similarity index 100%
rename from Java基础教程/Java语言基础/07 异常处理.md
rename to Java基础教程/Java语言基础/11 异常处理.md
diff --git a/Java基础教程/Java面试原理/01 类型转换.md b/Java基础教程/Java面试原理/01 类型转换.md
new file mode 100644
index 00000000..f57898ef
--- /dev/null
+++ b/Java基础教程/Java面试原理/01 类型转换.md
@@ -0,0 +1,37 @@
+
+
+### 基本类型的类型转换
+
+
+
+
+### 继承中的类型转换
+
+* 向上转型。子类的对象可以转换成父类的变量。
+* 向下转型。父类的变量可以转换成子类的变量。
+
+
+**验证3种情况**
+* 父类变量指向父类对象(父类方法)。父类变量强制转换子类变量(转换出错)。
+* 子类变量指向子类对象(子类方法)。子类变量强制转换父类变量(多态子类方法)。
+* 父类变量指向子类对象(多态子类方法)。父类变量强制转换子类变量(子类方法)。
+
+```java
+public class App02
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ Dog dd = new Dog();
+ Animal aa = new Animal();
+ Animal ad = new Dog();
+
+ dd.say(); //dog say
+ ((Animal)dd).say();//dog say
+ aa.say();// animal say
+// ((Dog) aa).say();// down
+ ad.say();//dog say
+ ((Dog) ad).say();//dog say
+ }
+}
+```
\ No newline at end of file
diff --git a/Java基础教程/Java面试原理/03 关键字.md b/Java基础教程/Java面试原理/03 关键字.md
index 1202da99..ec1039a1 100644
--- a/Java基础教程/Java面试原理/03 关键字.md
+++ b/Java基础教程/Java面试原理/03 关键字.md
@@ -225,7 +225,7 @@
- 对于基本类型,final 使数值不变;
- 对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。
-
+- 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
```java
final int x = 1;
// x = 2; // cannot assign value to final variable 'x'
@@ -235,7 +235,7 @@ y.a = 1;
**2. 方法**
-声明方法不能被子类重写。
+声明方法不能被子类重写。当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。
diff --git a/Java源代码/lesson04/.idea/ConfPoetryConfig.xml b/Java源代码/lesson04/.idea/ConfPoetryConfig.xml
new file mode 100644
index 00000000..a492c89d
--- /dev/null
+++ b/Java源代码/lesson04/.idea/ConfPoetryConfig.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/compiler.xml b/Java源代码/lesson04/.idea/compiler.xml
new file mode 100644
index 00000000..72d6de28
--- /dev/null
+++ b/Java源代码/lesson04/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/encodings.xml b/Java源代码/lesson04/.idea/encodings.xml
new file mode 100644
index 00000000..46abb559
--- /dev/null
+++ b/Java源代码/lesson04/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/jarRepositories.xml b/Java源代码/lesson04/.idea/jarRepositories.xml
new file mode 100644
index 00000000..54f518fe
--- /dev/null
+++ b/Java源代码/lesson04/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/libraries/Maven__junit_junit_4_11.xml b/Java源代码/lesson04/.idea/libraries/Maven__junit_junit_4_11.xml
new file mode 100644
index 00000000..f33320d8
--- /dev/null
+++ b/Java源代码/lesson04/.idea/libraries/Maven__junit_junit_4_11.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/Java源代码/lesson04/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 00000000..f58bbc11
--- /dev/null
+++ b/Java源代码/lesson04/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/misc.xml b/Java源代码/lesson04/.idea/misc.xml
new file mode 100644
index 00000000..75a7c22b
--- /dev/null
+++ b/Java源代码/lesson04/.idea/misc.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/.idea/modules.xml b/Java源代码/lesson04/.idea/modules.xml
index 8b84b507..abbcab88 100644
--- a/Java源代码/lesson04/.idea/modules.xml
+++ b/Java源代码/lesson04/.idea/modules.xml
@@ -2,6 +2,7 @@
+
diff --git a/Java源代码/lesson04/.idea/uiDesigner.xml b/Java源代码/lesson04/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Java源代码/lesson04/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/demo01/demo01.iml b/Java源代码/lesson04/demo01/demo01.iml
new file mode 100644
index 00000000..166ba6eb
--- /dev/null
+++ b/Java源代码/lesson04/demo01/demo01.iml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java源代码/lesson04/demo01/pom.xml b/Java源代码/lesson04/demo01/pom.xml
new file mode 100644
index 00000000..52707d5c
--- /dev/null
+++ b/Java源代码/lesson04/demo01/pom.xml
@@ -0,0 +1,75 @@
+
+
+
+ 4.0.0
+
+ com.ykl
+ demo01
+ 1.0-SNAPSHOT
+
+ demo01
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/App01.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App01.java
new file mode 100644
index 00000000..a7e86810
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App01.java
@@ -0,0 +1,22 @@
+package com.ykl;
+
+import com.ykl.example01.Animal;
+import com.ykl.example01.Dog;
+
+/**
+ * Hello world!
+ *
+ */
+public class App01
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ Dog dd = new Dog();
+ Animal ad = new Dog();
+ dd.say();
+ dd.eat();
+ ad.say();
+ ad.eat();
+ }
+}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/App02.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App02.java
index 76c375a0..50902812 100644
--- a/Java源代码/lesson04/demo01/src/main/java/com/ykl/App02.java
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App02.java
@@ -1,8 +1,11 @@
-package com.ykl.example01;
+package com.ykl;
+
+import com.ykl.example01.Animal;
+import com.ykl.example01.Dog;
/**
* Hello world!
- *
+ * 用来验证不同的类型转换方法,是否成功和最终输出的结果。
*/
public class App02
{
@@ -10,10 +13,14 @@ public class App02
{
System.out.println( "Hello World!" );
Dog dd = new Dog();
+ Animal aa = new Animal();
Animal ad = new Dog();
- dd.say();
- dd.eat();
- ad.say();
- ad.eat();
+
+ dd.say(); //dog say
+ ((Animal)dd).say();//dog say
+ aa.say();// animal say
+// ((Dog) aa).say();// down
+ ad.say();//dog say
+ ((Dog) ad).say();//dog say
}
}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/App03.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App03.java
new file mode 100644
index 00000000..673f907d
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/App03.java
@@ -0,0 +1,18 @@
+package com.ykl;
+
+import com.ykl.example01.Person;
+
+/**
+ * Hello world!
+ * 用来验证初始化的执行顺序。
+ */
+public class App03
+{
+ public static void main( String[] args )
+ {
+ Person person = new Person();
+ Person person3 = new Person();
+ person.say();
+
+ }
+}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Animal.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Animal.java
new file mode 100644
index 00000000..917956a0
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Animal.java
@@ -0,0 +1,10 @@
+package com.ykl.example01;
+public class Animal {
+ public final void eat(){
+ System.out.println("animal eat");
+ }
+
+ public void say(){
+ System.out.println("animal say");
+ }
+}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Dog.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Dog.java
new file mode 100644
index 00000000..fe2db22b
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Dog.java
@@ -0,0 +1,14 @@
+package com.ykl.example01;
+
+import com.ykl.example01.Animal;
+
+public class Dog extends Animal{
+ // final方法默认不能被覆盖,编译器报错。
+ // public void eat(){
+ // System.out.println("dog eat");
+ // }
+
+ public void say(){
+ System.out.println("dog say");
+ }
+}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Person.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Person.java
index 426c655e..4d707e73 100644
--- a/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Person.java
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example01/Person.java
@@ -1,9 +1,37 @@
/**
* Alipay.com Inc.
* Copyright (c) 2004-2022 All Rights Reserved.
- */package com.ykl.example01;/**
- *
+ */
+package com.ykl.example01;
+
+import java.sql.SQLOutput;
+
+/**
* @author yinkanglong
* @version : Person, v 0.1 2022-07-24 01:56 yinkanglong Exp $
- */public class Person {
+ */
+public class Person {
+ //静态变量
+ public static int age=10;
+
+ //静态方法
+ public static void say(){
+ System.out.println("静态方法执行了");
+ }
+
+ //代码快
+ {
+ System.out.println("普通代码块");
+ }
+
+ //静态代码快
+ static {
+ System.out.println("静态代码块");
+ }
+
+
+
+ public Person(){
+ System.out.println("构造器执行了");
+ }
}
diff --git a/Java源代码/lesson04/demo01/src/main/java/com/ykl/example04/Outer.java b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example04/Outer.java
new file mode 100644
index 00000000..a94bab1a
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/main/java/com/ykl/example04/Outer.java
@@ -0,0 +1,51 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.example04;
+
+/**
+ * @author yinkanglong
+ * @version : Outer, v 0.1 2022-07-24 13:19 yinkanglong Exp $
+ */
+public class Outer {
+ private int id;
+ public void out(){
+ System.out.println("outer method");
+ }
+
+ public class Inner{
+ public void in(){
+ System.out.println("inner method");
+
+ //成员内部类可以直接获取外部类的私有属性。
+ }
+ }
+
+ public static class InnerStatic{
+
+ }
+ public void method(){
+ class Inner{
+ public void inMehtod(){
+ System.out.println("这是一个方法内部类");
+ }
+ }
+ }
+ public static void main(String[] args) {
+ Outer outer = new Outer();
+ outer.out();
+ //通过外部类的new方法实例化一个对象
+ Outer.Inner inner = outer.new Inner();
+ inner.in();
+
+ new A().eat();
+ }
+}
+
+//一个Java文件中有多个类,但是只能有一个public
+class A{
+ public void eat(){
+
+ }
+}
diff --git a/Java源代码/lesson04/demo01/src/test/java/com/ykl/AppTest.java b/Java源代码/lesson04/demo01/src/test/java/com/ykl/AppTest.java
new file mode 100644
index 00000000..0a6d8660
--- /dev/null
+++ b/Java源代码/lesson04/demo01/src/test/java/com/ykl/AppTest.java
@@ -0,0 +1,20 @@
+package com.ykl;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+{
+ /**
+ * Rigorous Test :-)
+ */
+ @Test
+ public void shouldAnswerWithTrue()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/Java网站开发/MyBatis/1简介.md b/MyBatis/1简介.md
similarity index 100%
rename from Java网站开发/MyBatis/1简介.md
rename to MyBatis/1简介.md
diff --git a/Java网站开发/MyBatis/2XML配置.md b/MyBatis/2XML配置.md
similarity index 100%
rename from Java网站开发/MyBatis/2XML配置.md
rename to MyBatis/2XML配置.md
diff --git a/Java网站开发/MyBatis/3XML映射.md b/MyBatis/3XML映射.md
similarity index 100%
rename from Java网站开发/MyBatis/3XML映射.md
rename to MyBatis/3XML映射.md
diff --git a/Java网站开发/MyBatis/4动态SQL.md b/MyBatis/4动态SQL.md
similarity index 100%
rename from Java网站开发/MyBatis/4动态SQL.md
rename to MyBatis/4动态SQL.md
diff --git a/Java网站开发/MyBatis/5Java API.md b/MyBatis/5Java API.md
similarity index 100%
rename from Java网站开发/MyBatis/5Java API.md
rename to MyBatis/5Java API.md
diff --git a/Java网站开发/MyBatis/6SQL语句构建器.md b/MyBatis/6SQL语句构建器.md
similarity index 100%
rename from Java网站开发/MyBatis/6SQL语句构建器.md
rename to MyBatis/6SQL语句构建器.md
diff --git a/Java网站开发/MyBatis/7日志.md b/MyBatis/7日志.md
similarity index 100%
rename from Java网站开发/MyBatis/7日志.md
rename to MyBatis/7日志.md
diff --git a/Java框架教程/SpringCloud/SpringCloud简介.md b/Spring/SpringCloud/SpringCloud简介.md
similarity index 100%
rename from Java框架教程/SpringCloud/SpringCloud简介.md
rename to Spring/SpringCloud/SpringCloud简介.md
diff --git a/Java框架教程/SpringMVC/SpringMVC简介.md b/Spring/SpringMVC/SpringMVC简介.md
similarity index 100%
rename from Java框架教程/SpringMVC/SpringMVC简介.md
rename to Spring/SpringMVC/SpringMVC简介.md
diff --git a/Spring/Spring MVC/简介.md b/Spring/SpringMVC/简介.md
similarity index 100%
rename from Spring/Spring MVC/简介.md
rename to Spring/SpringMVC/简介.md
diff --git a/Java框架教程/Springboot/1 Springboot.md b/Spring/Springboot/1 Springboot.md
similarity index 100%
rename from Java框架教程/Springboot/1 Springboot.md
rename to Spring/Springboot/1 Springboot.md
diff --git a/Java框架教程/Springboot/2 Springboot配置.md b/Spring/Springboot/2 Springboot配置.md
similarity index 100%
rename from Java框架教程/Springboot/2 Springboot配置.md
rename to Spring/Springboot/2 Springboot配置.md
diff --git a/Java框架教程/Springboot/3 Springboot底层注解.md b/Spring/Springboot/3 Springboot底层注解.md
similarity index 100%
rename from Java框架教程/Springboot/3 Springboot底层注解.md
rename to Spring/Springboot/3 Springboot底层注解.md
diff --git a/Java框架教程/Springboot/Springboot自动配置原理.md b/Spring/Springboot/Springboot自动配置原理.md
similarity index 100%
rename from Java框架教程/Springboot/Springboot自动配置原理.md
rename to Spring/Springboot/Springboot自动配置原理.md
diff --git a/Java框架教程/Springboot/image/2022-07-04-10-30-39.png b/Spring/Springboot/image/2022-07-04-10-30-39.png
similarity index 100%
rename from Java框架教程/Springboot/image/2022-07-04-10-30-39.png
rename to Spring/Springboot/image/2022-07-04-10-30-39.png
diff --git a/Java框架教程/Springframework/SpringFramework简介.md b/Spring/Springframework/SpringFramework简介.md
similarity index 100%
rename from Java框架教程/Springframework/SpringFramework简介.md
rename to Spring/Springframework/SpringFramework简介.md