面向对象是一种先进的编程思想
编程思想的对比
六七十年代,先后诞生了两种编程思想,它们的编程侧重点不同。面向过程编程的侧重点在于找出程序应该分几步,面向对象编程的侧重点在于找出程序应该包含哪些物体。
面向过程的编程思想
在开发复杂需求(如赛车游戏)的时候,程序会涵盖非常多的步骤,这些步骤不是每个人都有能力分析出来的,所以面向过程编程的门槛较高。
面向对象编程思想
面向对象编程思想恰恰解决了上述问题,恰恰降低了编程门槛。对象一词是从英文单词Object翻译而来的,它还具有物体、东西之意。所谓面向对象编程,就是面向物体编程。这是借鉴生活经验解决编程问题的思想,生活中人人都具备这样的习惯,所以编程门槛被大大降低了。
如何运用面向对象思想进行编程
如何创建赛车对象
技术源于生活,Java中创建对象的方式借鉴了生活的经验。以造车为例,生活中是先有设计图,然后工厂依据设计图造出车来。
Java中创建车对象的方式,和生活中的方式十分相似,我们用一个java文件来充当设计图,描述清楚车应该具备的特征,然后以JVM为工厂造出车对象来。
Java是以“.java”文件来模拟生活中的设计图的,该文件的代码结构,参考如下代码:
public class Car {
......
}
使用该文件,创建车对象的代码如下:
Car c = new Car();
面向对象编程的关键是定义类
什么是类
1. 设计图描述了某一类物体的特征,称为“类”。
2. 类是个概念,是抽象的,它不是具体的实物。
3. 类是我们自定义的数据类型。
public class Car {
...
...
...
}
如何定义类属性:对象的静态特征,用变量来描述,这样的变量叫做成员变量。
行为:对象的动态特征,用方法来描述,这样的方法叫做成员方法。
public class 类名 {
属性
行为
}
声明变量的语法
修饰符 class 类名 {
修饰符 数据类型 变量名1 = 初始值;
修饰符 数据类型 变量名2;
......
}
成员变量的默认初始值
声明成员方法的语法成员方法不能被static修饰。
成员方法可以直接访问成员变量。
成员方法可以直接访问成员方法。
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...) {
...
return 返回值;
}
作业
1.模拟开发一个宠物驯养游戏,为此游戏定义一个“马”类。类中包含4个属性:品种、颜色、年龄、性别。为该类定义一个吃饭的成员方法,方法内打印“马吃草”,再定义一个奔跑的方法,方法内打印“马跑的很快”。
2.为宠物驯养游戏定义一个“饲养员”类,类中包含2个属性:姓名、年龄。并在此类中定义如下成员方法:(1)定义喂马的方法,参数为“马”,方法内打印“xxx在喂马”,然后调用马的吃饭方法。(2)定义骑马的方法,参数为“马”,方法内打印“xxx在骑马”,然后调用马的奔跑方法。(3)定义介绍马的方法,参数为“马”,方法内打印出马的相关信息,格式参考第3题图示。
3.开发宠物驯养游戏,在main方法中做出如下操作:
(1)创建马对象,并为其属性赋值。
(2)创建饲养员对象,并为其属性赋值。
(3)依次调用饲养员的喂养、骑马、介绍方法。
(4)上述代码的打印结果参考下图。