小汤学编程之JAVA基础day07——面向对象(二):封装、继承与多态

本文详细介绍了JAVA编程中的面向对象特性,包括封装的使用步骤、优点、包结构和访问修饰符;继承的概念、重写、final关键字的详细解释以及防止被继承的两种方法;多态的定义、应用、两种转型方式,以及instanceof操作符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大纲
在这里插入图片描述

一、封装
1.使用步骤      2.优点     3.包结构     4.访问修饰符
二、继承
1.理解      2.重写     3.final的详解     4.防止被继承的两种方法
三、多态
1.什么是多态      2.多态的应用     3.两种转型     4.扩展:instanceof的详解

一、封装

1.使用步骤
(1)第一步

将成员变量声明为 private 私有

private int a;
(2)第二步

对外提供get和set方法(idea快捷键:alt+insert)

public int getA() {
	return a;
}
public void setA(int a) {
	this.a = a;
}

通过get/set方法来访问和设置成员变量,相对来说更加安全,程序耦合度也更低。

2.优点
  • 便于使用者正确使用系统,防止错误修改属性
  • 有助于系统之间的松耦合,提高系统独立独立性
  • 提高软件的可重用性
  • 降低了构建大型系统的风险
3.包结构
(1)规则规范
  • package必须是程序中可执行的第一行代码
  • package语句只能有一句
  • package命名要求包含的所有字符均为小写,同时不能有特殊字符
  • package语句后面的分号不要掉
  • 如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package)
(2)一般结构

个人:

完成方式包结构
多人完成indi.发起者名.项目名.模块名*.*.*
独自完成(公开)pers.个人名.项目名.模块名*..
独自完成(非公开)perv.个人名.项目名.模块名*..

团队或公司:

完成方式包结构
团队完成team.团队名.项目名.模块名*..
公司完成com.公司名.项目名.模块名*..
4.访问修饰符
(1)类的访问修饰符
修饰符说明
public对外公开,同工程下所有位置可访问
默认不写只能在所在包访问
(2)成员(属性和方法)的访问修饰符
修饰符说明
private私有的,只能在该类里访问
默认不写只能在所在包访问
protected受保护的,同一个包的子类可以访问
public对外公开,同工程下所有位置可访问

在这里插入图片描述

上图中:受保护的情况(protected) :子类必须在同一个包中。

二、继承

继承使用 extend 关键字。

继承是两个类之间产生关联关系的唯一的方式。

子类构造方法会默认调用父类构造方法。

为多态提供了前提。

Java只支持单继承:一个子类只能有一个直接父类。

1.理解(两个方面)
  • 在多个子类中抽取出相同的属性和方法,形成父类的属性和方法
  • 对父类成员的继承使用(包含成员属性和成员方法)
2.重写(覆盖)与重载
(1)重写(覆盖)

子类方法和父类方法同名,子类方法会覆盖父类方法。

前提:子类方法访问权限必须大于或等于父类方法的访问权限

(2)重载

(详见于类与对象笔记)
面向对象(一):类与对象

3.final的详解
位置说明
修饰变量变量变为常量,不可修改
修饰方法方法不能被重写,保证安全稳定
修饰类类不能被继承,防止方法被覆盖
4.防止被继承的两种方法
(1)方法一

将类用 final 修饰

public final class Clothes {
	// 将类用 final 修饰
}
(2)方法二

将构造方法声明为私有

public class Clothes {
    private Clothes(){// 将构造方法声明为私有
    }
}

三、多态

1.什么是多态

把子类的实例化对象赋值给父类的引用类型。

通俗的理解:父类作为形参,子类类型作为实参。
多态:父类的万子千孙的状态。

2.多态的应用
(1)父类作为方法的形参(最常用)
public void test(Object obj){
	...
}
(2)父类作为方法的返回值
public Object test(){
	...
	return obj;
}
3.两种转型
(1)向上转型
Fu fu = new Zi();
(2)向下转型
Zi zi = (Zi)fu;
4.扩展:instanceof的详解
(1)使用格式
// 对象 instanceof 类
zi instanceof Fu;//返回true
(2)使用解析

instanceof 返回一个布尔值来指出左边对象是否属于右边类或右边类的父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值