Java夯实基础必背手册:面向对象初阶核心知识点汇总

Java 面向对象初阶 核心知识点汇总(必背手册级),适合零基础到入门后快速回顾、面试/考试/刷题使用。

这份总结聚焦初阶(不涉及接口、抽象类、内部类、Lambda等进阶内容),以最核心、最常考、最容易混淆的点为主,按逻辑顺序组织。

1. 面向对象思想核心(OOP三大特性)

特性定义与核心思想目的/好处关键字/实现方式经典一句话记忆
封装把数据(属性)和操作数据的方法绑定在一起,对外隐藏实现细节提高安全性、便于维护、降低耦合private + public getter/setter“把脏活累活藏起来,只给别人提供按钮”
继承子类继承父类的属性和行为,实现代码复用代码复用、建立类层次关系extends(Java单继承)“子承父业”
多态同一个行为(方法),不同对象有不同表现形式提高程序扩展性、灵活性父类引用指向子类对象 + 方法重写“一种调用,多种形态”

三大特性口诀
封装藏实现,继承求复用,多态看运行。

2. 类与对象(最基础、最重要)

  • (Class):抽象的模板,描述一类事物的属性(成员变量)和行为(成员方法)
  • 对象(Object/实例):类的具体体现,通过new关键字创建
// 定义类(模板)
public class Student {
    // 属性(成员变量)
    String name;          // 默认值 null
    int age;              // 默认值 0
    char gender;          // 默认值 

    // 行为(成员方法)
    public void study() {
        System.out.println(name + "正在学习...");
    }
}

// 创建对象(实例化)
Student s1 = new Student();     // 在堆中开辟空间
s1.name = "张三";               // 访问属性
s1.study();                     // 调用方法

内存图必会(面试/笔试常考):

  • 栈:保存引用(s1)
  • 堆:保存对象实体(属性值)
  • 方法区:保存类信息(字节码)

3. 封装(Encapsulation)——最常考的初阶点

核心操作

  1. 属性用 private 修饰(隐藏)
  2. 提供 publicgetXxx() / setXxx() 方法控制访问
public class Person {
    private String name;    // 私有化
    private int age;

    // getter
    public String getName() {
        return name;
    }

    // setter(可加逻辑校验)
    public void setName(String name) {
        this.name = name;   // this必会!
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >= 0 && age <= 150) {
            this.age = age;
        } else {
            System.out.println("年龄不合法!");
        }
    }
}

this关键字(超级高频):

  • 区分局部变量和成员变量
  • 调用本类的其他构造方法(this(参数))
  • 作为方法返回值(return this)

4. 构造方法(Constructor)——创建对象的核心

特点:

  • 方法名与类名完全相同
  • 没有返回值类型(连void都没有)
  • 每个类都有默认无参构造(你不写编译器给)
public class Car {
    private String brand;
    private double price;

    // 显式无参构造(常用于初始化默认值)
    public Car() {
        System.out.println("无参构造被调用");
    }

    // 带参构造(最常用)
    public Car(String brand, double price) {
        this.brand = brand;
        this.price = price;
    }

    // 重载构造
    public Car(String brand) {
        this(brand, 0.0);   // 构造方法间调用
    }
}

面试必问:构造方法的作用? → 初始化对象属性

5. 方法重载(Overload)——编译时多态

同一类中,方法名相同,参数列表不同(数量、类型、顺序),与返回值无关。

public void print(int a) {}
public void print(double a) {}
public void print(int a, String b) {}

6. 继承(extends)基础

public class Animal {
    String name;
    int age;

    public void eat() {
        System.out.println("吃东西");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("汪汪");
    }

    // 方法重写(Override)——运行时多态基础
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }
}

方法重写规则(必背):

  1. 方法名、参数列表必须完全相同
  2. 返回值类型:基本类型必须相同,引用类型≤父类返回值类型
  3. 访问权限不能更严格(子≥父)
  4. 抛出异常不能更广
  5. @Override 注解强烈推荐写上

super关键字(高频):

  • super.属性/方法 → 访问父类
  • super() → 调用父类构造(必须是第一行)

7. 多态(Polymorphism)——初阶最重要概念

核心一句话父类引用指向子类对象

Animal a = new Dog();    // 多态写法
a.eat();                 // 执行Dog的eat() → 汪汪吃骨头

多态使用前提(三要素缺一不可):

  1. 有继承/实现关系
  2. 子类重写了父类方法
  3. 父类引用指向子类对象

多态的好处

  • 提高代码扩展性(形参写父类类型,可传入任意子类)
  • 方法参数统一(List 可以放Dog、Cat)

缺点

  • 不能直接使用子类特有成员(需向下转型)
// 向下转型(强转)
Dog d = (Dog) a;
d.bark();   // 现在可以调用Dog独有方法

8. 访问权限修饰符(权限从大到小)

修饰符本类同包子类(不同包)不同包非子类
public
protected×
默认××
private×××

9. 快速记忆口诀 & 常考对比

  • this vs super
  • this:本类
  • super:父类
  • 重载 vs 重写
  • Overload:同一类、方法名相同、参数不同
  • Override:子父类、方法签名相同、逻辑不同
  • new vs extends
  • new:创建对象
  • extends:建立继承关系
  • private 属性 → 必须通过 public 方法访问(封装经典体现)

掌握以上内容,Java面向对象初阶基本就算打通了。建议:边背边写代码,尤其是this、super、重写、多态转型这几块,多敲几遍内存图和代码。

有具体知识点想再深入(比如this调用构造、final关键字、static初识、对象数组等),可以继续问我!加油!

文章已创建 4401

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部