694 words
3 minutes
Java SE 系列(二):面向对象

AI 智能总结

Java SE 2 面向对象#

本篇一次性吃透 Java 面向对象全套核心:类与对象、三大特性、抽象类、接口、关键字与权限修饰符,文字精炼、配套可运行代码,逻辑连贯、适合快速复盘。

一、类与对象#

类是模板,对象是实例。类定义属性和行为,对象是类的具体个体。

// 定义类
class Person {
String name;
int age;
// 成员方法
public void say() {
System.out.println(name + " " + age);
}
}
// 创建对象
public class Demo {
public static void main(String[] args) {
Person p = new Person();
p.name = "张三";
p.age = 20;
p.say();
}
}

二、面向对象三大特性#

1. 封装#

隐藏内部数据,仅对外暴露访问方式,保证数据安全。核心:私有成员、公开 get/set。

class User {
private int id; // 私有,外部无法直接访问
public int getId() { return id; }
public void setId(int id) { this.id = id; }
}

2. 继承#

使用 extends 实现子类复用父类代码,实现代码复用,单继承。

class Animal { public void run(){} }
class Dog extends Animal {
// 复用并拓展父类
}

3. 多态#

父类引用指向子类对象,配合方法重写实现不同子类不同表现。

// 父类引用指向子类对象
Animal a = new Dog();

三、抽象类 abstract#

用 abstract 修饰,有抽象方法必须为抽象类,不能实例化,强制子类重写抽象方法。

abstract class Shape {
public abstract void draw(); // 抽象方法无实现
}

四、接口 interface#

行为规范,完全解耦,JDK8 + 支持默认方法、静态方法。 接口默认变量 public static final,抽象方法默认 public abstract。

interface Move {
void move();
}

五、this 与 super#

this:指代当前对象,调用本类属性、方法、本类构造器
super:指代父类对象,调用父类属性、方法、父类构造器

public Person(String name){
this.name = name; // 本类成员赋值
}
public Student(){
super(); // 调用父类构造
}

六、内部类#

定义在类内部的类,分为成员内部类、局部内部类、匿名内部类,常用于快速实现接口 / 抽象类。

new Move(){
@Override
public void move() {}
};

七、权限修饰符(访问范围从大到小)#

public:任意位置访问
protected:同包、子类访问
默认 (包访问):仅同包访问
private:仅本类访问

八、static & final#

static#

修饰静态资源,属于类而非对象,全局共享,可直接通过类名调用。

static void show(){}

final#

修饰变量:常量,不可修改
修饰方法:禁止重写
修饰类:禁止继承


整套知识点构成 Java 面向对象体系主干:用类与对象建模,封装保安全、继承提复用、多态扩拓展,抽象类与接口统一规范,权限与关键字精准控制代码特性。

Java SE 系列(二):面向对象
https://fuwari.vercel.app/posts/java-se-series/java-se-02-object/
Author
Zero02
Published at
2025-01-12
License
CC BY-NC-SA 4.0