Java基础-面向对象-简单总结(2)

面向对象:

    Java是一种面向对象的语言,优点:1,系统结构稳定。2.子系统相对独立。3.软件可重用性,可维护性和可拓展性强。

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

    对象:描述客观事物的实体。

    类:具有相同属性对象的集合。类中定义了对象将会有的属性(特征)和方法(行为)。

参数:

    形参:创建方法时定义的参数,叫形式参数。

    实参:调用方法时传入的参数,叫实际参数。

方法重载:

    在一个类中定义多个重名的方法,但每个方法具有不同的参数类型或参数个数。构造方法也可以重载(同类.同名.不同参)

    优点:根据参数的不同,采用不同的实现方法,简化了类调用方法的代码。

作用域:

    全局变量(成员变量):在类中定义,全局调用,系统默认赋初始值。

    局部变量:在方法中定义,方法外不可调用,无初始值,赋值后使用。

构造方法:

    每个类有一个默认无参构造方法,手工添加有参构造方法后,默认无参构造方法被覆盖,如果想使用无参构造,必须将无参构造写到类中。

封装:

    将类的信息隐藏在类内部,不允许外部程序直接访问,可以通过该类提供的方法实现对隐藏信息的访问和操作。

    封装两大原则:1.把尽可能多的东西藏起来,对外提供便捷的接口。2.把所有的属性藏起来。

    实现封装:1.修改属性的可见性:private 数据类型 变量名。

                    2.创建公有的get/set方法:用于属性的读写。

                    3.在get/set方法中加入属性流控制语句:对属性值的合理性进行判断。

    封装的优点:1.使用者正确使用系统,防止错误修改属性。

                       2.有助于系统间的松耦合,提高系统独立性。

                       3.提高软件可重用性。

                       4.降低了构建大型系统的风险。

包:

    package,Java源文件中第一条非注释语句,一个源文件只能有一个包声明语句。

    命名规范:小写字母组成,不能以圆点开头或结尾

类的访问修饰符:

    修饰符\作用域    同一包中    非同一包中

    public                可用            可用

    默认修饰符         可用            不可用 

类成员的访问修饰符:

    修饰符\作用域    同一类中    同一包中    子类中    其他

    private                可用         不可用       不可用    不可用

    默认修饰符          可用           可用         不可用    不可用

    protected            可用          可用           可用      不可用

    public                  可用          可用          可用        可用

static:

    常用场景:定义使用final关键字修饰的常量,例:static final int PERSON_LIVE=1;

    用static修饰的属性称为静态变量或者类变量,未使用static修饰的属性成为实例变量。

    用static修饰的方法称为静态方法或者类方法,未使用static修饰的方法成为实例方法,方法中不能使用this和super。

    static修饰的属性和方法使用类型打点可直接调用“类名.”。

继承:

    将子类共有的属性提取到父类中。

    使用 extends 建立继承关系。单根继承:一个类只能有一个直接父类,但可以有多个间接父类。

    子类通过super调用父类属性,方法,构造方法。

实例化子类对象:

    子类在实例化时,会先执行父类的构造方法,然后执行子类的构造方法。

    父类引用可指向子类对象。例:Pet pet=new Dog();Dog为Pet子类。

    Object类是所有类的父类。

方法重写:

    重写方法和被重写方法必须具有相同的方法名。

    重写方法和被重写方法必须具有相同的参数列表。

    重写方法的返回值类型必须和被重写方法的返回值类型相同,或是其子类。

    重写方法不能缩小被重写方法的访问权限。

    构造方法不能被重写。

    (同名,同参,不同类,同返回值或是其子类,访问权限不能严于父类)

多态:

    方法重写是实现多态的基础。

    向上转型:子类转父类直接转换。

    向下转型:父类转子类需要进行强制类型转换。

    instanceof:进行类型的判断。判断一个对象是否属于一个类。

    多态的优势:可替换性,可扩充性,接口性,灵活性,简化性。

    多态的应用:使用父类作为方法的形参,作为方法的返回值。

抽象类:abstract

    抽象类不能被实例化。

    子类如果不是抽象类,就必须重写父抽象类中的所有抽象方法。

    abstract不能和final一起使用。

    private不能修饰抽象方法。

    没有抽象构造方法,也没有抽象静态方法。

    抽象类可以没有抽象方法,但抽象方法必须定义在抽象类中。

    抽象类中可以有非抽象的构造方法,供子类调用。

    定义抽象类:public abstract class 类名{ }

    定义抽象方法:访问修饰符 abstract 返回值类型 方法名(参数列表);

接口:interface

    接口可以说是一种能力,所以一般讲功能放到接口中。

    public interface 接口名,实现接口:implements

    接口中全是公共的抽象方法(public abstract),变量为全局静态常量(public static final)。

    接口不可被实例化。一个接口不能实现另一个接口,但可以继承多个接口。

    实现类必须实现接口的所有方法。

    实现类可实现多个接口。

    面向接口编程:关心实现类有何能力,不关心实现细节。关心面向接口的约定而不考虑接口的具体实现。

抽象类和接口:

    相同点:1.代表系统的抽象层。

                 2.都不能被实例化。

                 3.都能包含抽象方法。

    不同点:1.抽象类中可以有非抽象方法,接口中只能有抽象方法。

                 2.一个类只能有一个直接父类,但可以实现多个接口,中间用逗号隔开。

                 3.已存在的继承树,可以方便的抽取接口,但是抽取抽象类不容易。

    使用原则:1.接口做系统与外界交互的窗口。

                    2.接口一旦制定,就不允许随便更改。

                    3.抽象类可完成部分功能的实现和部分功能的拓展。

异常:

    关键字:try,catch,finally,throw,throws。

    Java异常体系结构:所有异常类型都是Throwable类,派生两个子类:Error类(仅靠程序本身无法恢复的严重错误)和Exception类(由Java应用程序抛出和处理的非严重错误)。

    常见的异常类:

    Exception:异常层次的根类。

    ArithmeticException:算数错误异常。

    ArrayIndexOutOfBoundsException:数组下标越界。

    NullPointerException:空指针异常,尝试访问未创建对象。

    ClassNotFoundException:不能加载所需要的类。

    InputMismatchException:想得到的数据类型和实际输入的数据类型不匹配。

    IllegalArgumentException:方法接收到非法参数。

    ClassCastException:对象强制类型转换出错。

    NumberFormatException:数字格式转换异常,如把“abc”转换成数字。


    try-catch-finally结构中try必须存在,其他两者必须存在一个。

    System.exit(1);强制退出Java虚拟机。

    多重catch处理异常时catch语句块的排序必须是从子类到父类。

    throws:用于声明该方法内抛出了异常,可继续声明,最后由Java虚拟机处理。位于方法参数列表后。可声明多个异常。

    throw:用于程序员自行产生并抛出异常。位于方法内部。抛出一个异常对象且只能是一个。

自定义异常:

    public class 自定义异常名 extends Exception{ }


猜你喜欢

转载自blog.csdn.net/weixin_42011554/article/details/79986796