Java初识面向对象+类与对象+封装核心

🏠个人主页:黎雁

🎬作者简介:C/C++/JAVA后端开发学习者

❄️个人专栏:C语言数据结构(C语言)EasyXJAVA游戏规划程序人生

✨ 从来绝巘须孤往,万里同尘即玉京

文章目录

  • ✨Java面向对象精讲(一):初识面向对象+类与对象+封装核心|零基础吃透OOP思想
    • [📌 文章摘要(248字)](#📌 文章摘要(248字))
      • [🕒 阅读时长:约12分钟](#🕒 阅读时长:约12分钟)
      • [✅ 适用人群 & 阅读重点](#✅ 适用人群 & 阅读重点)
    • [📖 知识回顾(课前必看,快速衔接)](#📖 知识回顾(课前必看,快速衔接))
    • [一、初识面向对象 ☀️ 从生活到代码,彻底理解核心思想](#一、初识面向对象 ☀️ 从生活到代码,彻底理解核心思想)
      • [1.1 什么是面向对象?(生活案例,通俗易懂)](#1.1 什么是面向对象?(生活案例,通俗易懂))
      • [1.2 我们要学的两大核心内容](#1.2 我们要学的两大核心内容)
    • [二、设计对象并使用 ✍️ 类与对象【核心重点,占80%考点】](#二、设计对象并使用 ✍️ 类与对象【核心重点,占80%考点】)
      • [2.1 类和对象的关系(必背定义,笔试高频)](#2.1 类和对象的关系(必背定义,笔试高频))
        • [✨ 类(class)→ 事物的「设计图/图纸」](#✨ 类(class)→ 事物的「设计图/图纸」)
        • [✨ 对象(object)→ 事物的「具体实例/成品」](#✨ 对象(object)→ 事物的「具体实例/成品」)
      • [2.2 核心原则(Java语法铁律)](#2.2 核心原则(Java语法铁律))
      • [2.3 类的定义 & 对象的创建与使用【基础语法,必会】](#2.3 类的定义 & 对象的创建与使用【基础语法,必会】)
        • [✅ ① 定义类的标准语法(固定格式,直接套用)](#✅ ① 定义类的标准语法(固定格式,直接套用))
          • [✍️ 命名规范(强制遵守,开发必备)](#✍️ 命名规范(强制遵守,开发必备))
        • [✅ ② 创建对象的标准语法](#✅ ② 创建对象的标准语法)
        • [✅ ③ 对象的使用(两种核心操作,必会)](#✅ ③ 对象的使用(两种核心操作,必会))
      • [2.4 完整代码示例【可直接运行,零基础友好】](#2.4 完整代码示例【可直接运行,零基础友好】)
        • [✔ 示例1:JavaBean类 - Phone.java(描述手机事物,无main方法)](#✔ 示例1:JavaBean类 - Phone.java(描述手机事物,无main方法))
        • [✔ 示例2:测试类 - PhoneTest.java(写main方法,创建对象并使用)](#✔ 示例2:测试类 - PhoneTest.java(写main方法,创建对象并使用))
      • [2.5 关键概念:JavaBean类 & 测试类(开发规范,必懂)](#2.5 关键概念:JavaBean类 & 测试类(开发规范,必懂))
        • [✔ JavaBean类](#✔ JavaBean类)
        • [✔ 测试类](#✔ 测试类)
      • [2.6 类的定义注意事项(易错点,避坑指南)](#2.6 类的定义注意事项(易错点,避坑指南))
      • [2.7 开发技巧:如何设计一个类?(万能思路)](#2.7 开发技巧:如何设计一个类?(万能思路))
    • [三、封装 🛡️ 面向对象三大特征之一【核心重点,重中之重】](#三、封装 🛡️ 面向对象三大特征之一【核心重点,重中之重】)
      • [3.1 封装的核心思想(灵魂,必须理解)](#3.1 封装的核心思想(灵魂,必须理解))
        • [✅ 经典案例理解封装(通俗易懂,秒会)](#✅ 经典案例理解封装(通俗易懂,秒会))
      • [3.2 封装的好处(为什么要封装?必背)](#3.2 封装的好处(为什么要封装?必背))
      • [3.3 private关键字:封装的核心实现手段(必会语法)](#3.3 private关键字:封装的核心实现手段(必会语法))
        • [✔ private关键字的核心特点](#✔ private关键字的核心特点)
        • [✔ 为什么要用private?(解决什么问题?)](#✔ 为什么要用private?(解决什么问题?))
      • [3.4 封装的标准步骤(固定套路,必须背会,直接套用)](#3.4 封装的标准步骤(固定套路,必须背会,直接套用))
      • [3.5 封装的完整代码示例【可直接运行,企业级规范】](#3.5 封装的完整代码示例【可直接运行,企业级规范】)
        • [✔ 示例1:JavaBean类 - GirlFriend.java(私有化属性+提供get/set方法)](#✔ 示例1:JavaBean类 - GirlFriend.java(私有化属性+提供get/set方法))
        • [✔ 示例2:测试类 - GirlFriendTest.java(调用get/set方法使用对象)](#✔ 示例2:测试类 - GirlFriendTest.java(调用get/set方法使用对象))
      • [3.6 封装核心总结(必背考点,笔试面试高频)](#3.6 封装核心总结(必背考点,笔试面试高频))
    • [✨ 核心知识点总结(精华提炼,查漏补缺)](#✨ 核心知识点总结(精华提炼,查漏补缺))
      • [✅ 面向对象核心](#✅ 面向对象核心)
      • [✅ 类与对象核心](#✅ 类与对象核心)
      • [✅ 封装核心](#✅ 封装核心)
    • [✍️ 写在最后](#✍️ 写在最后)

✨Java面向对象精讲(一):初识面向对象+类与对象+封装核心|零基础吃透OOP思想

📌 文章摘要(248字)

本文是Java面向对象系列第一篇核心精讲,全覆盖面向对象思想、类与对象设计、封装特性、private关键字 四大核心知识点,从生活案例切入,由浅入深讲解面向对象编程的本质,完整梳理「类是设计图、对象是具体体现」的核心逻辑。详细讲解类的定义、对象的创建与使用,重点剖析封装的核心思想与实际开发价值,手把手教你使用private封装成员变量、编写标准get/set方法,搭配完整可运行代码示例+开发规范+易错点避坑。内容通俗易懂,零基础友好,既适合入门者夯实面向对象基础,也能帮助进阶者梳理核心知识点。学完本文可独立完成「自定义类、创建对象、封装属性」的开发需求,是吃透Java面向对象的必备开篇内容。

🕒 阅读时长:约12分钟

✅ 适用人群 & 阅读重点

▫️ Java零基础入门者 :重点看「面向对象思想、类与对象的定义和使用」,理解OOP和面向过程的区别,掌握基础语法,能独立写类和创建对象。

▫️ 在校学生/备考笔试者 :重点吃透「类与对象的关系、封装的核心思想、private关键字的作用」,这些是笔试高频考点,务必牢记定义和特点。

▫️ 初学面向对象迷茫者 :重点看「生活案例+代码示例」,通过具象化的例子理解抽象的OOP思想,打通"设计类→创建对象→使用对象"的逻辑闭环。

▫️ 开发入门夯实基础者 :重点看「封装的开发规范、成员变量赋值取值的标准写法」,养成良好的编码习惯,贴合企业开发规范。

▫️ 复习巩固者:直接看「知识回顾+核心总结」,快速梳理知识点,查漏补缺,强化记忆。


📖 知识回顾(课前必看,快速衔接)

在学习面向对象之前,我们写的Java代码都是面向过程 的编程思想:核心是「步骤」,做一件事要拆解成「第一步做什么、第二步做什么」,所有代码都写在main方法中,逻辑耦合度高,复用性差。

而从今天开始,我们进入Java的核心------面向对象(OOP) 编程,它是Java的灵魂,也是企业开发的主流思想,核心是「对象」,万物皆对象,学会用对象的思维写代码,是Java进阶的必经之路。


一、初识面向对象 ☀️ 从生活到代码,彻底理解核心思想

1.1 什么是面向对象?(生活案例,通俗易懂)

在生活中,我们永远是找「能干活的东西」来做对应的事情,而不是自己一步步去实现这件事:

  • 要洗衣服 → 找【洗衣机】这个东西来洗,不用自己手搓
  • 要聊天沟通 → 找【手机】这个东西来聊,不用面对面喊话
  • 要敲代码学习 → 找【电脑】这个东西来用,不用手写代码
  • 要喝水解渴 → 找【水杯】这个东西来装水,不用双手捧水

✅ 核心总结:

面向 → 寻找、找
对象 → 能帮我们干活的、具备特定功能的「东西」
面向对象编程(OOP)拿对象来做对应的事情,核心是「找对象、用对象」

1.2 我们要学的两大核心内容

面向对象的学习分为两个阶段,循序渐进,缺一不可:

① 学会获取并使用已经存在的对象 (比如Java自带的ScannerRandom对象);

② 学会自己设计对象,并创建对象来使用(本节课核心内容,重中之重)。


二、设计对象并使用 ✍️ 类与对象【核心重点,占80%考点】

2.1 类和对象的关系(必背定义,笔试高频)

这是面向对象最基础也是最核心的概念,必须理解透彻,烂熟于心 ✔️

✨ 类(class)→ 事物的「设计图/图纸」

类是用来描述一类具有共同特征和行为的事物的抽象概念,是一个模板。

  • 特征 → 事物的属性/成员变量(一般是「名词」,比如:手机的品牌、价格、颜色)
  • 行为 → 事物的方法/成员方法(一般是「动词」,比如:手机的打电话、玩游戏、发信息)
✨ 对象(object)→ 事物的「具体实例/成品」

对象是类的具体体现,是根据类这个设计图,创建出来的实实在在的、能干活的东西。

  • 比如:Phone类是手机的设计图,根据这个图纸创建出的「小米手机、荣耀手机」就是具体的对象
  • 比如:Student类是学生的设计图,根据这个图纸创建出的「张三、李四」就是具体的对象

2.2 核心原则(Java语法铁律)

⚠️ 在Java中,必须先设计类,才能创建并使用对象

没有设计图(类),永远造不出成品(对象),这是Java的语法规则,无例外。

2.3 类的定义 & 对象的创建与使用【基础语法,必会】

✅ ① 定义类的标准语法(固定格式,直接套用)
java 复制代码
public class 类名 {
    // 1. 成员变量(属性/特征):类中、方法外,描述事物的属性,名词为主
    数据类型 变量名;
    // 2. 成员方法(行为/功能):描述事物的行为,动词为主,无static修饰
    public void 方法名() {
        方法体; // 该事物能做的事情
    }
}
✍️ 命名规范(强制遵守,开发必备)

▫️ 类名:大驼峰命名法 ,首字母大写,见名知意,比如PhoneStudentGirlFriend

▫️ 成员变量:小驼峰命名法 ,首字母小写,比如brandpricenameage

▫️ 成员方法:小驼峰命名法 ,动词开头,比如call()playGame()sleep()

✅ ② 创建对象的标准语法
java 复制代码
类名 对象名 = new 类名();
// 举例:Phone p = new Phone();
// 左边:Phone p → 声明一个Phone类型的变量p
// 右边:new Phone() → 真正创建Phone对象,在内存中开辟空间
// = → 把对象的内存地址赋值给变量p,p就指向了这个对象
✅ ③ 对象的使用(两种核心操作,必会)

创建对象后,我们就可以通过对象操作它的「属性」和「行为」,语法固定:

  1. 访问/赋值成员变量对象名.成员变量名
    • 赋值:p.brand = "小米";p.price = 1999.98;
    • 取值:System.out.println(p.brand);
  2. 调用成员方法对象名.成员方法名(参数)
    • 调用:p.call();p.playGame();

2.4 完整代码示例【可直接运行,零基础友好】

开发规范:Java中分为「JavaBean类」和「测试类」,各司其职,必须分开写!

✔ 示例1:JavaBean类 - Phone.java(描述手机事物,无main方法)
java 复制代码
public class Phone {
    // 成员变量:属性(特征)
    String brand; // 手机品牌
    double price; // 手机价格

    // 成员方法:行为(功能)
    public void call() {
        System.out.println("手机在打电话");
    }

    public void playGame() {
        System.out.println("手机在玩游戏");
    }
}
✔ 示例2:测试类 - PhoneTest.java(写main方法,创建对象并使用)
java 复制代码
public class PhoneTest {
    public static void main(String[] args) {
        // 1. 创建手机对象
        Phone p = new Phone();
        
        // 2. 给对象的成员变量赋值
        p.brand = "小米";
        p.price = 1999.98;
        
        // 3. 获取对象的成员变量值并打印
        System.out.println(p.brand); // 输出:小米
        System.out.println(p.price); // 输出:1999.98
        
        // 4. 调用对象的成员方法
        p.call();     // 输出:手机在打电话
        p.playGame(); // 输出:手机在玩游戏

        // ========== 再创建一个对象,互不影响 ==========
        Phone p2 = new Phone();
        p2.brand = "荣耀";
        p2.price = 3700.0;
        System.out.println(p2.brand); // 输出:荣耀
        System.out.println(p2.price); // 输出:3700.0
        p2.call();     // 输出:手机在打电话
    }
}

✅ 运行结果:每个对象都是独立的,修改p的属性不会影响p2,这是对象的核心特性!

2.5 关键概念:JavaBean类 & 测试类(开发规范,必懂)

这是Java开发的基础规范,严格遵守,养成好习惯 🌟

✔ JavaBean类
  • 作用:专门用来描述一类事物 的类,只写属性和行为,永远不写main方法
  • 特点:纯描述,无业务逻辑,是项目中最基础的类,比如PhoneStudentUser
✔ 测试类
  • 作用:专门用来测试JavaBean类 的类,里面只有main方法
  • 特点:在测试类中,可以创建JavaBean类的对象、给对象赋值、调用对象的方法,执行业务逻辑

2.6 类的定义注意事项(易错点,避坑指南)

  1. 一个.java源文件中,可以定义多个class类 ,但只能有一个类被public修饰
  2. public修饰的类,类名必须和文件名完全一致(大小写都要一致);
  3. 实际开发中,强烈建议一个文件只定义一个class类,可读性更高,便于维护;
  4. 成员变量的完整格式:修饰符 数据类型 变量名 = 初始化值;,但一般不写初始化值,Java会给成员变量赋默认值 (和数组默认值一致):
    • 整数:0 小数:0.0 布尔:false 字符:\u0000 引用类型:null

2.7 开发技巧:如何设计一个类?(万能思路)

开发中拿到需求,不知道怎么设计类?记住这个万能公式,永远不会错 ✅

属性 → 找名词 :从需求中提取描述事物的名词,就是成员变量
行为 → 找动词 :从需求中提取描述事物的动词,就是成员方法

比如:设计一个GirlFriend类 → 名词:姓名、年龄、性别 → 属性;动词:吃饭、睡觉 → 行为。


三、封装 🛡️ 面向对象三大特征之一【核心重点,重中之重】

3.1 封装的核心思想(灵魂,必须理解)

封装是Java面向对象的三大核心特征之首(封装、继承、多态),核心思想一句话概括:

对象代表什么,就要封装对应的数据,并提供该数据对应的行为

简单理解:谁的属性,就归谁管;谁的行为,就归谁做,职责分明,各司其职。

✅ 经典案例理解封装(通俗易懂,秒会)
  1. 人画圆 → 画圆这个行为,是圆的行为,不是人的行为 → 人调用圆的画圆方法
  2. 人关门 → 关门这个行为,是门的行为,不是人的行为 → 人调用门的关门方法
  3. 张三砍李四 → 被砍这个行为,是李四的行为,不是张三的行为 → 张三调用李四的被砍方法

这个思想贯穿Java开发的始终,Java官方设计的所有对象(比如ScannerString)都严格遵循这个原则,学会封装,你才算真正入门面向对象!

3.2 封装的好处(为什么要封装?必背)

封装是面向对象的精髓,学会封装,能让你的代码更优秀,好处非常多:

  1. ✅ 让程序员学会自己设计合理的对象,职责分明,代码逻辑更清晰;
  2. ✅ Java官方按照封装思想设计了大量的对象(JDK API),我们可以直接拿来用,降低学习成本
  3. ✅ 封装可以保护成员变量,避免外部随意修改,提高代码的安全性;
  4. ✅ 提高代码的复用性和可维护性,修改内部逻辑不会影响外部调用。

3.3 private关键字:封装的核心实现手段(必会语法)

要实现封装,必须用到private关键字,这是Java中最常用的权限修饰符,没有之一!

✔ private关键字的核心特点
  1. private可以修饰成员变量成员方法(类的成员);
  2. private修饰的成员,只能在当前类中访问和使用,在其他类中完全不可见;
  3. private的权限范围:本类可见,外部类不可见,是Java中权限最小的修饰符。
✔ 为什么要用private?(解决什么问题?)

在没有封装之前,我们直接通过对象名.成员变量给属性赋值,外部可以随意修改属性的值,没有任何限制 ,会导致数据不安全。

比如:给GirlFriendage赋值为-18,这是非法数据,但代码不会报错,这就是数据泄露的问题。

而用private修饰成员变量后,外部无法直接访问,必须通过我们提供的方法来赋值和取值,我们可以在方法中添加数据校验逻辑,保证数据的合法性,这就是封装的核心价值!

3.4 封装的标准步骤(固定套路,必须背会,直接套用)

当我们用private修饰成员变量后,外部无法访问,此时必须提供对应的访问方法,这是封装的固定步骤,全网统一,没有例外 ✔️

  1. private关键字修饰所有的成员变量,私有化属性;
  2. 每一个私有化的成员变量 ,提供一对public修饰的方法:
    • setXxx(参数) 方法:给成员变量赋值 ,方法名必须是set+变量名首字母大写
    • getXxx() 方法:获取成员变量的 ,方法名必须是get+变量名首字母大写
  3. setXxx方法中,可以添加数据校验逻辑,保证数据的合法性;
  4. getXxx方法中,直接返回成员变量的值即可。

3.5 封装的完整代码示例【可直接运行,企业级规范】

这是企业开发的标准写法,必须熟练掌握,能默写出来!

✔ 示例1:JavaBean类 - GirlFriend.java(私有化属性+提供get/set方法)
java 复制代码
public class GirlFriend {
    // 1. 私有化所有成员变量,封装属性
    private String name;
    private int age;
    private String gender;

    // 2. 为每个私有化的成员变量,提供对应的get/set方法
    // name的set/get方法
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    // age的set/get方法 + 数据校验逻辑(核心)
    public void setAge(int age) {
        // 校验年龄是否合法:只允许18~25岁
        if (age >= 18 && age <= 25) {
            this.age = age;
        } else {
            System.out.println("年龄非法!请输入18~25之间的数字");
        }
    }
    public int getAge() {
        return age;
    }

    // gender的set/get方法
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getGender() {
        return gender;
    }

    // 成员方法:行为
    public void sleep() {
        System.out.println("女朋友在睡觉");
    }
    public void eat() {
        System.out.println("女朋友在吃饭");
    }
}
✔ 示例2:测试类 - GirlFriendTest.java(调用get/set方法使用对象)
java 复制代码
public class GirlFriendTest {
    public static void main(String[] args) {
        // 创建对象
        GirlFriend gf = new GirlFriend();
        
        // 调用set方法给属性赋值
        gf.setName("小浔浔");
        gf.setAge(18);
        gf.setGender("女");
        
        // 调用get方法获取属性的值并打印
        System.out.println(gf.getName());  // 输出:小浔浔
        System.out.println(gf.getAge());   // 输出:18
        System.out.println(gf.getGender());// 输出:女
        
        // 调用成员方法
        gf.eat();  // 输出:女朋友在吃饭
        gf.sleep();// 输出:女朋友在睡觉

        // 测试非法数据:赋值年龄为30
        gf.setAge(30); // 输出:年龄非法!请输入18~25之间的数字
        System.out.println(gf.getAge()); // 输出:0(默认值,未赋值成功)
    }
}

✅ 运行结果:非法数据被拦截,数据安全性得到保障,这就是封装的魅力!

3.6 封装核心总结(必背考点,笔试面试高频)

  1. private是权限修饰符,可修饰成员变量和成员方法;
  2. private修饰的成员,仅本类可见,外部类无法直接访问;
  3. 封装的标准实现:私有化成员变量 + 提供publicsetXxx/getXxx方法;
  4. setXxx方法:负责给成员变量赋值,可加数据校验,无返回值,有参数;
  5. getXxx方法:负责获取成员变量的值,有返回值,无参数;
  6. 封装的核心价值:保护数据安全,提高代码可维护性

✨ 核心知识点总结(精华提炼,查漏补缺)

✅ 面向对象核心

  1. 面向对象编程:拿对象做事情,核心是「找对象、用对象」;
  2. 学习阶段:先使用已有对象,再自定义类创建对象。

✅ 类与对象核心

  1. 类是设计图,对象是具体实例,先有类后有对象;
  2. 类的组成:成员变量(属性,名词)+ 成员方法(行为,动词);
  3. 对象的创建:类名 对象名 = new 类名();
  4. 对象的使用:对象名.属性 赋值/取值,对象名.方法() 调用行为;
  5. JavaBean类:描述事物,无main方法;测试类:测试对象,有main方法。

✅ 封装核心

  1. 封装思想:对象代表什么,就封装对应的数据和行为;
  2. 封装实现:private私有化成员变量 + publicget/set方法;
  3. 封装好处:数据安全、逻辑清晰、提高复用性和可维护性;
  4. setXxx赋值+校验,getXxx取值,是封装的标准写法。

✍️ 写在最后

本文是Java面向对象的开篇核心内容,也是最基础、最重要的部分。面向对象不是一门语法,而是一种编程思想,从面向过程到面向对象,是程序员思维的一次质的飞跃。

本节课的知识点,看似简单,但却是Java的根基:类与对象的关系、封装的思想、private的使用,这些内容会贯穿你整个Java学习生涯,所有的框架、项目、高级特性,都是基于面向对象的思想设计的。

很多同学初学面向对象会觉得抽象、迷茫,这是正常的,不用焦虑。面向对象的思想,不是靠记,而是靠练:多写几个类,多创建几个对象,多体会封装的思想,慢慢的你就会发现,面向对象的代码比面向过程的代码更简洁、更优雅、更符合现实世界的逻辑。

下一篇我们会继续讲解面向对象的核心知识点:this关键字、构造方法、标准JavaBean类,这些内容是封装的进阶,也是笔试面试的高频考点,敬请期待!

希望本文能帮你夯实面向对象的基础,吃透核心思想。如果觉得内容对你有帮助,欢迎点赞+收藏+关注 ✨,你的支持是我持续更新的最大动力!

Java学习之路,道阻且长,行则将至。愿你在面向对象的世界里,乘风破浪,稳步前行!💪


预告:Java面向对象精讲(二)

this关键字的本质与用法 + 构造方法的定义与使用 + 标准JavaBean类的编写规范 + 对象内存图解析,敬请关注~

相关推荐
齐鲁大虾1 小时前
如何通过C#调取打印机打印文本和图片
开发语言·c#
悟能不能悟1 小时前
java controller的DTO如果有内部类,应该注意什么
java·开发语言
没有才华的Mr.L1 小时前
【JavaSE】数组
java·开发语言
吴声子夜歌1 小时前
Maven——pom.xml详解
xml·java·maven
rannn_1111 小时前
【Javaweb学习|Day6】日志技术、多表查询、分页查询及优化(动态SQL)
java·后端·javaweb
松涛和鸣1 小时前
DAY56 ARM Cortex-A Bare Metal
linux·服务器·c语言·开发语言·arm开发·数据库
期末考复习中,蓝桥杯都没时间学了2 小时前
python调用百度智能云API完成文本情感分析
开发语言·python
七夜zippoe2 小时前
Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务
java·大数据·elasticsearch·集群·索引·分片
深念Y2 小时前
easylive仿B站项目 后端 单体版 项目构建
java·开发语言