Java面向对象(封装,继承,多态)

一、方法的定义(函数,过程)

  • 特点

    1 方法都是可以被重复调用的

    2 作用: 封装一段特定的业务逻辑功能

    3 建议:方法要尽可能独立,一个方法只做一件事

    4 优点:减少代码的重复,有利于代码的维护

    只要是一个独立的业务功能,就可以封装到一个方法中

  • 语法

    修饰词 返回值类型 方法名(参数列表){

            方法体;//完成一段特定的业务

    }

    • 修饰词

      public:表示访问权限,表示公共的,公用的

      static:表示为静态的内容,被这个词语修饰的方法只能在相同的静态方法中调用

      protected:受保护的,本类,派生类,同包类- - 应用率低

      默认的:什么 也不写,本类、同包

    • 放回值类型

      当调用方法之后,方法会不会反馈一个值给调用方继续使用

      void:表示没有返回值

      若没有返回值,返回的这个值是什么类型的,则返回值类型就写什么类型

      注意:当后面需要使用到这个返回值时,就需要返回值,否则可以不用返回值(void)

    • 方法名:当前方法的一个称呼(方法名在特定的条件下允许重名)

    • 参数列表

      可以有参数,也可以无参数,视情况而定

      有参数的方法,更加灵活

方法的调用 :

1 若是在同一个类中调用方法,则可以直接使用方法名调用,若不是在同一个类中调用,则需要通过类名.方法名调用(静态)

2 调用有参数的方法时,必须进行传参,并且传入的参数要和方法中的形参的数据类型和个数相匹配

3 当调用有返回值的方法时,调用之后,这个值次序要被调用

1、方法的重载(overload): 方便用户的调用

        发生在同一个类中,方法名相同,参数列表不同(类型不同,个数不同,位置不同)

        编译器在编译时会根据方法的签名自动绑定方法( 重载与返回值类型无关,与参数名称无关,和参数类型有关)

public class t1 {
    public void SayHi(){
        System.out.println("hi");
    }
    public void SayHi(String name){
        System.out.println(name +"你好");
    }
    public void SayHi(String name,int age){
        System.out.println(name +"你好,我今年" +age +"岁了");
    }
}

2、构造方法 - - 给成员变量赋初值

    public class SeaObject{
        int width;
        int heigh;
    public SeaObject(int width,int heigh){//构造方法与类同名,参数可变
        this.width = width;
        this.heigh = heigh;
    }
  }

构造方法又叫:构造函数、构造器、构建器

  • 作用:给成员变量赋初始值

  • 语法:与类同名,没有返回值类型

  • 调用:在创建(new)对象时被自动调用

  • 若自己不写构造方法,则编译器默认提供一个无参的构造方法,若自己写了构造方法,则不默认提供

  • 构造方法也可以重载

  • this (指向当前对象)

    1、指代当前对象,哪个对象调用方法它指的就是哪个对象

    2、只能用在方法中,在方法中访问成员变量之前默认有个this.

    this的用法
    • this.成员变量名 - - 访问成员变量

    • this.方法名()- - - 调用方法(一般不用)

    • this() - - 调用构造方法(用的少)

    • 补充

      1 成员变量和局部变量是可以同名的,使用时默认采取就近的原则,此时若想访问成员变量,this不能省

      2、null 表示空,没有指向任何对象,只能赋值给引用数据类型。若引用的值为null,则该引用不能再进行任何操作了,若操作则发生NullPointerException空指针异常

补充:super:指代当前对象的超类对象

super的用法:

super.成员变量名- - 访问超类的成员变量

super.方法名():- - 调用超类的方法

super():- - 调用超类的构造方法 ⭐⭐⭐

4、return的作用

        将需要返回给调用方的数值进行返回,并且表示当前方法的结束

        若使用在没有返回值的方法中,表示结束当前方法的执行

二、面向对象三大特性:封装,继承,多态

1.封装:封装一段特定的业务逻辑代码

        1)类:封装对象的属性和行为,作为一个整体来操作

        2)方法:封装一段特定的业务逻辑功能实现

        3)访问控制修饰符: 封装的是具体的访问权限(隐藏数据,暴露行为),保护数据安全

2.继承:代码复用性好

        1、作用:代码复用

        2、超类:所有派生类所共有的属性和行为

              接口:部分派生类所共有的属性和行为

              派生类:派生类所特有的属性和行为

       3、单一继承,多接口实现,具有传递性

3.多态:多种形态--为了代码复用

       1、对象多态:所有对象都是多态的- - 通过向上造型来体现

            行为多态: 所有抽象方法都是多态的- -通过向上造型+方法的重写来体现

       2 、向上造型(能点的就少了)、向下转型(强制类型转换)、instanceof判断

3.1、向上造型/自动类型转换:- -就是多态

         超类型得引用指向派生类得对象

         能点出来什么,看引用类型

         能造型成为得类型有:超类+所实现的接口

3.2、向下转型/强制类型转换: 成功的条件只有如下俩种:

   1、引用所指向的对象,就是该类型

   2、引用所指向的对象,实现了该接口或继承了该类

        强转时若不符合如上条件,则发生ClassCastException类型转换异常

        建议:在强转之前先通过instanceof来判断引用的对象是狗时该类型

        何时需要强转:若想访问的变量/方法在超类中没有,则需要强转

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鬼问路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值