Java基础直通车——认识面向对象
前言
在聊面向对象之前我们先来了解一下编程思想的改变历程,早期的编程思想叫做面向过程编程,例如C语言。这种编程思想是强调程序头到尾,一步一步,步步衔接的来完成程序最终要解决的需求。
这就好像小王要自己一个人做辣子鸡这道菜:
- 第一步,自己买鸡肉;
- 第二步,自己洗干净肌肉;
- 第三步,自己切鸡肉;
- 第四步,装备辅料;
- 第五部,自己生火做菜。
可以看出过程繁琐,考虑完所有步骤后,思考了半个小时的王师傅拿起手机点了份外卖**叫花鸡(**~ ̄▽ ̄)~ ;
那么再来看看后来者面向对象的特点:面向对象编程,强调事情由谁来做。把要解决的问题,按照一定规则划分为多个独立的对象,再调用对象解决问题。一个应用程序通常包含多个对象,有时需多个对象相互配合来实现指定功能。当功能发生变动时,只需修改个别的对象就可以了,从而使代码更容易维护。
面向对象有什么好呢? 小王有了对象, 今天又想吃辣子鸡了:
- 小王对象,去市场买鸡肉;
- 小王,把对象买来的鸡肉洗净在切好;
- 小王对象,帮忙准备辅料;
- 小王,生活做菜。
可以看出,这些事不再是有小王一个人负责, 而是一人做一些。而且,如果中途小王对象突然想吃叫花鸡了只需要将辅料准备成相对应的就行,而不是一改全改。
类与对象
什么是类呢?类就是对一类具有相同特性和共通行为的群体或事物的抽象描述。什么意思呢? 所有温柔、漂亮、身材好的女性对于男性来说都可以叫理想老婆;所有又高又帅又多金的男性对女性都可以统称为理想老公。所谓【理想老婆】【理想老公】就叫做类。
定义语法:
[修饰符] class 类名{
// 成员变量;
// 方法;
}
那什么是对象呢?对象是类的实例,是个体,在理想老公和理想老婆中只能有一个是真正合法的老公/老婆。在Java中,对象通过 new 关键字来创建,
语法: 类名 实例名 = new 类名(参数);
每一个通过 new 关键字创建出来的实例对象都是唯一且不相等的;
构造器
类想要创建实例对象,构造器是必不可少的。new 关键字就是构造器的引用;
若在设计类是并未自己设计构造器,那么JVM在会帮我们创建一个无参构造器
public 类名() {} // 无参构造器
有无参,那么就会有有参,语法:
[修饰符] 类名(参数列表) {
语句体;// 一般为 this.属性名 = 参数名;
// 也可加入额外逻辑: if (age > 18){this.age = age(参数)}
}
类的成员
成员变量:作用域在整个类中有效
方法:类的行为,由局部变量和若干语句组成的可以完成一定功能的代码块;
语句:例如 int a = 1; 或 boolean = (a + 1 ) > 2;
局部变量:作用域只在当前最近的一对 {} 中
面向对象的三大特征、
封装
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现节
继承
继承性主要描述的是类与类之间的关系,通过继承,可在无需重新编写原有类的情况下,对原有类的功能进行扩展。继承不仅增强了代码的复用性,提高了程序开发效率,而且为程序的修改补充提供了便利。
多态
同一操作作用于不同类型的对象,会产生不同的执行结果。
JavaBean规范
- 所有类必须公开
- 成员变量必须私有
- 必须有无参构造器;
- 每一个成员变量都有一对getter和setter;