java面向对象

时间:2025-03-30 18:02:27 计算机

Java面向对象编程(OOP)是现代编程的核心范式,通过类和对象、封装、继承、多态等特性实现代码的模块化和复用。以下是核心概念的详细解析:

一、类与对象

类(Class)

类是对象的模板,定义了对象的属性(数据成员)和行为(方法)。例如:

```java

public class Cat {

String name; // 属性

int age;// 属性

void meow() { System.out.println(name + " 喵喵叫!"); } // 方法

}

```

类相当于蓝图,描述了具有相同属性和行为的对象集合。

对象(Object)

对象是类的实例,是实际存在的实体。通过`new`关键字创建:

```java

Cat myCat = new Cat();

myCat.name = "咪咪";

myCat.age = 2;

myCat.meow(); // 输出: 咪咪 喵喵叫!

```

每个对象都有自己独立的属性值,但共享类的结构。

二、封装

封装是将对象的状态(属性)和行为(方法)捆绑在一起,并隐藏内部实现细节,只暴露必要接口。例如:

```java

public class Person {

private String name; // 私有属性

private int age; // 私有属性

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() { return name; } // 公共方法

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

public int getAge() { return age; }

public void setAge(int age) { this.age = age; }

public void introduce() {

System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");

}

}

```

通过`private`修饰属性,外部无法直接访问,只能通过`public`方法操作,保障数据安全。

三、继承

继承允许一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。例如:

```java

public class Animal {

String name;

int age;

void eat() { System.out.println(name + " is eating."); }

public void introduce() {

System.out.println("Hello, I am a " + name + " who is " + age + " years old.");

}

}

public class Cat extends Animal {

void meow() { System.out.println(name + " meows!"); }

@Override

public void introduce() {

super.introduce();

System.out.println("I am also a cat.");

}

}

```

`Cat`类继承了`Animal`的属性和方法,并重写了`introduce()`方法,实现了多态性。

四、多态

多态允许不同类的对象通过相同的接口调用不同实现。例如:

```java

public class Animal {

void makeSound() {

System.out.println("Some sound");

}

}

public class Cat extends Animal {

@Override

void makeSound() {

System.out.println(name + " says meow!");

}

}

public class Dog extends Animal {

@Override

void makeSound() {

System.out.println(name + " barks!");

}

}

public class Main {

public static void main(String[] args) {

Animal cat = new Cat();

Animal dog = new Dog();

cat.makeSound(); // 输出: 猫 says meow!

dog.makeSound(); // 输出: 狗 barks!

}

}

```

通过父类引用指向子类对象,调用相同方法时执行不同实现,实现动态绑定。

五、抽象类与接口

抽象类:

不能直接实例化,必须被继承。适用于定义共同行为和部分实现。

接口:定义方法签名,实现类必须提供具体实现。适用于定义行为契约。

总结

Java面向对象编程通过类与对象、封装、继承、多态等特性,帮助开发者构建模块化、可维护的代码。理解这些核心概念是掌握Java编程的基础。