Java基础知识part6(面向对象)

1.面向对象
面向对象思想是一种基于面向过程的编程思想

面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能

面向对象的思想特点:
A:是一种符合我们思考习惯的思想
B:可以将复杂的事情简单化
C:让我们从执行者变成指挥者

2.类与对象的关系
属性:事物的描述信息---------成员变量
行为:就是事物能够做什么-----------------成员方法

java语言最基本的组成单位就是类,是通过类来体现事物的

类:是一组相关的属性和行为的集合
对象:就是该类事物的具体表现

事物-------------类
属性-------------成员变量
行为-------------方法

成员变量:和变量的定义是一样的,但有两个小区别
1.位置不同:类中,方法外
2.初始化值:成员变量不需要给初始化值也可以使用,因为它有默认值

成员方法:和方法的定义是一样的,但有个小区别。
1.去掉了修饰符中的static关键字

需求:定义一个学生类:
学生事务:
属性:姓名,年龄。。。。
行为:学习,吃饭。。。。。
学生类:
成员变量:姓名,年龄。。。。
成员方法:学习,吃饭。。。。

学生类的使用:
创建对象格式: 类名 对象名 = new 类名();
访问对象格式:
访问成员变量:对象名.成员变量
访问成员方法:对象名.成员方法(。。。。)

对象名其实就是一个地址值
1.1
引用类型(数组、String、接口、类)的默认值是NULL
扩展:
在这里插入图片描述
1.2

练习:手机类的练习
1.3
1.4
一个对象的内存图:
1.5

两个对象的内存图
1.6
两个引用指向一个堆内存
1.7

成员变量和局部变量的区别
A:在类中的位置不同:
成员变量:在类中,方法外
局部变量:在方法中或方法声明中(形式参数)(形式参数也是局部变量)
B:在内存的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认值
局部变量:没有默认值,必须先定义,赋值,最后使用

private关键字
private:
是一个修饰符
可以修饰成员变量,也可以修饰成员方法
被private修饰的成员只能在本类中被访问

针对被private修饰的成员变量,相应的给出getXXX()和setXXX()用于获取和设置成员变量的值,方法用public修饰
1.8

private最常见的应用:
1.把成员变量用private修饰
2.提供对应的getXXX()/setXXX()方法
1.9
2.0

封装概述的好处
面向对象三大特征:继承、多态、封装

封装的原则:
1.将不需要对外提供的内容都隐藏起来
2.把属性隐藏,提供公共方法对其访问(成员变量private,提供对应的getXXX()/getXXX()方法)

好处:
1.通过方法来控制成员变量的操作,提高了代码的安全性
2.把代码用方法进行封装,提高了代码的复用性

this关键字:代表所在类的对象引用
方法被哪个对象调用,this就代表谁

使用场景:就是用于解决成员变量被隐藏的问题(当成员变量名和局部变量名相同并同时使用时,会采取就近原则,从而导致成员变量被局部变量覆盖)

构造方法:用于给对象的数据进行初始化
格式:
方法名和类名相同
没有返回值
构造方法的调用格式:
类名 对象名 = new 构造方法名(。。。。);
在这里插入图片描述

构造方法的注意事项:
A:如果我们没有给出构造方法,系统将给出一个默认的无参数的构造方法供我们使用
B:如果我们给出了构造方法,系统将不再提供默认的构造方法供我们使用。
这时候,我们如果还想使用无参数构造方法,就必须自己提供
推荐自己给出无参数构造方法
C:构造方法也是可以重载的
2.2

标准类的代码写法和测试

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值