当前位置: 首页 > news >正文

大一Java第六周学习总结:封装与继承

大一Java第六周学习总结:封装与继承

一、本周学习前言

本周是 Java 面向对象进阶的关键一周,核心学习两大特性:封装、继承

二、本周核心学习内容

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

1.1 封装的概念

封装是面向对象的第一大特性,也是最基础的特性。

简单理解:隐藏对象的内部细节,只对外暴露安全的访问方式

  • 将类的成员变量(属性)私有化,不让外部直接修改;
  • 通过公共的方法,安全地获取、修改属性值;
  • 杜绝非法数据、错误数据直接赋值给对象属性,保证数据安全性。

1.2 封装的实现步骤

  1. 使用 private 修饰成员变量(私有化,外部无法直接访问);
  2. 为私有变量提供 getter 方法:获取属性值;
  3. 为私有变量提供 setter 方法:设置属性值(可加入数据校验);
  4. 对外提供公共的构造方法创建对象。

1.3 封装实操代码(学生类案例)

java
// 学生类:标准封装写法
public class Student {
// 1. 私有化所有成员变量
private String name;
private int age;
private String stuId;

// 无参构造
public Student() {
}

// 有参构造
public Student(String name, int age, String stuId) {
this.name = name;
// 构造方法中也可做数据校验
if (age 0 &&< 30) {
this.age = age;
} else {
System.out.println("年龄输入不合法,默认赋值为0");
this.age = 0;
}
this.stuId = stuId;
}

// 2. getter、setter方法
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

// 设置年龄,加入数据校验(封装核心优势)
public void setAge(int age) {
if (age 0 &&< 30) {
this.age = age;
} else {
System.out.println("年龄必须在1-29之间!赋值失败");
}
}

public String getStuId() {
return stuId;
}

public void setStuId(String stuId) {
this.stuId = stuId;
}

// 重写toString,方便打印对象信息
@Override
public String toString() {
return "Student{" +
"姓名='" + name + '\'' +
", 年龄=" + age +
", 学号='" + stuId + '\'' +
'}';
}
}

1.4 测试类

java
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student();
// 无法直接访问 s1.name(私有)
// s1.age = -10; 报错!编译不通过

// 通过setter安全赋值
s1.setName("张三");
s1.setAge(20);
s1.setStuId("2025401182");

System.out.println(s1);

// 测试非法数据
s1.setAge(50);
}
}

1.5 封装的核心作用

  1. 数据安全:禁止外部随意篡改属性,通过方法校验数据合法性;
  2. 代码可控:所有属性的修改、获取都经过统一入口,便于后期维护;
  3. 隐藏细节:使用者只需要调用方法,不需要关注类的内部实现。

2. 面向对象三大特性 —— 继承

2.1 继承的概念

继承就是子类复用父类的属性和方法,是实现代码复用的核心手段。

  • 父类(超类):通用的、公共的类,抽取所有子类的共性内容;
  • 子类(派生类):在父类基础上,扩展自己独有的属性和方法。

Java 继承特点:单继承,一个子类只能有一个直接父类,一个父类可以有多个子类。

2.2 继承的语法

java
public class 子类名 extends 父类名{
// 独有属性、独有方法
}

2.3 继承实操案例(学生子类:研究生)

基于上面的Student父类,创建GraduateStudent研究生子类,复用姓名、年龄、学号,新增独有属性:导师、研究方向。

java
// 研究生子类,继承学生父类
public class GraduateStudent extends Student {
// 子类独有属性
private String teacher;
private String major;

// 无参构造
public GraduateStudent() {
}

// 有参构造
public GraduateStudent(String name, int age, String stuId, String teacher, String major) {
// super:调用父类的有参构造
super(name, age, stuId);
this.teacher = teacher;
this.major = major;
}

// 独有方法
public void studyResearch() {
System.out.println("研究生正在进行科研学习");
}

// getter、setter
public String getTeacher() {
return teacher;
}

public void setTeacher(String teacher) {
this.teacher = teacher;
}

public String getMajor() {
return major;
}

public void setMajor(String major) {
this.major = major;
}

// 重写toString
@Override
public String toString() {
// super调用父类toString
return super.toString() +
", 导师='" + teacher + '\'' +
", 研究方向='" + major + '\'';
}
}

2.4 继承测试类

java
public class TestGraduate {
public static void main(String[] args) {
GraduateStudent g1 = new GraduateStudent("李四",22,"2025401199","王老师","计算机科学");

// 直接复用父类属性和方法
System.out.println(g1.getName());
System.out.println(g1.getAge());

// 调用子类独有方法
g1.studyResearch();

// 打印完整信息
System.out.println(g1);
}
}

3. 本周重点关键字:super

