Java 封装和继承

第三章-封装和继承

1、什么是封装

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

封装的步骤
1)修改属性的可见性
改为private(防止错误修改属性值)
2)创建公有的(public)getter和setter方法
方便对私有的属性进行赋值和读取
3)在getter和setter方法内,增加属性控制逻辑语句
对属性赋值或者读取进行合法的判断处理

封装的好处:
隐藏实现细节,方便修改
便于使用者正确使用系统,防止错误修改属性
有助于系统之间的松耦合,提高系统独立性
提高软件的可重用性
降低了构建大型系统的风险


2、访问权限控制

类的访问权限控制
public修饰符:公有访问级别
默认修饰符:包级私有访问级别
不同包,使用默认修饰符修饰的类,不可以跨包使用

访问修饰符
四个关键字:private,默认(default,friendly),protected,public
访问权限范围从小到大,即安全性从高到低

访问修饰符     同类        同包         子类(不同包)           其它
private         V           X                X                X     (除了类内,其它都不可以访问,子类不可以继承)
 
默认修饰符       V           V                X                X     (包访问权限,即在同一个包内都是可以访问的)
   
protected       V           V                V                X     (在同类,同包都可以访问,继承的子类也可以访问)
   
public          V           V                V                V     ( 对任何对象都是可访问的)

3、static关键字

一句话描述:
方便在没有创建任何对象的前提下,可以直接通过类进行访问(属性或者方法)
static可以修饰成员属性和成员方法,还可以单独存在,即static代码块

注意:
static代码块,可以出现在类的任何地方,类内可以有多个static代码块
static代码块,在类加载的时候,会按照static块的先后顺序进行执行,且只会执行一次。

类变量(static修饰的成员变量)和实例变量的区别
1)被static修饰的变量,在内存中只有一个拷贝,类内部,可在任何方法内直接访问静态变量,其他类中,可以直接通过类名访问
2)没有被static修饰的变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。

类方法(static修饰的成员方法)和实例方法的区别
1)静态方法中不能使用this和super,不能直接访问所属类的实例变量和实例方法,可直接访问类的静态变量和静态方法
2)实例方法可直接访问所属类的静态变量、静态方法、实例变量和实例方法

归纳:非静态方法可以访问静态属性和方法,但是反过来不成立


4、继承的用法

1.编写父类

 [访问修饰符] class Pet { 
     //公共的属性和方法
 }

2.编写子类

 [访问修饰符] class Dog extends Pet { 
     //子类特有的属性和方法
 }

注意
子类和父类要存在is-a的关系
使用的继承关键字为:extends,类和类之间只能存在单继承,即只能继承一个类,同一个类可以被多个子类继承

访问父类的成员:
关键字:super,代表父类的对象
子类访问父类的构造:
super()或者super(参数)
子类访问父类的属性:
super.属性
子类访问父类的方法:
super.方法()

注意
1)super关键字只能出现在存在继承关系的子类中,且只能在方法或者构造方法中
2)在子类构造方法中,super关键字调用父类的构造,只能在第一句
3)不可以通过super关键字访问父类的private属性或者方法

继承条件下,子类继承规则:
1.子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法
系统默认调用父类的无参构造方法

2.子类构造方法通过super显式调用父类的有参构造方法
执行父类相应构造方法,而不执行父类无参构造方法


5、子类可以继承父类的内容

1)继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里
2)继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里

父类不可以被子类继承的内容:
1)父类的私有成员(属性和方法)-- private修饰的
2)子类和父类不在同包下面,父类使用默认修饰符修饰的成员
3)子类不能继承父类的构造方法(构造是跟类紧密关联的,方法名不同,有特殊用法,用户创建实例)


6、何时使用继承:

1)是否存在is-a的关系,存在就可以用
2)继承的使用条件
子类是特殊的类型,不代表是父类的角色
子类是父类的扩展,可以包含子类特有的属性和方法,且不能让父类的功能失效

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值