Compare commits

...

6 Commits

15 changed files with 266 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
package com.inmind.final_class01;
/*
final:被final修饰的内容不能够被改变的
final:被它修饰的内容,不能够被改变
final有4个用法
1.修饰类
2.修饰方法
3.修饰成员变量
4.修饰局部变量
--------------------------------------
final关键字用于修饰类:该类就不能被继承
final与abstract是冲突不能一起使用
被final修饰的类叫“太监类”,最终类,无法继承
作用(目的):不允许修改该类的功能!!
*/
public class Demo01 {
}

View File

@@ -0,0 +1,9 @@
package com.inmind.final_class01;
public final class Fu {
int num = 10;
public void method(){
System.out.println("父类的method方法");
}
}

View File

@@ -0,0 +1,41 @@
package com.inmind.final_local_var03;
import java.util.Arrays;
/*
final关键字用于修饰局部变量
局部变量:
1.基本数据类型:保存的值真正的值,表示该值赋值之后不能被修改的
2.引用数据类型: 保存的值是地址值。引用数据类型地址不变,所指向的内容可以改变
*/
public class Demo03 {
public static void main(String[] args) {
method();
}
public static void method(){
//基本数据类型的局部变量
final int i = 10;
//i = 20;//被final修饰的局部变量不能被修改
System.out.println(i);
System.out.println("=========================");
//引用数据类型的局部变量
/*int[] arr1 = new int[4];
int[] arr2 = new int[]{1,2,3};*/
final int[] arr = {1,2,3};//arr中保存是地址值
System.out.println(Arrays.toString(arr));
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
System.out.println(Arrays.toString(arr));
//类的对象
final Student s = new Student(18, "张三");
s.setName("张三丰");
System.out.println(s.getName());
}
}

View File

@@ -0,0 +1,27 @@
package com.inmind.final_local_var03;
public class Student {
private int age;
private String name;
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

View File

@@ -0,0 +1,17 @@
package com.inmind.final_member_var04;
/*
final关键字用于修饰成员变量
注意被final修饰成员变量必须【手动赋值】
*/
public class Fu {
final int j;//成员变量
//在构造方法中对成员变量赋值
public Fu(int j){//构造方法的作用:创建对象,并给属性赋值
this.j = j;//注意点构造方法中可以给被final修饰未赋值的成员变量进行赋值
}
public void method(){
int i = 10;
}
}

View File

@@ -0,0 +1,13 @@
package com.inmind.final_method02;
public class Demo02 {
public static void main(String[] args) {
//创建一个父类对象
Fu fu = new Fu();
fu.method();
//多态的写法:
Fu f = new Zi();//格式:父类引用指向子类对象
//编译看左边,运行看右边
f.method();
}
}

View File

@@ -0,0 +1,9 @@
package com.inmind.final_method02;
/*
final关键字用于修饰方法:该方法就不能被子类重写
*/
public class Fu {
public final void method(){
System.out.println("父类的method方法");
}
}

View File

@@ -0,0 +1,14 @@
package com.inmind.final_method02;
public class Zi extends Fu{
//ctrl+o
/*@Override
public void method() {
//super.method();//调用父类的成员方法,沿用
System.out.println("子类的method方法,重写了父类的功能");
}*/
public void methodZi(){
}
}

View File

@@ -0,0 +1,19 @@
package com.inmind.limit_05;
/*
接口中定义5种内容常量、抽象方法、默认方法、静态方法、私有方法
选择流程switch case default
*/
public class Class1 {
//设置4种权限的静态变量
private static int num1 = 1;
static int num2 = 2;
protected static int num3 = 3;
public static int num4 = 4;
public static void method(String[] args) {
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
}
}

View File

@@ -0,0 +1,10 @@
package com.inmind.limit_05;
public class Class2 {
public static void main(String[] args) {
// System.out.println(Class1.num1);//同一个包中只有私有内容无法访问
System.out.println(Class1.num2);
System.out.println(Class1.num3);
System.out.println(Class1.num4);
}
}

View File

@@ -0,0 +1,12 @@
package com.inmind.limit_05;
/*
四种权限修饰符:权限修饰符,可以用来修饰类,方法,成员变量
public > protected > (default) > private
在同一个类中 YES YES YES YES
在同一包中 YES YES YES NO
在不同包中(父子类关系) YES YES NO NO
在不同包中(!父子类关系) YES NO NO NO
*/
public class Demo04 {
}

View File

@@ -0,0 +1,13 @@
package com.inmind.limit_05.sub;
import com.inmind.limit_05.Class1;
public class Class3 extends Class1 {
public static void main(String[] args) {
//注意在不同包有父子关系类中只有public protected可以访问
/*System.out.println(Class1.num1);
System.out.println(Class1.num2);*/
System.out.println(Class1.num3);
System.out.println(Class1.num4);
}
}

View File

@@ -0,0 +1,13 @@
package com.inmind.limit_05.sub;
import com.inmind.limit_05.Class1;
public class Class4 {
public static void main(String[] args) {
//注意在不同包没有父子关系类中只有public 可以访问
/*System.out.println(Class1.num1);
System.out.println(Class1.num2);
System.out.println(Class1.num3);*/
System.out.println(Class1.num4);
}
}

View File

@@ -0,0 +1,10 @@
package com.inmind.member_innerclass06;
/*
内部类将一个类A定义在另一个类B里面里面的那个类A就称为内部类B则称为外部类。
分类:
1.成员内部类:(类中方法外)
2.局部内部类:(方法中)
匿名内部类(重点)
*/
public class Demo05 {
}

View File

@@ -0,0 +1,39 @@
package com.inmind.member_innerclass06;
/*
成员内部类的定义(写在成员位置)
public class 外部类名{
int i = 0;
public class 内部类名{
}
}
------------------------------
成员内部类中内容访问的注意事项:
1.内部类是可以直接使用外部类的成员变量
2.外部类要使用内部类的内容,必须通过创建内部类的对象
3.在内部类中不能使用static修饰,跟内部类的生命周期有关(JDK17之前不行)
4.内部类访问外部类同名变量:必须使用外部类名.this.变量名如OuterClass.this.value
*/
public class Member_Outer_Class {
int i = 10;//成员变量
//成员内部类
public class InnerClass{
static int value = 30;
int innerI = 20;
int i = 20;
public void innerMethod(){
System.out.println(value);
System.out.println(i);
System.out.println(Member_Outer_Class.this.i);
System.out.println(innerI);
}
}
public void method(){
InnerClass innerClass = new InnerClass();
InnerClass.value = 50;
innerClass.innerMethod();
}
}