面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。

现实世界中,我们定义了“人”这种抽象的概念,而具体的人则是“小明”“小红”“小军”等一个个具体的人。所以,“人”可以定义为一个类(class),而具体的人则是实例(instance)。

现实世界 计算机模型 Java代码
类/class class Person{}
小明 实例/Ming Person ming = new Person()
小红 实例/Hong Person hong = new Person()
小军 实例/Jun person jun = new Person()

同样的“书”也是一种抽象的概念,所以它是类,而《Java核心技术》、《Java编程思想》则是实例

所以只要理解了class和instance概念,基本上就明白了什么是面向对象编程。

class是一种对象模(mú)板

模板或称样板范本,通常指具有固定内容、可构建多个不同实例的可重用样板,—— 模板

intance是对象实例,instance是根据class创建的实例。可以创建多个instance,他们类型相同,但各自属性可能不同。

定义class

在Java中,创建一个类,例如给这个类命名为Person,就是定义了一个class

  1. public class Person{
  2. public String name;
  3. public int age;
  4. }

一个class可以包含多个字段(field),字段用来描述一个类的特征,上面我们定义了一个String类型的属性命名为name,还定义了一个int类型的属性,命名为age。就这样通过class,将一组数据汇集到一个对象上,实现了数据封装。

public 表示这个字段可以被外部访问。

创建实例

定义了class,只是定义了对象模板,想要根据对象模板创建出真正实例,必须使用new操作符

new操作符可以创建一个实例,然后我们需要定义一个引用类型的变量来指向实例

  1. Person ming = new Person();

上述代码创建了一个Person类型的实例,并通过ming指向它。

注意区分Peron ming是定义Person类型的变量,而new Preson()是创建Person实例。
有了这个指向实例的变量,我们就可以通过这个变量来操作实例了。访问实例变量可以用变量.字段

练习:
请定义一个City类,该class具有如下字段

  • name:名称,String类型
  • latitude:纬度,double类型
  • longitude:经度,double类型 ```java public class Main{ public static void main(String[] args) {
    1. City bj = new City();
    2. bj.name = "Beijing";
    3. bj.latitude = 39.903;
    4. bj.longitude = 116.401;
    5. System.out.println(bj.name);
    6. System.out.println("Location:"+bj.latitude+", "+ bj.longitude);
    } }

class City{ public String name; public double latitude; public double longitude; } ```

小结:

  • 在OOP中,class与instance 是“模板”和“实例”的关系
  • 定义class就是定义了一种数据类型,对应的instance就是这种数据类型的实例
  • 每个instance都会拥有各自的field,且互不干扰
  • 指向instance的变量都是引用变量