Java基础(八)封装和继承

本文深入讲解Java的封装和继承两大核心概念,探讨如何利用封装保护类的属性,避免不合理赋值,以及如何通过继承实现代码复用,提高开发效率。文章详细介绍了访问修饰符的使用,静态关键字的特点,以及类的加载过程。

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

Java基础(八)封装和继承

本章内容

1.面向对象的三大特性

2.会使用java中的包组织类
3.掌握访问修饰符,理解访问权限
4.static关键字,代码执行的顺序
5.继承

1.面向对象三大特性-封装

封装、继承、多态,抽象(有时候也被归为特性)。

1.理解封装的作用

<案例:不合理赋值 年龄设定为了负数…>
因为属性是公开访问的 所以可能会出现不合理赋值。
为了解决此问题,我们将属性(类的信息),进行封装
不允许外部直接访问,我们自己提供一个方法给外部让其访问

2.会使用封装
1.属性私有化 以private访问修饰符 修饰
2.提供公共的访问方法(getter/setter方法)

public void setXXX(XXX xx){

}

public xxx getXXX(){

}

2.会使用Java中包 组织 类

  • 包名必须小写,规范:公司域名的倒序。

  • 声明当前类所在的包地址:

    • package声明 必须写在有效代码行(除去注释)的第一行。
    • 如果要使用不同包的类要进行导入包:写在类声明上方 package声明下方
      import 包路径/全类名/全限定名;
  • import java.util.*; 表示导入java.util包下的所有类

  • Ctrl+Shift+O 自动导包

  • java.lang包下的类 不需要导包。

  • 如果在同一个包中 使用到了不同包中的两个同名类 那么必然有一个需要全类名写法
    示例:cn.bdqn.demo1.Student stu1 = new cn.bdqn.demo1.Student();

Android:区分不同的程序
**1.包名 域名:网址->网页的地址 **

2.签名

  • 唯一

3.掌握访问修饰符,理解访问权限

  • private -> 私有的 只能在本类中访问 红色方块
  • 默认(default) -> 默认的 只能在本类中或者同包中访问 蓝色三角
  • protected(受保护的) -> 本类中或者同包中或者不同包的子类中 黄色
  • public -> 公共的 任意的地方 绿色圆点

4.static(静态)关键字

  • 被static修饰的方法 如果调用其他的方法(同一个类中) 必须创建对象
  • 被static修饰的东西 是属于类的,随着类的加载而加载。
  • 非static修饰的 是属于对象的。

成员变量/实例(对象)变量:

[加载顺序]
1.静态代码块:
类加载的时候 就开始执行了!(只会执行一次)
2.非静态代码块:
每一次创建对象的时候会执行!
3.构造方法
每一次创建对象会执行,在非静态代码块之后

被static修饰的成员,可以直接通过类名调用。
因为static修饰的属于类。

为了节省空间:因为如果定义为实例常量,那么每个对象空间 都会占用一块空间来存储,所以这时候我们可以将其定义为静态常量,供所有对象来访问使用。

static final xxx

5.继承

优点:代码复用
继承使用extends关键字。
Java中的继承只能是单继承(你只能有一个亲爹)

父类的所有东西都会被子类继承吗?
父类非私有的成员才会被子类继承!
只有public和protected修饰的才能被子类继承(无论是否在一个包)。
而如果是默认修饰的 只能在同包中时才能被继承。

子类在创建对象的时候,会先调用父类的构造方法。

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值