Compare commits
6 Commits
cdad66331c
...
49c8f29d83
| Author | SHA1 | Date | |
|---|---|---|---|
| 49c8f29d83 | |||
| 2ff6748e56 | |||
| c4210a98bd | |||
| 507b4ddfd7 | |||
| 55e81651f1 | |||
| bdf2351a89 |
20
day11/src/com/inmind/final_class01/Demo01.java
Normal file
20
day11/src/com/inmind/final_class01/Demo01.java
Normal 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 {
|
||||
}
|
||||
9
day11/src/com/inmind/final_class01/Fu.java
Normal file
9
day11/src/com/inmind/final_class01/Fu.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.inmind.final_class01;
|
||||
|
||||
public final class Fu {
|
||||
int num = 10;
|
||||
|
||||
public void method(){
|
||||
System.out.println("父类的method方法");
|
||||
}
|
||||
}
|
||||
41
day11/src/com/inmind/final_local_var03/Demo03.java
Normal file
41
day11/src/com/inmind/final_local_var03/Demo03.java
Normal 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());
|
||||
|
||||
}
|
||||
}
|
||||
27
day11/src/com/inmind/final_local_var03/Student.java
Normal file
27
day11/src/com/inmind/final_local_var03/Student.java
Normal 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;
|
||||
}
|
||||
}
|
||||
17
day11/src/com/inmind/final_member_var04/Fu.java
Normal file
17
day11/src/com/inmind/final_member_var04/Fu.java
Normal 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;
|
||||
}
|
||||
}
|
||||
13
day11/src/com/inmind/final_method02/Demo02.java
Normal file
13
day11/src/com/inmind/final_method02/Demo02.java
Normal 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();
|
||||
}
|
||||
}
|
||||
9
day11/src/com/inmind/final_method02/Fu.java
Normal file
9
day11/src/com/inmind/final_method02/Fu.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.inmind.final_method02;
|
||||
/*
|
||||
final关键字用于修饰方法:该方法就不能被子类重写
|
||||
*/
|
||||
public class Fu {
|
||||
public final void method(){
|
||||
System.out.println("父类的method方法");
|
||||
}
|
||||
}
|
||||
14
day11/src/com/inmind/final_method02/Zi.java
Normal file
14
day11/src/com/inmind/final_method02/Zi.java
Normal 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(){
|
||||
}
|
||||
}
|
||||
19
day11/src/com/inmind/limit_05/Class1.java
Normal file
19
day11/src/com/inmind/limit_05/Class1.java
Normal 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);
|
||||
}
|
||||
}
|
||||
10
day11/src/com/inmind/limit_05/Class2.java
Normal file
10
day11/src/com/inmind/limit_05/Class2.java
Normal 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);
|
||||
}
|
||||
}
|
||||
12
day11/src/com/inmind/limit_05/Demo04.java
Normal file
12
day11/src/com/inmind/limit_05/Demo04.java
Normal 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 {
|
||||
|
||||
}
|
||||
13
day11/src/com/inmind/limit_05/sub/Class3.java
Normal file
13
day11/src/com/inmind/limit_05/sub/Class3.java
Normal 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);
|
||||
}
|
||||
}
|
||||
13
day11/src/com/inmind/limit_05/sub/Class4.java
Normal file
13
day11/src/com/inmind/limit_05/sub/Class4.java
Normal 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);
|
||||
}
|
||||
}
|
||||
10
day11/src/com/inmind/member_innerclass06/Demo05.java
Normal file
10
day11/src/com/inmind/member_innerclass06/Demo05.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.inmind.member_innerclass06;
|
||||
/*
|
||||
内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
|
||||
分类:
|
||||
1.成员内部类:(类中方法外)
|
||||
2.局部内部类:(方法中)
|
||||
匿名内部类(重点)
|
||||
*/
|
||||
public class Demo05 {
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user