Methods and Encapsulation
此章节是关于Java中方法的使用以及封装的应用。
1. Designing Methods
这是创建一个方法的各个部分, 有些是必要,有些是选择性的。
- Access Modifier
Java中,方法的Access Modifier有4种:- public: 该方法可以被任何Class调用
- Default (Package Private) Access : 无任何Access Modifier, 该方法只能被同一Package下的Class调用
- protected:该方法只能被同一Package下的class或者 子Class 调用。
- private: 该方法只能在同一Class里被调用。
- Optional Specificer
以下的Specificer 可以根据需要选择性使用, 使用时可以不用,也可以同时用多个,而且无先后顺序。- static: 用于 Class-level 的方法
- abstract: 用于定义抽象方法(无 method body)
- final: 用于 当此方法不想被子类 override时
- synchronized: 用于并发时,可以保证线程安全
- native: 用于 与其它语言,例如C++ 交互时
- strictfp: 用于浮点计算时
- Return Type
Return Type,返回类型,是Java方法执行完成,返回的数据类型。 在方法定义是就要指明。如果无须返回,则只用 void 关键词。 另外,定义返回类型,需要与 Method body 中返回的数据的类型保持一致,否则会报编译错误。public void walk1() { } public void walk2() { return; } public String walk3() { return ""; } public String walk4() { } // DOES NOT COMPILE, method body中缺少 return。 public walk5() { } // DOES NOT COMPILE, 缺少返回类型 String walk6(int a) { if (a == 4) return ""; } // DOES NOT COMPILE, 若a不为4,则不会return
- Method Name
方法名与变量名遵守一样的规则:- 只能包含 字母,数字,$符号 或 _ 符号
- 第一个字符不能为数字
- Java 关键词不能用于命名
- 一般,首字母需小写。
- Parameter List
方法的传参, 需要几个传几个,用逗号相隔,这里不做过多解释。 - Optional Exception List
方法后可用 throws 添加 会抛出的异常,根据需要,有几个加几个,逗号相隔,也可以不添加。 - Method Body
方法声明后 需添加 { }, 并在 { } 里写 Method Body
2. Working with Varargs
Varargs 是另一种形式的Array,通常,Varargs 作为参数必须放在最后一个,这也表明每个方法有且最多只能有一个Varargs.
public void walk1(int... nums) { }
public void walk2(int start, int... nums) { }
public void walk3(int... nums, int start) { } // DOES NOT COMPILE, 存在varargs不在参数的最后一个
public void walk4(int... start, int... nums) { } // DOES NOT COMPILE,存在varargs不在参数的最后一个
当使用 varargs时,我们有几种选择:
- 可以传入 Array
- 可以传入 多个数据, Java 会自动创建Array
- 可以不传入数据, varargs 会被忽略。但是不能传入null!
15: publi