什么是面向对象

  • 物理类聚,分类的思维模式,思考问题首先会解决问题需要那些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
  • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。
    对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思想去处理。

面向对象的三大特性

  • 封装
  • 继承
  • 多态
    面向对象的本质就是:以类的方式组织代码,以对象的组织(封装)数据。

对象:具体的事物。
类:是抽象的,是对对象的抽象。
类是对象的模板。是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物,

创建于初始化对象

使用new 关键字创建关键对象:除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用。
类中的构造器(构造方法),是在创建对象时必须调用的。并且构造器有以下特点:

  • 方法名必须和类名相同
  • 必须没有返回类型,不能写空。
public class Person {
    protected String name;
    protected  int age;
    protected char sex;

    public Person() {//无参构造器
    }
    public Person(String name, int age, char sex) {  //有参构造器
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
 }

关于构造器:
1、一个类中若无构造器,Java会为其生成一个默认无参的构造器
2、在类中若定义了有参构造器,则必须定义无参构造器

类的成员

类中的成员包括属性和方法。属性有类变量(static修饰),实例变量。
方法有静态方法(static)和非静态方法。

public class Person {
    private String namne;//实例变量,非静态变量 属于对象
    private static int sex;//类变量,静态变量 属于类 为所有对象共有
    public void run(){//非静态方法
    }
    public static void eat(){//静态方法
    }
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.namne);//借用对象调用非静态变量
        System.out.println(sex);//静态方法直接调用静态方法
        eat();//方法同上
        person.run();
    }
}