Java面向对象

前言

面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)面向对象设计(OOD)、**面向对象程序设计(OOP)**等新的系统开发方式模型的研究。对 Java语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。面向对象的思想是将数据作为第一位,方法为其次,是对数据的优化,面向对象操作起来更加方便,简化了过程。

Java面向对象程序设计概念OOP(Object Oriented Programming)

对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。

对象有以下特点:

  • 对象具有属性和行为。
  • 对象具有变化的状态。
  • 对象具有唯一性
  • 对象都是某个类别的实例。
  • 一切皆为对象,真实世界中的所有事物都可以视为对象

例如:

  • 在真实世界的学校里,会有学生和老师等实体,学生有学号、姓名、所在班级等属性(数据),学生还有学习、提问、吃饭和走路等操作。学生只是抽象的描述,这个抽象的描述称为“类”。在学校里活动的是学生个体,即张同学、李同学等,这些具体的个体称为“对象”,“对象”也称为“实例”。

面向对象与面向过程区别

面向过程

面向过程编程(POP),POP是一种基本的编程思想,是将一件事情按流程逐步实现。这种思想强调事情完成的过程,分析步骤写出相应的代码,如一个人走路,POP需要将走路的每一个步骤都用代码描述出来,先迈左脚还是右脚,每一步的距离,都是需要考虑到的。

面向过程:

面向对象编程(OOP),则不需要理会那么多繁琐的步骤,直接创建一个人的对象,赋予其走的行为就可以了。所以面向对象编程的思想更致力于将计算机中的世界描述的和现实当中一致,将解决问题的对象创建出来,赋予对象对应的行为和属性让这些对象互相配合完成,实现最终效果。

类和对象

类(class)

具有相同属性和行为的对象集合,它是一个抽象概念,不指向任何具体的实物

**属性:**描述对象的特征,在程序中,具体成员变量

**行为:**对象1具有的动作或能力,在程序中,体现为方法

定义类:

[修饰符] class类名{

属性(变量)

行为(方法)

}

public class Cat {
    //定义属性(成员变量)
    String brand;//品牌
    String clor;//颜色
    int seat;//座位数
    //定义方法(行为)
    void go(){
        System.out.println("正在行驶");
    }
    void stop(){
        System.out.println("骑车停下来了");
    }
    void fly(){
        System.out.println("骑车飞起来了");
    }
}

对象(Object)

对象是类的一个具体的实例,是类的具体的表现

  • 创建对象的语法:
    类名 对象名=new 类名([参数]);
  • 读写属性
    对象名.属性名
  • 调用方法
    对象名.方法名([]);
public class CarTest {
    public static void main(String[] args) {
        //创建一个Car类的对象,(实例化)
        Car car = new Car();
        //设置类的属性
        car.brand="长安";
        car.clor="白色";
        car.seat=5;
        System.out.println(car.brand+car.clor+car.seat);
        //执行对象行为(调用对象的方法)
        car.go();
        car.stop();
        car.fly();
    }
}

类和对象的关系

  • 对象是类的具体表现,类是对象的集合(模板)。

如:包饺子时的模具就是一个类,每次用模具包出来的饺子都是一个个对象。先定义模板类,才能通过类创建出对象。

  • 通过new关键词创建(实例化)对象