Java封装和Java抽象类

本文介绍了Java中的封装概念,强调了隐藏实现细节、增强安全性和维护性的重要性。通过设置私有属性和getter/setter方法实现封装。接着,讨论了抽象类的特性,包括不能实例化、作为继承基础以及必须重写抽象方法。抽象类用于定义共同方法但不提供具体实现,一个类可以继承一个抽象类并实现其抽象方法。

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

一.封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法
封装可以认为是一个保护品璋,防止该类的代码和数据被外部类定义的代码随机访问,要访问该类的代码和数据,必须通过严格的接口控制
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段,适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的目的:

  1. 封装可以隐藏实现的细节 2. 让使用者只能通过实现写好的访问方法来访问这些字段,这样一来我们只需要在这些方法中增加逻 辑控制,限制对数据的不合理访问、 3. 方便数据检查,有利于于保护对象信息的完整性 4. 便于修改,提高代码的可维护性
    实现Java封装的步骤:
    1.修改属性的可见性来限制对属性的访问(一般限制为private)
    例如:
    在这里插入图片描述

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
2. 对每个值属性提供对外的公共方法访问,也就是创建getter 和 setter方法(将实例变量的首字母大 写,在前面添加get或者set, 变成getter 和 setter方法名)

二.Java抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对 象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法、初始化块和构造方法 和普通类一样。 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用,也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口
在Java语言中使用abstract class来定义抽象类,格式:
在这里插入图片描述

【修饰符】 abstract 返回类型 方法名();
修饰符(public protected private)三选一
任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象
抽象类总结:
1.抽象类必须使用abstract修饰符来修饰, 抽象方法也必须使用abstract修饰符来修饰, 抽象方法不能有方法体。
2.抽象类不能被实例化, 无法使用new关键字来调用抽象类的构造器创建抽象类的实例。
3.抽象类可以包含成员变量、 方法(普通方法和抽象方法都可以)、 构造器、初始化块、 内部类(接 口、枚举)5种成分。
4. 抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
5. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类
6. abstract static不能同时修饰一个方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值