Java SE 零基础入门 Day05 类与对象核心详解(封装+构造方法+内存+变量)

本文涵盖Java面向对象核心:类和对象、内存原理、成员/局部变量、封装、权限修饰符、构造方法、this关键字,搭配趣味讲解+行业拓展知识,Java新手必学的OOP入门核心!

摘要

本篇为Java SE入门第五天核心笔记,正式进入面向对象编程(OOP) 核心阶段,用最通俗的语言讲解类与对象的关系、内存机制、变量区别、封装特性和构造方法,结合趣味梗、代码实战和IT行业干货,让零基础小白轻松攻克Java最重要的知识点,为后续框架学习打下坚实基础。

一、高效学习法则(必看!)

  1. 记忆核心原理 :对大脑皮层进行一次又一次的重复刺激,遵循学习周期曲线,每隔几天就复习一遍知识点,才能真正牢记;
  2. 拒绝速成:编程学习没有捷径,周期性复盘、反复敲代码,是掌握技术的唯一路径。

二、面向对象核心:类和对象(OOP入门)

1. 灵魂提问:学Java还没对象?new一个!

这是Java最经典的趣味梗:

别人问你:学Java的,怎么没对象

你直接回:我new一个就完了!

对象 :真实存在的具体事物(比如女朋友、手机、电脑、学生);
:对象的图纸/模板,描述一类事物的属性(特征)和行为(功能)。

2. 核心思想

  1. 面向对象大大降低了程序员的开发门槛,不用关注底层实现,直接调用对象完成功能;
  2. 基于类(图纸) ,我们可以无限创建对象(实例),就像根据图纸生产产品一样简单。

3. 类的定义格式(Java代码)

类 = 属性(成员变量)+ 行为(成员方法)

java 复制代码
// 类:学生模板
public class Student {
    // 1. 属性:成员变量
    String name; // 姓名
    int age;     // 年龄

    // 2. 行为:成员方法
    public void study() {
        System.out.println("学生在学习");
    }
}

4. 对象的创建与使用(关键字:new)

java 复制代码
public class Test {
    public static void main(String[] args) {
        // 核心:new 类名() → 创建对象
        Student stu = new Student();
        
        // 使用对象的属性
        stu.name = "张三";
        stu.age = 20;
        
        // 使用对象的行为
        stu.study();
    }
}

三、对象内存图(核心原理)

Java 内存分为 栈内存堆内存,对象的存储遵循固定规则:

  1. 栈内存 :存储对象名 (引用变量),保存堆内存的地址值
  2. 堆内存 :存储对象的真实数据 (成员变量),new 出来的东西都在堆里;
  3. 方法执行:栈内存 先进后出,对象通过地址值找到堆内存的数据。

简化记忆

  • 对象名(栈)= 遥控器
  • 对象数据(堆)= 电视机
  • 遥控器通过信号(地址)控制电视机

四、成员变量 vs 局部变量(高频面试题)

对比项 成员变量 局部变量
定义位置 类中、方法外 方法内、方法参数、代码块中
内存位置 堆内存 栈内存
初始化值 有默认初始值(int=0,String=null) 无默认值,必须手动赋值才能使用
作用域 整个类中有效 当前方法/代码块内有效
生命周期 随对象创建而创建,对象销毁而销毁 随方法调用创建,方法结束销毁

代码示例

java 复制代码
public class VariableDemo {
    // 成员变量
    String name = "Java";

    public void test() {
        // 局部变量(必须赋值)
        int num = 10;
        System.out.println(num);
    }
}

五、封装(面向对象三大特征之一)

1. 什么是封装?

把对象的属性私有化,对外提供公共的访问方法,隐藏实现细节,保护数据安全

2. 四大权限修饰符(范围从小到大)

