两种思想
面向过程
淘汰了 那些语言用该思想:C,汇编
概念: 只考虑事物的发展顺序 举例: 将大象装进冰箱里 步骤: 1,开冰箱门 2,放大象 3,关冰箱门
面向对象
那些语言使用该思维:Java,JavaScript,Object C,C#,go,Python...
概念: 1,先考虑事物中存在那些对象 2,在考虑对象与对象的关系
举例: 将大象装进冰箱里 这个事情中存在大象与冰箱 大象被装进了冰箱里: 开门 放大象 关门
基本概念
对象
生活中的对象:在生活中真实存在的事物
代码中的对象:在代码中虚拟的现实生活中的事物
类
生活中的类:是一种概念
代码中的类:是一种模板
既然是模板 所以可以创建很多个对象
类与对象的关系
生活中: 先有对象后有类,一个类中可以有多个对象,也可以没有一个对象
代码中: 现有类后有对象,一个类可以创建多个对象
创建类
语法: 访问权限修饰符 class 类名{ }
访问权限修饰符:暂时使用public
练习: 1,在代码中编写一个人类 代码: public class Person{ }
类中有什么
静态特征:(属性,成员变量)
举例: 如人类有身高,年龄,性别,肤色... 如水杯类有容积,颜色 称为:属性,成员变量
动态特征:(方法,函数,成员函数,成员方法)
举例: 如人类有吃饭,走路,睡觉,打游戏,学习... 如水杯类想不到动态特征,可以不用定义方法 称为:方法,函数,成员函数,成员方法
创建该类对象的特殊方法: 称为:构造函数 一个类中属性可以有多个,也可以一个没有 一个类中方法可以有多个,也可以一个没有
属性
定义的位置:类中方法外 定义的语法: 访问权限修饰符 数据类型 属性名;
方法
定义的位置:
类中方法以外
定义的语法: 访问权限修饰符 修饰符 返回值类型 方法名(形参列表){ 方法体 }
访问权限修饰符:暂时用public 修饰符:暂时不写 返回值类型:返回值的数据类型,没有返回值使用void 方法名:自定义 形参列表:声明的多个变量,使用逗号隔开 方法体:封装的代码
构造函数
作用:创建该类对象
定义位置:类中方法以外
建议:一般来说写完属性后就会定义构造函数,所以一般在属性之下方法上定义
定义语句: 访问权限修饰符 构造函数名(形参列表){ 方法体 }
注意: 1,构造函数名必须与类名一致,大小写都要一致
2,形参列表可有可无
3,没有返回值 注意: 如果一个类中没有构造函数,系统将会为其提供一个无参构造 如果一个类中有构造函数,系统将不会为其提供无参构造
关键字this
含义:谁调用this所在的方法,this就代表谁
使用场景:
1,在本类中调用本类的其他属性或方法,此时this可以忽略不写
2,当局部变量与属性(成员重名)时,this.属性名表示属性,直接写变量名是局部变量
3,调用本类其他构造函数,要求必须在构造函数第一行
如何创建对象
注意:
1,一个类可以创建多个对象
2,每个对象属性与方法属于该对象
语法: 数据类型 对象名 = new 构造函数名(实参列表);
为了方便记忆 类名 对象名 = new 类名(实参列表);
注意: 创建那个类的对象,那么该对象的数据类型就是该类 因为构造函数名与类名一致,所以方便记忆是可以记住是类名 所有类都属于引用数据类型
对象如何调用成员
属性
获取属性: 语法: 数据类型 变量名 = 对象名.属性名
赋值: 对象名.属性名 = 值;
注意:如果需要将获取的属性赋值给变量,那么变量的数据类型要与属性的数据类型相同
方法
调用方法: 对象名.方法名(实参列表);
如果调用的方法有返回值可以使用变量接收返回值 数据类型 变量名 = 对象名.方法名(实参列表);
注意:只能调用对象所属的类中有的属性或方法