Java 接⼝设计

通⽤设计 - 可访问性

四种修饰符

  • public
  • (default)
  • protected:不能用于修饰最外层 class
  • private:不能用于修饰最外层 class

通⽤设计 - 可继承性

  • final:final 不具备继承性,仅⽤于实现类,不能与 abstract 关键字同时修饰类

    • 举例:java.lang.String
  • ⾮ final:最常⻅/默认的设计⼿段,可继承性依赖于可访问性

    • 举例:java.io.FileSystem

从 Java 1.5 开始对象属性可以通过反射修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 常量化是原生类型支持,赋值方式
int a = 1; // 常量
String value = "Hello"; // 常量(语法特性) = 对象类型常量化
// C 写法 char* var = malloc(length(char) * 5);
// var ="Hello";

// 面向对象规则:一切对象需要 new
// 合法的写法(会被视作异类)
String value2 = new String("Hello");

System.out.println("value : "+value);

System.out.println("value2 : "+value);

// 从 Java 1.5 开始对象属性可以通过反射修改
char[] chars = "World".toCharArray();

// 获取 String 类中的 value 字段
Field valueFiled = String.class.getDeclaredField("value");
// 设置 private 字段可以被修改
valueFiled.setAccessible(true);
// 把 chars 设置到 value 字段的内容
valueFiled.set(value2, chars);

System.out.println("value : "+value);

System.out.println("value2 : "+value2);