面向对象编程(OOP),英文全称为Object Oriented Programming,除了OOP(面向对象编程)外,还有OOD(面向对象的设计)、OOA(面向对象的分析)。
在早期的编程语言中,都是以面向过程编程为主,那么面向过程和面向对象又有什么区别?这里我引用什么是面向对象(OOP)一文的一个例子:
有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择:
1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
2、去饭店,张开嘴:老板!来一份鱼香肉丝!
看出来区别了吗?1是面向过程,2是面向对象。
其实究其根本,面向对象编程最底层也是面向过程编程,只不过我们将某些特定功能抽象成了类(Class),然后对其进行封装,在需要该功能的时候只需要调用这个封装好的类即可。
那么面向对象编程又有什么优势呢?
1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
4、易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
Java中定义一个类的基础语法为:
class TestClass{ ...... //类主体 }
需要注意的是,类的命名需要遵循大驼峰原则命名,即每个单词的首字母都需要大写。
public
权限类的定义必须保存在与类名相同的文件中,这个限制不适用于非公共类。
Java类中,字段(field)是变量,字段可以是基本类型,也可以是对象的引用,例如:
class TestClass{ int age = 18; //基本整型 OtherClass name; //OtherClass对象的引用,格式为:<类名> <类的变量> }
与类的命名不同的是,字段的命名需要遵循小驼峰原则,即第一个单词首字母不大写,其余每个单词首字母都需要大写。
方法(method)定义了一个类的对象(或类的实例)可以执行的动作(功能)。方法包括声明部分和主体部分,声明部分由返回值、方法名、参数列表组成,主体部分则包含了操作执行的代码。
定义方法的基础语法如下:
returnType methodName (ListOfArg){ //声明部分,也称方法签名 ...... //主体部分 }
例如:
String getName (String name){ //String表明该方法将返回一个String类型的结果,String name表明该方法需要传入一个Sring类型的变量 return name; } OtherClass getAge (int age){ //该方法将会返回一个OtherClass对象,并且需要传入一个int类型的变量 return age; }
方法的返回类型(Return Type)可以是基本类型(String、int、double等)、对象、void
(为空)。
返回类型为void
则表明该方法不返回任何东西。