面向对象核心知识点

1.面向过程与面向对象
      面向过程,适合简单程序.一步一步去实现,以函数进行组织
       面向对象,适合复杂程序设计,先宏观分类,类与类之间建立联系,以类进行组织
                        代码复用,代码扩展
    2.类和对象
        类是一类事物属性和行为的抽象(概念,模版)
    对象十一类为模版在内存中创建出来的一个实例(对象,具体可以使用的)
    成员变量(静态成员变量    非静态成员变量)
    成员方法(静态成员方法    非静态成员方法)
    代码块(实例代码块   静态代码块)
    构造方法    特殊   用来为成员变量初始化
        
        对象与引用
            引用类型变量
                 Car  car=new Car();
        Car  car1=car;
        对象在堆内存中存储
               car拿到不是对象本身,而是对象的内存地址
  3.this关键字表示当前正在调用的对象
    4.static关键字
           ​    static表示静态,可以修饰成员变量,成员方法,代码块,内部类static修饰的变量就是静态变量(类变量,与类一样,只有一份)
​         当所有类的对象的某个属性值相同时,可以把它定义为静态的
    5.包   管理类,避免类重名,按功能进行组织管理,访问权限控制
          
    6.访问权限修饰符
            public    :公共权限,在系统中哪里都可以访问
​                       可以修饰类(包含内部类),方法(构造方法,成员方法),成员变量
​           protected:   受保护权限,在同包类,本类,不同子类可以访问
​                        可以修饰内部类,方法(构造方法,成员方法),成员变量
​             默认     :  默认权限,在本类,同包类访问
​                           可以修饰类(包含内部类),方法(构造方法,成员方法),成员变量
​           private  :   私有权限,只能在本类中使用
​                        可以修饰内部类,方法(构造方法,成员方法),成员变量
    7.面向对象3大特征--封装
                 成员变量与局部变量
             位置:
                成员变量:在类中定义          局部变量:在方法中定义或者方法的参数
                权限修饰不同
                    成员变量:可以使用权限修饰符(static)
                    局部变量:不可以使用权限修饰符
                初始化不同:
                    成员变量: 非静态----在创建对象后,由构造方法初始化
                              静态----类加载时初始化
                    局部变量:声明后,使用前必须自己进行初始化
                生命周期不同:(什么时候创建,什么时候销毁)
                    成员变量:     创建                   销毁
                               非静态---创建对象       对象被垃圾回收
                               静态-----类加载时        类被卸载
                    局部变量:      创建                   销毁
                                 当方法被调用           当方法执行结束
                在内存中位置不同:
                     成员变量:   非静态----与对象在堆空间存储
                                静态----与类信息在方法区中存储
                     局部变量:    与方法一样在栈空间中存储
      使用访问权限对类成员进行隐藏
         成员变量私有化
         构造方法私有化
    8.继承
      特点:
           如果一个类没有使用extends关键字显示的继承其他类,则默认继承object类
​           一个类不能继承多个类,只能继承一个类,但是可以多层继承
      优点:
           减少代码冗余,提高代码复用性
​           更有利于功能的扩展(可以在类中维护各自的属性)
​           类与类产生了is-a的关系,为多态使用提供前提
      方法重写
                      规则:
           方法名相同,参数相同,返回值相同
           子类重写的方法权限必须等于或大于父类方法的权限
           子类重写方法结构应与父类方法结构一致
                      注意:
           构造方法,静态方法,成员变量不能重写       
      super
           在子类中使用super关键字,访问父类定义的那部分成员.
           super.成员变量   super.成员方法(常用)
      继承中构造方法调用
                   默认在子类构造方法中会默认调用父类的构造方法 每当创建子类时,会调用子类构造方法,在子类构造方法中调用父类的构造方法
         而且在子类构造方法第一行就会调用父类构造方法,先确保父类中的成员初始化
         子类构造方法中默认会调用父类无参构造方法
         如果需要显示的使用super调用,必须放在构造方法的第一行
         还可以调用父类中指定的构造方法
    9.抽象类和抽象方法
        抽象类: 被abstract关键字修饰的类,里面可能包含抽象方法
       当类中没有足够的信息(抽象方法)来描述具体的对象时
        抽象类除了不能创建对象外,类的其他功能都正常(成员变量,成员方法,构造方法)抽象类位于类结构的上层
        静态方法不能被修饰为抽象方法
        一个类可以有多个抽象方法
            
    10.多态
      类与类继承关系
      父类类型表示子类对象
      优点:
           提高代码的扩展性
      缺点:
           为了实现多态性, 将子类类型向上转为了父类类型,但是一旦类型上升为父类类型就调用不到子类中特有的方法.
    11.接口
       功能:  是一种更为彻底的抽象,主要用来定义功能
             接口不能被创建对象
       接口和抽象类区别
                       接口与抽象类都不能创建对象
              (1)接口主要用来实现功能,表示这个对象能做什么,有什么功能
          抽象类主要用来抽象类型,表示这个对象是什么
              (2)接口只能有方法的声明,没有方法的实现
                    抽象类有方法的声明,也可以有方法的实现
              (3)接口可以继承其他多个接口,
          类只能直接继承一个类,间接多层继承多个类
              (4)继承接口类必须实现接口中的所有声明的方法,
                    抽象类的子类可以部分实现父类的抽象方法

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值