面向对象总结

一. 什么是面对对象:

        面向对象编程(OOP)就是一种设计思想,相对的存在面向过程编程:

                1. 面向对象:在程序设计中把每一部分尽量都当成一个对象来考虑,以实现代码的可拓展性、可维护性、可重用性。

                2. 面向过程:更多的是对过程的实现,需要一步步实现。

二. 类与对象:

        类:对同一类具有相同特征的事物的抽象概念。

               创建类:权限修饰符  class  类名 {};

        对象:类的具体化实例,万物皆对象

               创建对象:类名  引用  = new 类名( );

三.类的成员:

        1.成员变量:属性

        2.方法:行为

                语法:权限修饰符  返回值  方法名(形参列表){}

                返回值:有返回值的方法中要有 return 返回值;

                形参列表:数据类型  变量名

        3.构造器:

                语法:权限修饰符 类名(形参列表){}

                ①. 有参构造:有形参。

                ②. 无参构造:当没有任何构造器存在时,默认为无参构造;当存在构造器时,默认存在的无参构造会消失。

                作用:①.创建对象

                           ②.初始化对象的属性

        4.代码块

        5.内部类

四. 面向对象的三大特征:

        封装、继承、多态

                1. 封装:该隐藏的隐藏,该暴露的暴露,就是封装的思想。

                        什么是封装 —— 隐藏属性,隐藏一个类或方法的实现细节(私有化),仅对外提供简单的接口get和set方法。

                        特点 —— 高内聚,低耦合。内部细节自己完成,不允许外部干涉(高内聚);仅对外暴露少量的方法用于使用(低耦合)。

                2. 继承:子类继承父类的所有属性和方法(私有化除外)。

                        特点 —— 继承只能是单继承,父类只能有一个。

                                        所有类都直接或者简介继承自 Objec。

                                        子类会拓展,比父类更加强大。

                        语法 —— 通过 extends 继承

public class A extends B{
//  A  子类
//  B  父类
}

                3. 多态:同一事物或者对象,不同的形态,就是多态。

                        语法 —— 父类的引用指向子类的对象. (前提是有继承关系)

//父类 A ;子类 B、C
    A a1 = new B();
    A A2 = new C();
//B、C 可以修改,使当前对象换一个类。

                        虚拟方法的调用 —— 编译期看等号左边,运行期看右边。

                                在编译期只能调用父类的方法;在运行期执行的是子类重写之后的方法。

                        向上与向下转型 —— 

                                ①.向上:父类引用指向子类的对象,只有这样引用才既能调用父类的方法,又能调用子类的方法。

                                ②.向下:子类的对象指向父类的引用,缺点是编译期不能检测出来错误,不能保证完全正确。

                        优点 —— 可复用性、可扩充性、可维护性。

                        使用前提 —— ①.有继承关系。

                                                ②.有方法的重写。

                                                ③.向上转型。

五. 关键词:

    static、final、abstract

                1、static —— 静态的,使用static修饰的属性和方法,会提升一个层级,随着类的加载而加载。(类的加载只有一次)

                       修饰变量(静态变量):【类名.变量名】

                               · 所有对象,共享同一个静态属性。

                               · 可以直接使用【类名.属性】的方式调用。

                       非静态变量

                               · 当创建一个个实例后,每个实例都有一套独立的非静态属性。

                       修饰方法(静态方法):【类名.方法名】

                               · 所有对象,共享同一个静态方法。

                               · 可以直接使用【类名.方法名】的方式调用。

                               · 静态方法中不能使用this、super。

                               · 静态方法只能调用 静态的方法和属性。

                       非静态方法

                               · 当创建一个个实例后,每个实例都有一套独立的非静态方法。

               2、final —— 最终的,可以用来修饰变量、类、方法。

                        · 修饰变量,这个变量不可以被修改,会变成常量,必须赋值。

                                赋值位置:①.显式初始化

                                                  ②.代码块

                                                  ③.构造方法中赋值(如果构造方法有多个,每一个构造方法中都要对常量进行赋值)

                        · 修饰类,这个类不能被继承。

                        · 修饰方法,方法不能被重写。

                3、abstract —— 抽象的,可以用来修饰类和方法。

                        · 修饰类(抽象类),不能被实例化,只能被继承,抽象类不一定有抽象方法

                        · 修饰方法(抽象方法),在子类中必须被重写,否则要让子类变成抽象类,有抽象方法必须是抽象类,抽象方法没有方法体

六. 接口:

        接口的本质是契约、标准、规范。

        类是单继承,接口是多实现。

        继承是一个“是不是”的关系,而接口是一个“能不能”的关系。

                 语法 —— 全局常量public static final 修饰的变量

                                 抽象方法public abstract 修饰的方法

                 1、接口中不能定义构造器,也就是接口不能被实例化。

                 2、java中,接口是用来被类实现(implements)的。

                 3、如果一个类想要实现一个接口,那么此类必须重写接口中的所有抽象方法,否则此类要变成抽象类。

                 4、一个类可以实现(implements)多个接口(弥补了单继承的局限性)

                 5、接口的使用,就是多态的一种体现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值