本周学习的主要内容为面向对象编程的入门、构造器、this关键字、封装等的基础语法,抽象类和接口,以及异常和对异常的处理。
封装:将类的属性和实现细节隐藏,仅提供公共访问方法。通过访问修饰符(private、public、protected)实现,private修饰的成员变量只能在本类中访问,通过公共的getter和setter方法获取和修改。
继承:子类通过extends关键字继承父类,可复用父类属性和方法。例如class Student extends Person,Student类可使用Person类的非私有成员。方法重写时,子类方法与父类方法签名相同,访问修饰符不能比父类更严格,重写方法用于实现不同的业务逻辑。
多态:同一对象在不同时刻表现出不同形态。通过方法重写和向上转型实现,如Person p = new Student();,调用p.sayHello()时,实际调用的是Student类重写后的方法。多态提高了代码的可扩展性和维护性。
抽象类:使用 abstract 关键字修饰,包含抽象方法(只有方法声明,无方法体)和普通方法。抽象类不能被实例化,子类继承抽象类必须实现抽象方法,例如 abstract class Animal { public abstract void move(); } , class Dog extends Animal 必须实现 move 方法。
接口:使用 interface 关键字定义,接口中方法默认是 public abstract ,属性默认是 public static final 。一个类可实现多个接口,如 class Bird implements Flyable, Animal ,接口用于实现多继承,提高代码的灵活性和可维护性。
异常体系: Throwable 是所有异常和错误的超类,分为 Error (系统错误,如 OutOfMemoryError ,一般无法处理)和 Exception (可处理的异常)。 Exception 又分为 Checked Exception (编译时异常,如 IOException ,必须显式处理)和 Unchecked Exception (运行时异常,如 NullPointerException ,可不显式处理,但会导致程序崩溃)。
异常处理机制:使用 try - catch - finally 块处理异常, try 块中放置可能出现异常的代码, catch 块捕获并处理异常, finally 块中的代码无论是否发生异常都会执行,用于资源释放等操作。还可使用 throw 关键字手动抛出异常, throws 关键字声明方法可能抛出的异常。