概述: 主要分为三个专题,包含自己在学习时记载的笔记,突出重点和一些以往不知道的知识。
一、重载
1.对于重载的定义?
重载是Java特有的一种机制,利用同一个方法名来构造多个方法。
2.对于print就是重载的一个例子,可以通过print输出多种数据类型的数据。out 是 PrintStream类型
3.方法重载的主要特点为:方法名相同,参数列表不同,对于返回值类型没与影响。
4.参数列表的不同体现在 参数的数据类型不同或参数的个数不同
二、可变参数
1.可变参数的含义就是参数列表中参数的个数是可变的,可以为 0 个可以为多个
2.可变参数的表现形式参考如下:
public int sum(int ... nums)
3.参数列表的实参可以为数组,从某种意义上讲,可变参数的本质就是数组
4.对于一个参数列表中可变参数至多有一个,而且如果存在普通参数时,可变参数的位置只能在参数列表的最后
三、作用域
1.作用域顾名思义,就是作用的范围。
2.作用域包含两种:成员变量(属性) 和 局部变量。
3.对于方法中和代码块里面的变量都算作局部变量。
4.全局变量具有默认值,不赋值可以直接使用;但局部变量没有默认值,只有在赋值之后才能使用。
5.全局变量 和 局部变量可以同名,访问时遵从就近原则。
6.全局变量的生命周期较长,随着对象的创建而创建,随着对象的销毁而销毁;局部变量随着方法或代码块的执行而创建,随着方法或代码块的结束而销毁。
7.全局变量和局部变量的作用域是不同的:对于局部变量只能应用于本类的方法里;全局变量可以供本类使用,也可以通过在其它类中创建本类的对象而被调用。
8.对于全局变量可以添加访问修饰符,局部变量不可以添加访问修饰符。
四、构造器
1.构造方法又称为构造器,主要的作用是在创建一个对象时,完成对象的初始化。
2.在不声明构造方法时,系统会在创建对象时调用一个默认的构造方法
// 假设为 Power 类
Power(){}
3.构造器的方法名与类名相同,它没有返回值(连void 都不用写),对于参数列表与成员方法的参数列表规则相同。
4.一个类可以定义多个构造器,这也是对重载的应用。
5.当自己为一个类中创建了构造器,那么原来默认的构造器就会被覆盖掉,一般情况下我们都会创建两个构造器,一个有参的、一个无参的(和默认的构造器基本相同,只是访问修饰符可能不同)
五、this
1.什么是this?
在Java虚拟机中,会为每个对象分配一个this,用来代表当前对象
2.this关键字可以用来访问本类的属性
、方法、构造器
3.this最常用的用法是区别当前类的属性和局部变量
4.this访问成员方法的语法:this.方法名(参数列表)
5.访问构造器和访问成员方法类似,但是因为不能在this后写类名,所以this访问构造器的语法为:this(参数列表);
对于访问构造器有很多要求:第一点只能在构造器中使用,一般就是在某一个构造器中访问其他构造器,而且要把这条语句写在这个构造器的第一条
this不能在类定义外部使用,只能在类定义的方法中使用(成员方法、构造方法)
六、几条零散知识点
1.Java的Jvm内存图:
主要分为栈、堆、方法区三个部分。
方法区中包含常量池。
2.对象的创建流程
(1)在方法区中加载类的信息,加载一次可多次使用。
(2)在堆中为对象分配空间,获得对象的地址
(3)完成对象的初始化【三次】
第一次执行默认的初始化,类似于各种数据类型的默认值;
第二次执行显式的初始化,定义在类中的对变量的赋值;
第三次执行构造器的初始化,创建对象时传入的参数与构造器相配合,完成最后的初始化
(4)完成初始化之后需要把对象的地址赋值给对象名。
末尾彩蛋:
感谢明星们送来的物资,手动比心。