Java 用于控制访问权限的关键字,封装核心

  1. private(私有):仅当前类中可访问(最常用,封装属性);
  2. default(默认,不写关键字):同一个包下可访问;
  3. protected(受保护):同一个包 + 子类可访问;
  4. public(公共):任意位置可访问。

开发规范 :成员变量必须用 private 私有化,提供 get/set 方法访问。

3. 就近原则

局部变量和成员变量同名 时,方法优先使用局部变量(谁近用谁)。


六、构造方法(对象创建的核心)

1. 定义

构造方法是专门用来创建对象的方法,创建对象时自动调用,无需手动调用。

2. 格式

java 复制代码
修饰符 类名(参数列表) {
    // 初始化对象属性
}

3. 核心规则(必背!)

  1. 默认构造方法 :如果一个类没有写任何构造方法,编译器自动赠送一个无参构造方法
  2. 有参构造覆盖规则 :如果手动写了有参构造方法 ,编译器不再提供无参构造
  3. 开发建议:无论是否使用,手动写无参 + 有参构造方法

4. this 关键字(解决就近原则)

  • this.成员变量:调用当前对象的成员变量;
  • this():调用本类的其他构造方法。

代码示例(标准Java类:JavaBean)

java 复制代码
public class GirlFriend {
    // 私有化成员变量
    private String name;
    private int age;

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

    // 有参构造
    public GirlFriend(String name, int age) {
        // this解决同名冲突
        this.name = name;
        this.age = age;
    }

    // get/set方法
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

七、IT行业拓展干货(职场必知)

1. 雷军经典创业案例

  1. 米聊:微信的前身,国内最早的移动社交软件,因各种原因被微信反超;
  2. 卓越网:早期电商平台,被亚马逊收购,资金为 WPS 提供了续命支持。

2. 国产科技与信创产业(国家战略)

  1. 核心企业:中国电子、海康威视、中国电科、阿里达摩院;
  2. 国产数据库:达摩数据库等自主研发产品;
  3. 信创化 :信息技术应用创新,覆盖军队、央企、学校、企业,全面实现国产替代,是未来计算机行业的核心风口。

八、Day05 核心总结

  1. 类和对象 :类是模板,对象是实例,new 关键字创建对象;
  2. 内存:对象名在栈,对象数据在堆,通过地址关联;
  3. 变量:成员变量有默认值,局部变量必须赋值;
  4. 封装private 私有化属性 + get/set 方法,保护数据;
  5. 构造方法:创建对象自动调用,手写有参则无默认无参;
  6. this:解决变量同名冲突,调用本类构造;
  7. 学习 :周期性重复刺激大脑,巩固知识点,技术+行业视野双提升!
相关推荐
weixin_428005302 分钟前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第4天CoT思维链学习
开发语言·学习·ai·c#·cot
砍材农夫4 分钟前
物联网 基于netty构建mqtt服务demo演示
开发语言·物联网·php
逸风尊者4 分钟前
Robotaxi 行业日报 | 2026-05-18
人工智能
Devin~Y4 分钟前
大厂Java面试实录:Spring Boot/Cloud + Redis + Kafka + JVM + RAG(Spring AI)三轮追问(小Y翻车版)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
Lan_Se_Tian_Ma5 分钟前
使用Cursor封装Flutter项目基建框架
前端·人工智能·flutter
白日做梦Q6 分钟前
Miniconda 新手保姆级教程:从安装到熟练使用(全程无跳步,避坑指南附全)
人工智能·深度学习·算法·机器学习
碳基硅坊6 分钟前
投标标书制作的新思路:OpenClaw能帮什么
人工智能·openclaw·智能投标
JAVA面经实录9176 分钟前
Java 并发工具类
java·大数据·开发语言
189228048617 分钟前
NV266固态MT29F32T08GSLBHL8-36QMES:B
大数据·服务器·人工智能·科技·缓存
吃好睡好便好7 分钟前
在Matlab中绘制变半径柱面图
开发语言·人工智能·学习·算法·matlab