思想:非常高度概括的思想和行为的准则
编程思想:指引我们编程(开发/写代码)的原则
经典代表:C语言
程序的最小单位是函数。一个函数代表一个功能
程序员关注的角度:把大的功能分解为一个一个小的功能。只关注怎么做。
面向过程是把数据与功能分开的。
面向对象的编程思想:
经典代表:Java语言
程序的最小单位是类/对象。
程序关注的角度:把复杂的业务逻辑/功能中先抽取出“类”,然后再考虑这个类能包含什么属性、方法等
面向对象是把数据和功能(行为)合起来。关注“谁”做
面向对象的程序员从执行者的角度转变为指挥者的角度。
例如:
把大象装进冰箱的问题?
面向过程:
(1)把冰箱门打开
(2)把大象装进去
(3)把冰箱门关上
面向对象:
人、冰箱、大象
1、类与对象
2、面向对象的基本特征:封装、继承、多态
3、相关关键字和API
4、面向对象的编程的原则和设计模式等
例如:苍老师,宋老师,柴老师...
相同:
属性:姓名、年龄、性别....
行为:吃饭、睡觉、讲授技术...
Teacher类,宋老师是Teacher类的具体的实例,个体,对象
类与对象的关系:
类是众多对象的抽象的描述,类是对象的设计图,创建对象的模板
对象是类的个体,具体的实例
类的提取:
名词提取法,转换为现实世界中的事物的类别==》计算机程序中的类
类的设计:
类的成员的设计
5大成员(5大组成部分):
1、属性:数据特征
2、方法:行为特征,功能特征
3、构造器:创建对象时用
4、代码块:在类初始化和对象初始化时用的
5、内部类:在某个大的事物中,包含了一个独立的小的事物类别,而且一般这个小的事物只为大的事物服务时
类{
成员列表
}
1、类的声明的格式:
【修饰符】 class 类名{
}
例如:
class Person{
}
说明:类名,每一个单词的首字母都大写
回忆:如果有一个类是public的,那么源文件名必须与类名相同
(1)属性的声明
【修饰符】 数据类型 属性名;
3、如何用类来创建对象?
语法格式:
类名 对象名 = new 类名();
对象名其实也是变量名/对象的引用
对象名/变量名:从第二个单词开始首字母大写
4、为某个对象的属性赋值
对象名.属性名 = 值;
属性的特点:
1、属性有默认值
原则和数组的元素的默认值一样。
(1)基本数据类型
byte,short,int,long:0
float,double:0.0
boolean:false
char:\u0000
(2)引用数据类型:null
例如:String是引用数据类型
2、每一个对象的属性值是独立的
方法(method)又称为函数(function)。
方法是代表一个独立的可复用的功能。
例如:Math.random(),代表产生[0,1)随机值的功能
Math.sqrt(x),代表求x的平方根的功能
声明方法的好处:
(1)代码的复用
(2)简化程序员的代码量:使用者不管关心方法的内部如何实现的,
只要关注这个方法:功能、是否需要传参数、是否有返回值等问题
1、如何声明一个方法?
【修饰符】 返回值类型 方法名(【形参列表】){
方法体:实现代码的功能
}
【修饰符】:今天先不讨论
返回值类型:
(1)void:代表无返回值,
(2)非void:可以是任意的Java数据类型,包括8种基本数据类型、所有的引用数据类型
方法名:
(1)见名知意:能够体现这个方法的功能
(2)和变量名一样,从第二个单词开始首字母大写
(【形参列表】):
(1)():无参
(2)(形参列表):有参
三、有参无返回值的方法
1、声明格式
【修饰符】 void 方法名(形参列表){
方法体
}
形参列表的格式:
(数据类型 形参名)
(数据类型1 形参名1, 数据类型2 形参名2, …)
2、调用格式
(1)本类同级别
方法名(实参列表);
(2)其他类中
对象名.方法名(实参列表);
3、两个名词:
形参列表:声明时()中
(数据类型1 形参名1, 数据类型2 形参名2, …)
(int n,int m, char x)
实参列表:调用时()中
(3,5,’%’)
(a,b,c)
5、实参与形参
实参是赋值给形参赋值
要求,实参的个数、类型、顺序与形参一一对应