导图社区 面向对象基础
.面向对象设计中,类封装了数据,而类的成员函数作为其对外的接口,抽象地描述类,用类将数据和操作这些数据的函数放在一起,这就是面向对象设计方法的本质。
编辑于2022-09-26 20:27:41 四川省listener 音标['lisnә] 读音 汉语翻译 n. 收听者, 听众 英语解释: 名词listener: someone who listens attentively 同义词:hearer, auditor, attender
Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。 1、Filter快速入门 1.1、步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方法 d...
会话的解释 [conversation] 指两人以上的对话(多用于学习别种语言或方言时) 详细解释 (1).聚谈;对话。现多用于学习别种语言或方言时
社区模板帮助中心,点此进入>>
listener 音标['lisnә] 读音 汉语翻译 n. 收听者, 听众 英语解释: 名词listener: someone who listens attentively 同义词:hearer, auditor, attender
Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。 1、Filter快速入门 1.1、步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方法 d...
会话的解释 [conversation] 指两人以上的对话(多用于学习别种语言或方言时) 详细解释 (1).聚谈;对话。现多用于学习别种语言或方言时
面对对象基础
介绍
面向过程编程(POP)
是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的
面向对像编程(OOP)
是一种以对象为中心的编程思想,通过指挥对象实现具体的功能
面向对象思想使是基于面向过程思想演变而来
类和对象
类
介绍
类是对现实生活中一类具有共同属性和行为的事物的抽象
【类】是对事物,也就是对象的一种描述,可以将类理解为一张设计图根据设计图,可以创建出具体存在的事物
组成
属性
该事物的各种特征
在代码中通过成员变量来体现(类中方法外的变量)
成员变量和局部变量区别
类中位置不同
成员变量:类中方法外
局部变量·:方法内或者方法声明上(形参)
内存中位置不同
成员变量:堆内存
局部变量·:栈内存
生命周期不同
成员变量:随着对象的存在而存在,随着对象的消失而消失
局部变量·:随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同
成员变量:有默认的初始化值
局部变量·:没有默认的初始化值,必须先定义,赋值,才能使用
行为
该事物存在的功能
在代码中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
定义
步骤
1.定义类
2.编写类的成员变量
3.编写类的成员方法
对象
介绍
是能够看得到摸的着的真实存在的实体
对象也指客观存在的事物,JAVA中万物皆对象
创建
创建流程
1.加载指定的字节码文件进内存
2.通过new在堆内存中开辟空间,并分配首地址值
3.对对象中的属性进行默认初始化
4.调用与之对应的构造函数,构造函数压栈
5.构造函数中执行隐式的语句super()访问父类中的构造函数
6.对属性进行显示初始化
7.调用类中的构造代码块
8.执行构造函数中自定义的初始化代码
9.初始化完毕,将地址赋值给指定的引用
使用
使用成员变量
使用成员方法
对象打印细节
解释
com.itheima.object1.Student
全类名(包名+类名)
关系
类是对象的描述,对象是类的实体
对象内存图
单个对象
注意
成员方法不会进入堆内存,但会储存成员方法的地址
两个对象
注意
多个对象使用的是同一份字节码文件,同一份成员方法,成员变量则不同
两个引用指向同一对象
注意
垃圾回收
当堆内存中,对象或数组产生的地址,通过任何方式都不能被找到后,就会被判定为内存中的“垃圾"
垃圾会被Java垃圾回收器,空闲的时候自动进行清理
封装
private关键字
介绍
private是一个权跟修饰符,可以用来修饰成员(交量,方法)
特点:只能在本类当中进行访问
私有成员变量后需设置set、get方法,可在方法内设置条件判断
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()"方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
this关键字
介绍
当局部变量与成员变量重名时,JAVA会采用就近原则
this作用
可以调用本类的成员(变量,方法)解决局部变量和成员变量的重名问题
this:代表所在类的对象引用,方法被哪个对象调用,this就代表哪个对象
this带上参数列表的方式就可以访问本类中的其他构造函数,用于调用构造函数的this语句必须定义在构造函数的第一行,因为初始化动作要先执行
内存原理
应用
当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用到了本类对象都用this表示
封装
介绍
面向对象三大特征之一(封装,继承,多态)
思想:隐藏实现细节,仅对外暴露公共的访问方式
现实例子:线路板
体现
私有成员变量,提供set、get方法
私有仅仅是封装的一种体现,封装!=私有
将代码抽取到方法中是对代码的封装
将属性抽取到类当中是对数据的封装
好处
提高代码安全性、复用性
构造方法
介绍
构造方法:构建、创造对象的时候,所调用的方法,每创建一次就执行一次
不能手动调用构造方法,仅在创建对象时调用
作用
本质上是用于创建对象,也可用于给对象的数据(属性)进行初始化
格式
方法名与类名相同,大小写也要一致
一般函数的名字是可以和类名一样的,但是不符合书写规范
没有返回值类型,连void都没有
没有具体的返回值(不能由retrun带回结果数据)
构造函数中有return语句吗?可以有,用于结束初始化的
注意
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
如果定义了构造方法,系统将不再提供默认的构造方法
如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法,建议全都写
static关键字
介绍
static关键字是一个修饰符,用于修饰成员(成员变量、成员函数)
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用:`类名.静态成员`
特点
随着类的加载而加载,类的消失而消失,说明它的生命周期最长
优先于对象存在,明确一点:静态是先存在的,对象是后存在的
被所有对象所共享
可以直接被类名所调用
注意
静态方法只能访问静态成员,不能访问非静态成员。而非静态方法既可以访问静态也可以访问非静态;
静态方法中不可以定义this、super关键字。因为静态优先于对象存在,所以静态方法中不可以出现this
使用时机
成员变量:如果数据在所有对象中的都是一样的,直接静态修饰
成员函数:如果函数没有访问过对象中的属性数据,那么该函数就是静态的
成员变量和静态变量的区别
名称
成员变量也叫实例变量; 静态变量也叫类变量
内存存储
成员变量存储在堆内存的对象中;静态变量存储在方法区的静态区中。
生命周期
成员变量随着对象的出现而出现,随着对象的消失而消失; 静态变量随着类的出现而出现,随着类的消失而消失
静态代码块
介绍
随着类的加载而执行,且只执行一次,并优先于主函数;可用于对类进行初始化
格式
static { 静态代码块中的执行语句}
构造代码块
介绍
构造代码块定义的是不同对象共性的初始化内容,其作用是给对象进行初始化,对象一建立就运行,而且优先于构造函数执行。它和构造函数的区别是构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
格式
{ 构造代码块中的执行语句}
代码块
介绍
在Java中,使用{}括起来的代码被称为代码块
分类
局部代码块
位置
方法中定义
作用
限定变量的生命周期,及早释放,提高内存利用率
构造代码块
位置
类中方法外定义
特点
每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行
作用
将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
静态代码块
位置
类中方法外定义
特点
需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
作用
在类加载的时候做一些数据初始化的操作
主题