开启Java的墓穴04 —封装、构造方法、API、接口

本文介绍了面向对象编程中的封装概念,包括private关键字、this关键字的使用以及封装的好处。详细讲解了构造方法的作用、注意事项及标准类的创建。此外,还阐述了Java API的应用,强调了接口作为规范标准的重要性,接口的特点以及类与接口、接口与接口之间的关系。最后,对比了抽象类与接口的区别,并讨论了形参和返回值在抽象类和接口中的使用。
摘要由CSDN通过智能技术生成

一、封装

1. private 关键字

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

  • 提供“get变量名0”方法。用于获取成员变量的值,方法用public修饰
  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
2. this 关键字

this修饰的变量用于指代成员变量

  1. 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  2. 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

什么时候使用this呢?

解决局部变量隐藏成员变量
方法被哪个对象调用,this就代表哪个对象

3. 封装
3.1 封装概述

是面向对象三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

3.2 封装原则

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现隐藏信息的操作和访问成员变量private提供对应的getXxx()/ setXxx()方法

3.3 封装好处

通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性

二、构造方法

构造方法是一种特殊的方法
3. 作用:创建对象
4. 功能:主要是完成对象数据的初始化

1.构造方法的注意事项
1.1 构造方法的创建

如果没有定义构造方法,系统将给出一个默认的无参数构造方法
如果定义了构造方法,系统将不再提供默认的构造方法

1.2 构造方法的重载

如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

1.3 推荐的使用方法

无论是否使用,都手动书写无参数构造方法

2. 标准类制作
  1. 成员变量
    - 使用private修饰
  2. 构造方法
    - 提供一个无参构造方法
    - 提供一个带多个参数的构造方法
  3. 成员方法
    - 提供每一个成员变量对应的setXxx()/getXxxx()
    - 提供一个显示对象信息的show()
  4. 创建对象并为其成员变量赋值的两种方式
    - 无参构造方法创建对象后使用setXxx()赎值
    - 使用带参构造方法直接创建带有属性值的对象

三、API(应用程序编程接口)

API(Application Programming Interface):应用程序编程接口
编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门、抢球等各种命令。机器人厂商一定会提供一些用于控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为API
Java API: 指的就是JDK中提供的各种功能的Java类
这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的
只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用
注意: 调用方法时,如果方法有明确的返回值,我们用变量接收

String line = sc.nextline();

四、接口

4.1 接口概述

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用
Java中的接口更多的体现在对行为的抽象

4.2 接口特点
  • 接口用关键字interface修饰
    在这里插入图片描述
    public interface 接口名 {}
  • 类实现接口用implements表示
    public class 类名 implements接口名 {}
  • 接口不能实例化
    接口如何实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态。
    多态的形式:具体类多态、抽象类多态接口多态
  • 接口的实现类
    要么重写接口中的所有抽象方法
    要么是抽象类
4.3 接口的成员特点
  • 成员变量

    • 只能是常量
    • 默认修饰符:public static final
      在这里插入图片描述
  • 构造方法

    • 接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在一个类,如果没有父类,默认继承自Object类
  • 成员方法

    • 只能是抽象方法
    • 默认修饰符:public abstract

在这里插入图片描述
在这里插入图片描述

4.4 类和接口的关系
(1)类和类的关系

继承关系,只能单继承,但是可以多层继承

(2)类和接口的关系

实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
在这里插入图片描述

(3)接口和接口的关系

继承关系,可以单继承,也可以多继承
在这里插入图片描述

4.5 抽象类和接口的区别

在这里插入图片描述
再次强调:抽象类是对事物的抽象,接口是对行为的抽象

案例:
在这里插入图片描述

4.6 形参和返回值
(1)抽象类名作为形参和返回值
  • 方法的形参是抽象类名,其实需要的是该抽象类的子类对象
  • 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
(2)接口名作为形参和返回值
  • 方法的形参是接口名,其实需要的是该接口的实现类对象
  • 方法的返回值是接口名,其实返回的是该接口的实现类在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值