this、static、main方法、静态代码块、final关键字、Runtime类、Cloneable类、类成员的访问控制权限、异常体系
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个要点(同包可访问,其他包的子类可访问)即可推理其他控制符权限: