程序员社区

JAVA面向对象2(重载和值传递)

JVM内存结构

编译完生成的字节码文件还是硬盘里的一个文件,字节码文件是个类,运行时才把类加载到内存中,才为其分配内存空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对象数组

第一行创建了一个20个大小的对象数组,但每个对象都是空指针,没有在堆中创建对象并指向它,第二行给每个空指针对象都在堆中创建了一个对象,用来存储数据。
在这里插入图片描述
在这里插入图片描述

匿名对象

在这里插入图片描述

方法的重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、参数表顺序不同,是重载

在这里插入图片描述

2、仅仅返回值不同,不是重载

在这里插入图片描述

3、仅仅 权限不同也不能重载

在这里插入图片描述

4、仅仅形参变量名不同不能重载。

在这里插入图片描述

5、示例1:

在这里插入图片描述

可变个数形参的方法

在这里插入图片描述

0、具体使用

在这里插入图片描述

1、变量个数可以任意个

在这里插入图片描述

2、优先选这个最合适的函数

在这里插入图片描述

3、构成重载

在这里插入图片描述

4、编译器认为这俩一样

在这里插入图片描述

5、这种方式不能作为数组的参数

在这里插入图片描述

6、这种方式才可以作为数组的参数

在这里插入图片描述

7、这种形式也能做它的参数

在这里插入图片描述


8、可变个数形参必须写在末尾

下面是出错的,
在这里插入图片描述
下面这个是对的
在这里插入图片描述


9、要想声明 可变个数的参数,那么一定要放在最后,如果有两个,必然有一个不在最后,所以最多只能声明一个 可变形参。


10、相当于数组,也能循环调用输出

在这里插入图片描述

方法参数的值传递机制

引入

JAVA中引用数据类型只有null和地址值两种赋值。
引用数据类型例如 数组和对象。
变量
在这里插入图片描述
在这里插入图片描述

对于基本数据类型

参数
在这里插入图片描述
在这里插入图片描述

对于引用类型的参数

如果参数是引用数据类型,此时实参赋给形参的实参存储数据的地址值。

以下可完成swap。
在这里插入图片描述
示例1:封装函数完成数组排序。
在这里插入图片描述
在这里插入图片描述
示例2:
在这里插入图片描述
在这里插入图片描述
示例3:倒着除
在这里插入图片描述
示例4:
在这里插入图片描述
结果:
在这里插入图片描述
多态,重载:
println(char[])源代码是遍历数组,
println(Object)源代码是打印数组地址。
在这里插入图片描述

递归方法的使用

递归定义
在这里插入图片描述
示例1:
在这里插入图片描述
示例2:
在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » JAVA面向对象2(重载和值传递)

一个分享Java & Python知识的社区