this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象;
static关键字:
修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的该属性的值都发生了变化;
main()方法:
静态代码块:
final关键字:
Runtime类:
public class RuntimeDemo {
//java进程与子进程交互
public static void main(String[] args) {
Runtime run = Runtime.getRuntime();
try {
Process process = run.exec("notepad.exe");
} catch (IOException e) {
e.printStackTrace();
}
}
}
可以通过Runtime类为开发者执行操作系统的可执行程序;
Cloneable类,对象的克隆:
public class Person implements Cloneable {
//对象可以被克隆,要实现Cloneable接口,并改写clone,确保其可见性;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) { this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();//调用父类protected方法;
}
//修饰符设为public,其他包可以调用clone;
//protected修饰可以被同包对象调用,或者非同胞的子类(接口实现类)调用;
//事实上是拓展了Object的clone的方法访问权限;
}
以上为对象的浅克隆,对象的深克隆可以通过序列化的方式实现。
类成员的访问控制权限:
只要记住protected的2个要点(同包可访问,其他包的子类可访问)即可推理其他控制符权限: