面向对象
面向对象概述
面向对象思想总结:
1.面向过程:当要实现一个功能时,需要亲力亲为,处理每个细节
2.面向对象:当要实现一个功能时,不关心具体的实现步骤,只关心结果,找一个具有该功能的类,帮我们做事
3.面向对象的思想
(1)面向对象是基于面向过程的编程思想.
(2)面向过程:强调的是每一个功能的步骤
(3)面向对象:强调的是对象,然后由对象去调用功能
面向对象
的语言中,包含了三大基本特征,即封装、继承和多态。
类和对象
- 类:
是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。 - 对象:
是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。
类和对象的关系
- 类:类是对现实生活中一类具有共同属性和行为的事物的抽象
-- 类是对一类事物的描述,是抽象的。 - 对象:是能够看得到摸的着的真实存在的实体
-- 对象是一类事物的实例,是具体的。 - 简单理解:类是对事物的一种描述,对象则为具体存在的事物
-- 类是对象的模板,对象是类的实体。
类的定义和对象的创建和使用
类的定义
- java类中分为两类
- 成员变量(属性,名词):
姓名:
性别: - 成员方法(行为,动词):
吃饭:
睡觉:
- 格式
public class ClassName {
//成员变量
//成员方法
}
注意:
1.成员变量: 和之前所学的变量定义一样,只是位置放在类中,方法外. 之前方法内的变量叫做局部变量.
2.成员方法: 和之前定义方法格式相同,去掉static关键字.
3.一个类中的成员变量和成员方法是无法直接使用的, 只是对象的一个模版. 需要创建一个对象,才能够继续使用
类和对象的使用
- 类是一种引用数据类型.
使用步骤
1.导包(找到要使用的类)在同一个包内, 不用导包
java.long这个包底下的东西不用导包,可以直接使用
格式: import xxx.xxx.类名;
2.创建对象:
数组对象的创建
数据类型[] 数组名称 = new 数据类型[]
int[] arr =new int[];
类的对象创建:
类名 对象名 = new 类名();
3.对象的使用
(1) 对象名称: 对象在内存空间的地址值
(2)成员变量的使用格式:
对象名称.成员变量名称
注意:
对象的成员变量有默认初始值
数据类型 默认值
基本类型
整数(byte,short,int,long) 0
浮点数(float,double) 0.0
字符(char) '\u0000'(空白字符)
布尔(boolean) false
引用类型
数组,类,接口 null
对象的内存图解
-
方法区, 存储的是需要运行的.class文件 每个类都占有一定的空间, 同时有成员变量和成员方法占用的空间. 但是成员方法当真正需要被运行的时候, 将复制到栈内存中运行
-
堆中保存的是所有new出来的东西 , 创建的对象占有一定的内存空间, 具有成员变量(具有默认值)和成员方法地址的空间. 这里的成员方法存储的是地址.
-
栈, 所有运行方法和局部变量的存储. 当调用成员方法的时候, 栈内存中有定义的变量存储对象的地址, 找到堆内存. 然后找对堆内存中成员方法的地址值. 将方法区内的成员方法运行到栈内存中
一个对象,调用一个方法内存图
两个对象,调用同一方法内存图
![](https://img.haomeiwen.com/i11228808/9b867369fe556724.png)
![](https://img.haomeiwen.com/i11228808/94437394574f5ccc.png)
成员变量和局部变量的区别
- 在类中的位置不同 [重点]
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数) - 作用范围不一样 [重点]
成员变量:类中
局部变量:方法中 - 初始化值的不同 [重点][重点]
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用 - 在内存中的位置不同 了解
成员变量:堆内存
局部变量:栈内存 - 生命周期不同 了解
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
网友评论