Java的面向对象

Java 是一种面向对象的编程语言,其核心思想是围绕“对象”和“类”来组织代码和数据。以下是 Java 面向对象编程(OOP)的主要知识点和总结:

1. 类和对象

  • :类是对象的蓝图或模板,定义了对象的属性(成员变量)和行为(方法)。
  • 对象:对象是类的具体实例,通过类创建。对象具有状态(成员变量的值)和行为(调用方法)。

class Car { String color; // 成员变量

void start() { // 方法

System.out.println("Car started");

    }

}

2. 封装(Encapsulation)

  • 封装是将对象的状态(属性)和行为(方法)封装起来,对外界隐藏对象的内部细节,只通过公开的接口(方法)来与对象交互。
  • 通常通过访问修饰符(privateprotectedpublic)来实现封装。

class Person { private String name; // 私有属性

public String getName() { // 公开的getter方法

return name;

}

public void setName(String name) { // 公开的setter方法

this.name = name;

}

}

3. 继承(Inheritance)

  • 继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用。
  • Java 中类只能单继承,但可以多层继承。

class Animal {

void eat() {

System.out.println("Animal is eating");

}

}

class Dog extends Animal { // Dog 类继承了

Animal 类 void bark() { System.out.println("Dog is barking");

}

}

4. 多态(Polymorphism)

  • 多态指的是同一个接口或方法在不同对象中有不同的实现方式。多态分为编译时多态(方法重载)和运行时多态(方法重写)。
  • 方法重载(Overloading):同一个类中可以有多个方法名称相同,但参数列表不同(参数类型、顺序或个数不同)。
  • 方法重写(Overriding):子类可以重写父类的方法,提供自己的实现。

// 方法重载

class MathOperation {

int add(int a, int b) {

return a + b;

}

double add(double a, double b) {

return a + b;

}

}

// 方法重写

class Animal {

void sound() {

System.out.println("Animal makes a sound");

}

}

class Dog extends Animal {

@Override

void sound() {

System.out.println("Dog barks");

}

}

5.抽象(Abstraction)

  • 抽象是通过抽象类或接口来实现的,抽象类不能实例化,通常包含抽象方法(没有具体实现的方法)。
  • 抽象类:用 abstract 关键字定义的类,可以包含抽象方法和具体方法。
  • 接口:Java 中接口是完全抽象的,所有方法默认是 public abstract,属性默认是 public static final

abstract class Shape {

abstract void draw(); // 抽象方法

}

class Circle extends Shape {

void draw() {

System.out.println("Drawing a circle");

}

}

interface Drawable {

void draw(); // 接口中的抽象方法

}

6. 接口(Interface)

  • 接口定义了行为的规范,类可以实现一个或多个接口,并且必须实现接口中定义的所有抽象方法。
  • Java 8 以后,接口可以有默认方法和静态方法。

interface Flyable {

void fly();

}

class Bird implements Flyable

面向对象编程总结

1. 基本概念
  • 类和对象:类是对象的蓝图,对象是类的实例。通过类定义属性和方法,实例化类生成对象。
2. 封装
  • 封装是隐藏对象的内部状态,只通过公开的方法来访问和修改数据,增强了数据安全性。
3. 继承
  • 继承是代码重用的机制,允许子类继承父类的属性和方法,支持多层次的类组织。Java 只支持单继承。
4. 多态
  • 多态允许同一方法名称在不同对象中实现不同的功能。支持方法重载(编译时多态)和方法重写(运行时多态)。
5. 抽象
  • 抽象通过抽象类和接口来实现,帮助定义行为的接口,隐藏复杂实现,使得代码更易扩展。
6. 接口
  • 接口定义了一组抽象方法,可以被多个类实现,支持多重继承。Java 8 引入的默认方法和静态方法,使接口更加强大和灵活。

面向对象的优势

  • 代码复用:通过继承和组合实现。
  • 灵活性和可维护性:通过多态和封装,代码的变化不影响其他部分。
  • 易于理解和使用:自然的模型映射现实世界,更容易进行抽象思考。

总结要点

  • 面向对象编程强调对象的封装、层次化结构、灵活性和代码复用,提供了一种组织和管理代码的高效方法。掌握这些基本概念和设计原则是编写高效 Java 程序的关键。

你可能感兴趣的:(java,开发语言)