OOP
面向对象编程(Object-Oriented Programming,OOP)
Java的编程单位是类,对象通过类进行实例化(“创建”)
三个特性:
- 封装 Encapsulation (C++在类外可以定义函数)
- 继承 Inheritance
- 多态 Polymorphism
抽象数据类型
类就是模版
Java中用class表示一个类,类是一个抽象的数据类型 (C++中用struct表示一个类)
类和对象
面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
对象是对问题领域中事件的抽象。对象具有以下特性:
- 万物皆为对象 (问题领域中的实体和概念都可以抽象为对象。)
- 每个对象都是惟一的
- 对象具有属性和行为
- 对象具有状态 (状态是指某个瞬间对象的各个属性的取值。)
- 每个对象都是某个类的实例
类是具有相同属性和行为的对象的集合。
- 同一个类的所有实例都有相同属性,但属性取值不一定相同,事实上它们的状态不一定相同。
- 同一个类的所有实例都有相同行为,意味着它们具有一些相同的功能。
类是一组具有相同属性和行为对象的模板。面向对象编程的主要任务就是定义对象模型中的各个类。
- 类是一种类型:是引用类型
- 类是元数据:描述数据的数据
(因为数据在面向对象领域里以对象的形式存在,所以类是对象共有属性和方法的抽象描述。)
Java程序是各种对象相互交互作用、而不是类。
在java中,类的声明和实现在同一时间,而且必须在一起.
在C++中,类的声明和实现可以被分开.
类中方法的定义
修饰符 返回类型 方法名(参数列表)异常抛出类型 { …… }
- 必须有返回值,如果方法没有返回值,必须用void声明返回类型。
- 构造器没有返回类型,构造器加上了返回类型就变成了一个普通方法的声明了。
- 方法的修饰符可以同时有多个(多个修饰符之间没有先后顺序)
return_type:
如果方法定义了返回类型,那么在方法体里面就必须出现return语句,而且返回的数据类型要和声明一致;
如果没有返回类型的话(void),那么方法体里面可以写return,也可以不写return。当代码执行了return语句,就不往下执行了,直接退出这个方法并返回。
方法中定义的参数通常叫做形参,调用有参数的方法时,通常会传递一些实参给方法