面向对象基础
面向对象:强调对象,由对象去调用功能
面向过程l强调每一个功能步骤
面向对象思想:面向对象是基于面向对象过程的编程思想
面向对象思想特点:
- 是一种更符合我们思考习惯的思想
- 可以将复杂的事情简单化
- 将我们从执行者变成指挥者
举例:
买电脑:
面向过程:我要买电脑--明确买电脑的意义--上网查找对应的参数信息--去买电脑--讨价还价--买回电脑
面向对象:我要买电脑--班长去给我买--买回电脑
类与对象的关系:学习编程语言:为了把现实世界的事物模拟出来,实现信息化
如何表示现实世界的事物呢?
1.属性:就是事物的描述信息
2.行为:事物能够做什么
举例:学生
Java语言最基本的单位是类
类:是一组相关的属性和行为的集合
对象:就是该事物的具体体现
举例:
类 学生
对象 班长
类的定义:
类是用于描述现实世界的事物的
类是如何和事物进行对应的呢?
举例:
类:
学生事物:
成员变量: 属性:姓名,年龄...
成员方法:
行为:学习,吃饭
成员变量:与变量的定义一样
位置不同:类中,方法外
初始化值:不需要给初始化值
成员方法:和我们前面的方法的定义的是一样(去掉static关键字)
类的使用:使用一个类,就是使用该类的成员(成员变量和成员方法)
而我们想使用一个类的成员,必须首先拥有该类的对象
如何创建对象呢?
成员变量: 对象名.变量名
成员方法:对象名.方法名(...)
成员变量与局部变量的区别:
1.在类中的位置不同:
成员变量:类中,方法外
局部变量:方法中或者方法声明(形式产数)
2.在内存中位置不同
成员变量:堆内存
局部变量:栈内存
3.生命周期不同:
成员变量:随着对象的创建而存在,随着对象消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始化值的问题
成员变量:有默认值
局部变量:没有默认值,必须先定义,赋值,最后使用
private 关键字
通过对象直接访问成员变量,会存在数据安全问题
private关键字的特点:
是一个权限修饰符
可以修饰成员(变量和方法)
被private修饰的成员只在本类中才能访问
针对private修饰,我们会提供getXxx()和setXxx()用于
获取和设置成员变量值,方法用public修饰
封装:是面向对象提供的内容都是隐藏起来
把属性隐藏,提供公共方法对其访问
成员变量private,提供对应的getXxx()和setXxx()方法
好处:
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高代码的复用性
this关键字:
this:代表所在类的对象引用,方法被哪个对象调用,this就代表那个对象
使用场景:
局部变量隐藏成员变量
构造方法:给对象的数据进行初始化
格式:方法名和类名相同
没有返回值类型,连void都不能写
没有具体的返回值
如何调用构造方法:
通过new关键字调用
格式:类名 对象名=new 构造方法(...);
构造方法的注意事项:
1.如果我们没有给出构造方法,系统将提供一个默认的元素构造方法给我们使用
2.如果给出构造方法,系统不再提供默认无参构造方法,想使用无参构造方法,就必须自己提供
推荐:自己给出无参构造方法
3构造方法也是重载
成员变量赋值:1.setXxx()方法
2.带参数构造方法
类名作为形式参数:需要的是该类对象
返回值的问题:返回的是该类的对象