super是继承中必考关键字,专门指代父类对象,三种核心用法:

  1. super.父类属性:访问父类的成员变量;
  2. super.父类方法():调用父类的普通方法;
  3. super() / super(参数):调用父类无参 / 有参构造,必须放在子类构造第一行

重点规则:

  • 子类构造方法默认隐含 super(),会自动调用父类无参构造;
  • 如果父类没有无参构造,子类必须手动通过super(参数)调用父类有参构造,否则报错。

三、本周易混易错知识点(大一高频错题)

1. 封装误区

  1. 忘记给变量加private修饰,无法实现真正封装;
  2. 只写 getter 不写 setter,或只写 setter 不写 getter,代码不规范;
  3. setter 方法不做数据校验,失去封装保护数据的意义。

2. 继承误区

  1. 子类可以继承父类非私有的所有属性和方法,private私有内容无法继承;
  2. 构造方法不能被继承,只能通过super调用;
  3. Java 不支持多继承(不能同时 extends 多个类)。

3. super 关键字误区

  1. super()必须在构造方法第一行,位置错误直接编译报错;
  2. 静态方法中不能使用 super

四、本周学习总结与心得

  1. 第六周的封装 + 继承是 Java 面向对象从入门到进阶的分水岭,彻底告别了单纯写代码的思维,开始学习模块化、复用化、安全化的编程思想;
  2. 封装解决了数据安全问题,是规范编码的基础,以后所有实体类都必须遵循私有化变量 + get/set 的标准写法;
  3. 继承解决了代码冗余问题,重复的共性代码抽取到父类,子类只需要扩展独有功能,极大提升开发效率;
  4. super 关键字是继承的核心难点,只要掌握构造调用、属性调用、方法调用三种用法,就能吃透本周所有考点。
http://www.jsqmd.com/news/835583/

相关文章:

  • 博客搭建——CSS外观美化
  • 陷车清零效率提升58%:非标履带底盘案例解析 - 速递信息
  • 宁远装修避坑指南!选对装修公司少花冤枉钱,大秦装饰用实力说话 - 速递信息
  • 航空器配载与货运管理系统三次作业集总结
  • 2026年新疆旅行社行业横向测评白皮书:品质服务与用户体验深度解析 - 速递信息
  • 2026年至今湖北搏击行业现状调查:真实场馆挑选标准与避坑指南 - 速递信息
  • 500以内送礼高跟鞋排行:玫瑰米兰达领衔实用之选 - 奔跑123
  • 合肥黄金回收哪家靠谱?实测3家热门商家,第一名出乎意料 - 速递信息
  • 2026 南京旧房局部改造装修/涂料刷新服务商 TOP5 精选推荐(附避坑攻略) - 速递信息
  • 全城热议!2026 郑州整装口碑榜出炉!几何整装稳居业主首选 - 速递信息
  • 2026年东莞办公家具选购指南:性价比与品质兼得的优选推荐 - 速递信息
  • 零基础精通 GEO 优化:行业发展趋势、核心技术内核与企业全域落地全方位专业解读 - 速递信息
  • 2026年新疆旅行社行业深度攻略:从选型到落地全流程指南 - 速递信息
  • 中山靠谱的汽车贴膜知名店家 - 速递信息
  • 2026年新疆旅行社选型指南白皮书 - 速递信息
  • 2026农村光伏发电租赁屋顶安装推荐:河南区域品牌测评,本土标杆脱颖而出 - 速递信息
  • 恶劣工况下的耐用之选:2026重载领域质量稳定的电动推杆厂家实力榜单 - 速递信息
  • 绿联科技落地新国标合规体系:充电与NAS产品的全链路安全升级 - 速递信息
  • GEO是什么?及2026年北京本地靠谱GEO优化服务商品牌商推荐Top7 - 速递信息
  • 告别高昂运维费:2026国产电动推杆厂家排名(高可靠性与长寿命品牌榜单) - 速递信息
  • 2026年武汉搏击馆真实测评:内行人揭秘挑选标准与避坑指南 - 速递信息
  • 家里太安静是不是好事?晨宝用心理学帮你打破亲子沉默 - 速递信息
  • 靠谱的上海公司注销服务商排名 - 速递信息
  • 面向对象程序设计-第一单元多项式作业总结
  • 2026年武汉散打真实测评:内行人告诉你选哪家不踩坑 - 速递信息
  • JWT Token 过期后 Refresh Token 刷新失败报错 400 怎么修复?
  • 飞机载重平衡与货物管理系统三次作业集总结
  • 2026年武汉盘龙城搏击馆真实测评:内行人告诉你选哪家不踩坑 - 速递信息
  • vulnhub:Noob: 1(拿下的第一台靶机)
  • 泓动数据 官网 电话 联系我们 联系方式一览、一文带你了解清楚如何找到泓动数据总部对接GEO优化! - 速递信息