什么是面向对象
- 物理类聚,分类的思维模式,思考问题首先会解决问题需要那些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。
对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思想去处理。
面向对象的三大特性
- 封装
- 继承
- 多态
面向对象的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
类
对象:具体的事物。
类:是抽象的,是对对象的抽象。
类是对象的模板。是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物,
创建于初始化对象
使用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();
}
}