Java开发 Debug运行+类的编写+构造方法+方法重载+th
【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
[1]
🔥知识点内容
🔓1. Debug运行 [2]
image.png
Debug
是调试
的意思,在实际编程中经常用到;
主要作用是尽快找到程序中的错误,使得程序运行结果与预期相符;
步骤1
:设置断点。断点指的是希望程序运行到此处暂停,以便查看程序当前运行状况;我们将打印输出1,2这两条语句设为断点;鼠标双击代码左侧灰色区域即可,再次双击即取消断点;
步骤2
:启动Debug。右键单击Test.java,选择Debug as-Java Application,跳转到Debug视图;
步骤3
:使用调试按钮工具或者通过快捷键进行调试;
step into
(快捷键F5
)进入当前行的方法内部,一步一步执行;
step return
(快捷键F7
)返回上一步执行的方法;
step over
(快捷键F6
)执行当前行,但不进入执行细节
resume
(快捷键F8
)恢复执行,表示接着执行代码,直接跳到下一个断点;
terminate
停止调试
image.png
image.png
🔓2.类的编写 [3]
1、创建一个类,名字 见名知意 名词
2、属性
3、方法
image.png
🔓3.构造方法介绍 [4]
3.1概念特点及使用场景
这时候我们需要一种特殊的方法,它能够
image.png在创建对象的同时,完成新建对象的初始化工作
,正是由于在实例化对象的同时会自动调用构造方法
,所以构造方法一般用来给数据成员分配资源或初始化数据成员
构造方法就是这种方法,它具备以下特点
:
构造方法是与类同名的方法
没返回值,也不能写void
主要作用是完成新建对象的初始化工作
一般不能显式地直接调用
,而是用new来调用
(后面会存在使用this/super调用)
创建一个类的新对象的同时,系统自动调用该类的构造函数,为新建对象的初始化
image.png
误区!!!下面的不是构造方法哦!!!只是调用了一个与类名相同的普通方法!!!
image.pngimage.png
3.2默认构造方法
由于Java要求每个类都必须要提供构造方法来构建对象,如果程序员认为编写的类无需特殊初始化操作而没有提供任何一个构造方法的话,Java会自动为该类提供一个默认的构造方法
Java中的默认构造方法:
无参
空方法体,即不执行任何的初始化操作
Animal a=new Animal(); 没有定义构造方法 系统默认添加无参构造方法
3.3构造方法语法格式
【访问权限修饰符】类名(参数列表){
方法体
}
//!!!对于构造方法而言,类名即方法名,切记,构造方法没有返回值,也不能写void
/*对于构造方法而言,由于调用失败会导致无法构建对象,
因此一般会定义为public,即所有能访问到该类的代码均能调用,
当然也可以结合其他的访问控制符配合完成特殊的设计模式要求*/
🔓4.对象的声明和初始化的结构 [5]
准确的说应该是:
image.png类名 引用变量名 = new 类的构造函数(构造方法参数列表);
一旦显式地定义了构造方法,默认构造方法自动消失,即便显式定义的构造方法不是无参的:
image.png
image.png
普通的方法也能使用类名,这样会造成困扰,一定要注意!!!
🔓5. 方法的重载:(掌握怎么进行方法重载编写以及如何构成方法的重载) [6]
Java中可以
image.png允许同一个类中存在着若干个具有不同参数列表的相同名称的方法
方法名相同(参数列表不同):数据类型不相同、数据的个数不同、数据顺序不同
与返回值类型无关
有了方法的重载,对于对象方法的调用者,屏蔽了底层细节
只需要知道println()是打印,但是并不清楚,本质是调用了哪个方法,打印不同数据类型,调用的方法不是一个方法,这些细节 都被方法重载屏蔽了,使用者不需要关心
🔓6. 构成方法重载的案例 [7]
image.png
小结:在同一个类中,有多个方法名称相同··, 但是参数列表不同的方法,方法的重载参数列表不同:数据类型、参数个数、参数顺序,与返回值类型无关
🔓7. 构造方法重载 [8]
构造方法是一种特殊的方法,它也能重载
构造函数的重载是指同一个类中存在着若干个具有不同参数列表的构造函数,和普通的方法一样,将根据new运算符(后续反射中会讲授不使用new运算符的方式)后面的参数类型列表判定使用的构造方法版本
image.png
🔓8. this [9]
java中的
image.pngthis
就是这样一个特殊的引用
,它指向了调用该方法的对象自身
为了容易理解,我们可以想当然的这么想象
那么在对象a中任意地方调用a.x指代的都是对象a自己(虽然并不能这么调用,在对象内部直接使用this作为自身的引用,而在b对象中并不能使用a.this代表a对象,因为这样做本身不具备价值,后续会学到类名.this的用法)
以后在构造方法
中 如果初始化对象进行赋值
都要用
this.属性(当前对象的属性)=属性(参数)
方式
🔓9. this 的使用 - 1调用其他的构造方法 [10]
对于
image.png构造方法
而言,this还有一个特殊作用:那就是在构造方法中调用本类的其他构造方法
如果有一个类带有几个构造函数,那么也许会想复制其中一个构造函数的某方面效果到另一个构造函数中,可以通过使用关键字this作为一个方法调用来达到这个目的
如果出现这种情况,在任何构造方法中this调用必须是第一个语句
eg:不是第一个语句会报错!~
🔓10. this的使用 - 2用于传递对象本身的引用句柄 [11]
image.png
🔓11. this的使用 - 3作为返回值使用 [12]
image.png