目录
前言
简单解读了面向对象和面向过程中的区别,以及核心概念。
一、面向对象是什么?
如果代入生活之中,个人觉得面向过程是针对于完成某一件事所需要的各个步骤之间的解析,而面向对象是针对某一个对象所需要经历的各个事件。面向过程是从微观角度实现具体细节,而面向对象是从宏观角度把握问题的整体。但是最终回归本质,都是为了解决生活中的实际问题而存在的。
二、核心概念
1.类和对象
类是对一类事物的总称,在程序中就是描述这类事物的class文件,而对象就是这类事物中具体的某一个个体,在程序中就是new出来的内存空间。
类名: 给某一类事物取个名字: People。
对象:通过类名创建这个类的对象。
注意:类名不能直接访问它里面的属性和方法,必须由类的对象访问。
静态的特征称为属性: 姓名,年龄,身高,体重 (定义变量的语法)。
动态的行为称为方法: 吃饭,睡觉,打豆豆 (定义方法的语法)。
在类中定义的属性,称为“成员属性” ,在类中定义的方法称为“成员方法” 。
2.面向对象的三大特征
面向对象的三大特征:封装、继承、多态。
封装: 将类中成员属性 私有化,并提供公有的访问属性的方法。 为了最大程度保护类中属性的隐蔽性(不被其他对象改变。)
继承: 用于定义类与类的关系的方式 ,一个类可以继承一个类。
多态: 在继承关系中,一个类的对象可能呈现不同的状态。
3.构造器
定义: 在创建对象时被自动调用的特殊方法,也称为构造方法。 在一个类中除了包含属性,方法以外,还可以包含 构造器(构造方法)
每一个类都自带一个无参构造器,也可以在这个类中定义多个构造器,多个构造器之间称为“构造器重载”。
4.类与类的关联关系:
定义一个People类,其中name属性 ,
定义一个Dog类 包含dogName ,dogColor
将People类与Dog类关联关系 ,在People类中 创建Dog类的引用
public class People {
String name;
// 在People类中 建立 People对象与Dog对象的关系
Dog dog;
public People(String name){
this.name = name; // 将形参name 赋值给 当前对象的成员属性name
}
}
public class Dog {
// 由于以下属性 属于狗的特征,所以必须放在Dog类中,而不能放在People类
String dogName;
String dogColor;
/**
* 创建Dog对象时 初始化狗的基本属性
* @param dogName
* @param dogColor
*/
public Dog(String dogName ,String dogColor){
this.dogName = dogName;
this.dogColor = dogColor;
}
}