JavaAoop小节知识点(2)

面向对象编程

封装:

类  封装了对象的属性和方法
   方法  封装方法的实现细节

一.   封装属性:
   
   1 属性私有化
   2 给属性提供公共的方法  :赋值方法(setter方法)与取值方法(getter)方法
               赋值方法   :  无返回值,但带有参数(类型与属性的类型一致)方法
                       方法名:  set属性名(参数){}  ,把属性名的首字母改为大写
                       public void setSex(String sex){}
               取值方法 :  有返回值(与属性类型一致) 无参的方法
                       方法名: get属性名(){}  ,把属性名的首字母改为大写
                       public String getSex(){ return sex}
           注意  :如果属性的类型为boolean则get方法改为:is属性名(); 把属性名的首字母改为大写
   3 在set方法中添加控制语句
   
 二.  使用封装的好处:
   
   1 保证数据的安全性

   2 代码可重用性

   3 方便修改

访问修饰符:

 一 访问修饰符:
        public  :公共 的
        protected : 受保护的
        默认的:  (不写任何修饰符)
        private  :私有的
二 修饰类:(不指内部类)
        public ,默认的
三  修饰变量(不包括局部变量),修饰方法
        public ,protected,默认的,private

 继承{

方法重写:

一 方法重写:override  ==>成员方法
        当父类中的方法不能满足子类的需求时,需要在子类中重写定义此方法 ==》 方法重写
        1 在继承关系的子类的重写父类的方法
        2 方法名相同,参数相同(类型,个数,顺序相同)
            如果仅方法名相同,而参数不同则不为方法重写
            而在子类中与从父类中继承下来的的同名的方法构造方法重载
        3 访问修饰符子类大于等于父类方法的访问修饰符
        4 子类的返回值类型与父类相同。    
            返回值类型为基本类型时,必须相同
            返回值类型为引用类型时,子类的返回值类型范围小于等于父类的返回值类型
        5 子类方法中声明的异常不能宽泛于父类的方法声明的异常
            
        6 为了保证子类中的方法为重写,则建议在方法上面加:@Override
二  哪些方法不能重写:
        1 构造方法
        2 私有方法
        3 静态方法
        4 final修饰的方法
        5 成员变量也没有重写(父类的引用在引用子类对象时,不能访问子类的任何属性)

注意:  子类重写父类的方法后,调用方法为子类重写后的方法

super关键词:

一 :super是什么?
  
  super 存在在子类对象 中,访问父类的属性和方法。

二  、super在哪里使用  :在子类中
        1 在子类的成员方法中
            访问父类的成员变量和成员方法
        2 在子类的构造方法中
            访问父类的成员变量和成员方法
            访问父类的构造方法
        
三、super可以访问哪些内容 
         1 在子类的成员方法中
             访问父类的成员变量与成员方法
               super.成员变量名  :主要区分与子类中同名的属性
               super.成员方法();主要区分与子类中同名的成员方法
         2 在子类的构造方法中:
             访问父类的成员变量与成员方法
             访问父类的构造方法:  super(参数) .此行代码必须写在子类构造方法的第一行。
 
             子类所有构造方法都必须直接或间接访问父类的构造方法。
 
             在子类的构造方法中,不能同时出现:this()与super();

注意: super关键词指定当前子类的直接父类

}

类型转换{

向上转型:

1 向上类型转换
        父类类型的引用   = 子类类型的对象 ; 
        语法:
              父类类名   对象名 = new  子类构造方法(参数);        

         父类类型的引用可以访问哪些内容?
                 1 访问父类中定义的属性和成员方法
                 2 如果子类重写了父类的方法,则执行子类重写后的方法。
                 3 父类的引用不能访问子类中任何属性和特有的方法。
2 示例代码:

向下转型:

向下类型转换 
       把父类引用转换成子类类型
   语法:
           (子类类型)父类类型引用;
   注意:  向下类型转换是不安全的,容易引发异常:java.lang.ClassCastException; 

 

向下转换时使用instanceof判断一下。如果返回为true 则可以转换,如果为false则不可以转换
           语法 :  引用名  instanceof 类或接口

 instanceof:

instanceof:
       语法 :  引用名  instanceof 类或接口
   
  编译期 :  引用名的类型必须与后面的类之间有继承关系,否则出现编译错误。    
  运行期:  如果后面类可以引用对象的,则返回true,否则返回false

一个对象哪些类型可以引用?
      1 父类(包含所有级别的父类)类型的引用
      2 本身 类型的引用
      3 兄弟类型及子类类型不能引用
      4 所实现的接口类型的引用,或其父接口类型的引用,或父类实现的接口的引用

      5 所实现的接口类型子接口类型的引用不能引用,与实现接口同级的接口也不能引用

 多态:

1 多态
     同一个父类类型的引用,引用不同子类对象时,调用同一个方法得到不同的结果。
      表现形式:
        父类类型 引用名 = new 子类类型();
    
2 实现多态的前提:
        1) 类与类之间有继承关系
        2) 父类类型的引用 引用子类类型的对象
        3) 在子类中有方法重写。

3 使用多态的好处:"易扩展“,"易维护",“代码的复用"
        让程序满足: 开闭原则:
          开:功能的扩展开放  :继承同时,进行方法的重写
          闭合: 对现有类的修改是闭合的 :多态

 

4 多态的表现形式:
1) 父类类型的形参,子类类型对象的实参
2) 返回值类型为父类类型,return 子类类型对象
3) 数组:父类类型的,每个元素引用是子类类型的对象

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

封装:是为了能得到类和方法,父类。
    面向对象设计原则:要将变化和不变化的分开封装。
        
 继承:是为能在不修改原文件的时候扩展功能 (方法重写)。
    面向对象设计原则:开放关闭原则:对扩展开放,对修改关闭
        对修改关闭:当有新的需求时,不能打开源文件对源代码进行修改。
        对扩展开放:当有新的需求时,应该创建一个新的子类,在子类中进行对父类的修改。
 多态:在不修改源代码的情况下,让以前的代码可以直接使用新的子类。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值