Java基础-03

Java基础-03

面向对象基础

面向过程和面向对象的区别

  • 面向过程:按照步骤做,第一步做什么,第二步做什么,适合处理一些简单的问题。
  • 面向对象:对于复杂的事物,从宏观上把握,从整体上分析。对事物进行分类。适合处理复杂的事物。

面向对象的本质:以类的方式组织代码,以对象的形式封装数据。

首先先理解抽象的含义。

所谓抽象:将事物的相同特性抽离出来,组织为类的形式。

面向对象的3大特征:封装、继承、多态。

  • 封装:将代码中的相关数据封闭起来,对外只提供接口。
  • 继承:子类继承父类。得到父类的东西。
  • 多态:

类和对象的区别?

类是一个抽象的数据类型,是对某一个具体事物的描述,而对象是类的实例化,表示某一个具体的类。

关于继承

Java中,继承使用 extents标识,子类继承父类时,可以继承其非私有的属性和方法。私有属性或私有方法无法继承。

所有的类全部继承于Object类。

Java中,只存在单继承,不存在一个类继承多个类。

区别this关键字和super关键字。

this表示当前类,super表示父类。

重写和重载的区别

重写是指在继承的时候,子类重写了父类的方法。父类的功能子类可能不需要,或者不一定满足。

重载是指方法名相同,方法类型或者返回类型不同。

关于多态的理解

一个对象的实际类型是确定的,但是可以指向不同的引用类型。

多态存在的条件:存在继承关系,子类重写了父类的方法,父类引用指向子类对象。

多态是方法的多态,属性没有多态。

Student s1 = new Student();
// 父类的引用指向子类对象。
Person p1 = new Student();
// 子类重写了父类的方法
s1.say();
// 执行的是重写过的子类方法
p1.say();
// 子类特有的方法
s1.study();

不是所有的方法都可以重写。

  • static修饰的静态方法:属于类自身的,不可以被重写。
  • private私有的方法,无法继承,因此也不能被重写。
  • final修饰的方法,不能被重写。

异常

Java中,将异常当作对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类。

异常类分为两大类:错误Error、异常Exception

int a = 2;
int b = 0;

try {
    // 监控区域
    System.out.println(a/b);
}catch (ArithmeticException e){
    // catch捕获异常,括号内为想要捕获的异常类型
    System.out.println("程序出现异常!除数不能为0!!");
}finally {
    // 处理完之后需要的操作
    // 比如一些善后工作;关闭IO等
    System.out.println("finally");
}

还可以主动抛出异常:

public static void main(String[] args) {
    new Demo02().test(1,0);
}

public void test(int a, int b){
    if(b == 0){
        throw new ArithmeticException();
    }
}

如果自身不能处理该异常,可以往外抛出。

public static void main(String[] args) {
    try {
        new Demo03().test(1,0);
    } catch (ArithmeticException e) {
        e.printStackTrace();
    } finally {
        System.out.println("finally!!!");
    }
}

public void test(int a, int b) throws ArithmeticException{
    
}
posted @ 2022-02-22 21:02  locks  阅读(39)  评论(0)    收藏  举报