004—JAVA面向对象前三天知识精华总结
2021/10/13 20:14:25
本文主要是介绍004—JAVA面向对象前三天知识精华总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向对象的三大特征
封装(Encapsulation)
继承(Inheritance)
多态(Polymorphism)
对象:是一个具有特定属性和行为特征的具体事物
类:是一类具有相同特征的事物的抽象描述,是一组相同【属性】和【行为】的对象的集合。
类与对象的关系
类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。
成员变量
变量的分类
局部变量:定义在方法体内或其他局部区域内的变量(之前所使用的都是main方法中定义的变量,为局部变量)。
成员变量:定义在类的成员位置,在方法体外,与方法(例如main方法)平行的位置。并且有修饰符修饰。根据修饰的不同成员变量又分为:
- 类变量:或叫静态变量,有static修饰的成员变量。
- 实例变量:没有static修饰的成员变量。
说明:常用修饰符有public、缺省、private、protected、final、static
数据类型可以是任意基本数据类型和引用数据类型。
成员变量的访问
实例变量的访问:
对象名.静态成员变量
类变量的访问:
类名.静态成员变量
对象名.静态成员变量(不推荐)
成员变量有默认初始值
方法
方法也叫函数,是一个独立功能的定义,是一个类中最基本的功能单元。 方法描述的是类或对象的行为信息。
成员方法的分类:
根据修饰不同方法主要分为两类:
- 实例方法:没有static修饰的方法,必须通过实例对象来调用。
静态方法:有static修饰的方法,也叫类方法,主要特点是可以由类名来调用。
方法必须先声明后使用,不调用不执行,调用一次执行一次。
注意:
1.方法只声明 不调用 不会执行的
2.方法的执行顺序只与调用顺序有关
3.方法与方法是兄弟关系
4.方法执行结束会回到方法调用处
返回值类型
void::代表当前方法 不返回任何内容 数据类型: 必须返回一个该类型【匹配】的值 int:代表当前方法【必须】返回一个int值
实例方法与静态方法的区别
方法的声明:
静态方法: 有static关键字的方法
非静态方法:没有static关键字的方法
调用方式:
静态方法 参考静态变量 类名.方法名();
非静态方法:参考实例变量 对象名.方法名();
注: 在本类中 可以省略类名/对象名调用
资源引用问题:
静态方法: 只能【直接】调用静态资源
非静态方法:可以直接调用所有的资源
方法调用内存分析
方法不调用不执行,调用一次执行一次,每次调用会在栈中有一个入栈动作,即给当前方法开辟一块独立的内存区域,用于存储当前方法的局部变量的值,当方法执行结束后,会释放该内存,称为出栈,如果方法有返回值,就会把结果返回调用处,如果没有返回值,就直接结束,回到调用处继续执行下一条指令。
方法参数的值传递机制
方法的参数传递机制:实参给形参赋值
方法的形参是基本数据类型时,形参值的改变不会影响实参;
方法的形参是引用数据类型时,形参地址值的改变不会影响实参,但是形参地址值里面的数据的改变会影响实参,例如,修改数组元素的值,或修改对象的属性值。
注意:String、Integer等特殊类型容易错
方法重载
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表不同:指的是参数个数不同,数据类型不同,数据类型顺序不同。
可变参数
在JDK1.5之后,如果我们定义一个方法时,此时某个形参的类型可以确定,但是形参的个数不确定,那么我们可以使用可变参数。
【修饰符】 返回值类型 方法名(【非可变参数部分的形参列表,】参数类型... 形参名){ }
注意:
(1)一个方法最多只能有一个可变参数
(2)如果一个方法包含可变参数,那么可变参数必须是形参列表的最后一个
命令行参数(了解)
通过命令行给main方法的形参传递的实参称为命令行参数
对象数组
即数组的元素可以是基本数据类型,也可以是引用数据类型。当元素是引用数据类型是,我们称为对象数组。
注意:对象数组,首先要创建数组对象本身,即确定数组的长度,然后再创建每一个元素对象,如果不创建,数组的元素的默认值就是null,所以很容易出现空指针异常NullPointerException。
为什么需要封装?
高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅对外暴露少量的方法用于使用
隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的讲,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。
权限修饰符
权限修饰符可以修饰:
外部类:public和缺省
成员变量、成员方法、构造器、成员内部类:public,protected,缺省,private
成员变量封装的目的
隐藏类的实现细节
让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里面加入控制逻辑,限制对成员变量的不合理访问。还可以进行数据检查,从而有利于保证对象信息的完整性
便于修改,提高代码的可维护性。
初识this关键字
当局部变量与类变量(静态成员变量)同名时,在类变量前面加“类名.";
当局部变量与实例变量(非静态成员变量)同名时,在实例变量前面加“this.”
this代表当前对象的引用,即当前被创建的对象
构造器的作用
用于创建并初始化对象
注意:构造器只为实例变量初始化,不为静态类变量初始化
注意事项:
构造器名必须与它所在的类名必须相同。
它没有返回值,所以不需要返回值类型,甚至不需要void
如果你不提供构造器,系统会给出默认无参数构造器,并且该构造器的修饰符默认与类的修饰符相同
如果你提供了构造器,系统将不再提供无参数构造器,除非你自己定义。
构造器是可以重载的,既可以定义参数,也可以不定义参数。
构造器的修饰符只能是权限修饰符,不能被其他任何修饰
this调用构造器
构造器重载时,可以在一个构造方法中调用另一构造方法,以简化代码。
格式:this(参数列表);
public Employee(){ } public Employee(String id){ this.id=id; } public Employee(String id, String name){ this(id);//this调用一个参数的构造器 this.name = name; } public Employee(String id, String name, double salary, char gender){ this(id,name);//this调用2个参数的构造器 this.salary = salary; this.gender = gender; }
注意:
this调用构造器的语句,只能构造器中第一行位置。
属性赋值小结
截止到目前,我们讲了很多位置都可以对类的属性赋值。现总结这几个置,并指明赋值的先后顺序。 赋值的位置及先后顺序: ① 默认初始化 ② 显式初始化 ③ 构造器中初始化 ④ 通过“对象 .属性“或对象 .方法”的式赋值
标准JavaBean
JavaBean
是 Java语言编写类的一种标准规范。符合JavaBean
的类,要求:(1)类必须是具体的(非抽象)和公共的,
(2)并且具有无参数的构造方法,
(3)成员变量私有化,并提供用来操作成员变量的
set
和get
方法。(比较理解POJO : Plain Ordinary Java Object,主要承载数据,不涉及业务逻辑)、
继承的好处
提高代码的复用性。
提高代码的扩展性。
类与类之间产生了关系,是学习多态的前提。
Idea中方法的提取操作方式
Idea查看继承关系
Idea中Structure工具
这篇关于004—JAVA面向对象前三天知识精华总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12百万架构师第十五课:源码分析:Spring 源码分析:SpringMVC核心原理及源码分析|JavaGuide
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide