从0学开发-面向对象
1.概念
- 面向对象: 当需要实现一个功能的时候,不需要关心具体的步骤,而是找一个已具有该功能的人,来帮我做事。
- 面向过程:当实现一个功能的时候,每一个具体的步骤都要亲历亲为,详细处理每一个细节。
2. 区别
- 面向过程:强调步骤
- 面向对象:强调对象,对象是谁能帮你完成任务
3.面向对象的特点
面向对对象的思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成指挥者,面对对象的语言中,包含了三大基本特征,即:
- 封装
- 继承
- 多态
封装在java中的体现
- 方法就是一种封装:封装就是将一些细节藏起来,对外部不可见。
- 关键字private也是一种封装:用private修饰的成员变量以后,这个变量只能在这个类中使用才有效,这为什么是封装呢?因为我们在这个类的外部直接使用,但是我们可以间接使用,我们可以用类中的方法来间接使用类中用private修饰的成员变量,此时可以通过在方法中加一些限制来限制private修饰的变量的赋值或者输出等。
4. 类和对象
- 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事务的属性特征和行为特征来描述该类事物。实际中描述一类事物:
- 属性:就是该事物的状态信息(成员变量)
- 行为:就是该事物能做什么(成员方法)
举例子:小猫- 属性:名字,体重,年龄,颜色
- 行为:走,跑,叫
- 对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。
- 类和对象的关系:
- 类是对一类事物的描述,是抽象的
- 对象是是类事物的实例,是具体的
- 类是对象的模板,对象是类的实例
比如,猫是一类动物,猫这总动物又属性和行为,但是我自己养的猫是一个个体是一个实例,我养的猫就叫做对象。
5.类的定义
定义一个类,用来模拟“学生”事物,其中就有两个部分组成
- 属性(是什么)
- 姓名
- 年龄
- 行为(能做什么)
- 吃饭
- 睡觉
- 学习
对应到java的类中:
成员变量(属性):
- String name;
- int age;
成员方法(行为)
- public void eat() {};
- public void sleep() {};
- public study() {};
public class Student {
String name;
int age;
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
public void study() {
System.out.println("学习");
}
}
注意事项:
- 成员变量是直接定义在类当中的,在方法的外边
- 成员方法不要写static关键字
6.对象的创建及其应用
- 导包:指出需要使用的类在什么位置。
- import 包名称.类名称
- 对于和当前类属于同一个包的情况,可以省略导包语句不写
- 创建,格式;
- 类名称 对象 = new 类名称();
- 使用,分为两种情况
- 使用成员变量:对象名.成员变量名
- 使用成员方法:对象名.成员方法名
注意事项:如果成员变量没有进行赋值,那将会有一个默认值,规则和数组一样