黑马程序员技术交流社区

标题: 【郑州校区】JavaEE实体基础班教程笔记第5天第3章方法的重... [打印本页]

作者: 我是楠楠    时间: 2018-2-8 09:20
标题: 【郑州校区】JavaEE实体基础班教程笔记第5天第3章方法的重...
本帖最后由 我是楠楠 于 2018-2-8 09:21 编辑

第3章 方法的重载及参数传递

1.1 方法重载的概述和基本使用
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法
1.1.1 案例代码十
[AppleScript] 纯文本查看 复制代码
package com.itheima_03;

/*
* 方法重载:在同一个类中,出现了方法名相同的方法,这就是方法重载。
* 方法重载特点:
* 方法名相同,参数列表不同。与返回值无关。
* 参数列表不同:
* 参数的个数不同。
* 参数对应的类型不同。
* 注意:
* 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。
*/
public class MethodDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;

// 求和
int result = sum(a, b);
System.out.println("result:" + result);

int c = 30;
// 求和
//int result2 = sum2(a,b,c);
//System.out.println("result2:"+result2);
result = sum(a,b,c);
System.out.println("result:"+result);
}
//两个float类型的数据求和
public static float sum(float a,float b) {
return a + b;
}

// 三个整数的求和
public static int sum(int a,int b,int c) {
return a + b + c;
}
/*
public static int sum2(int a, int b, int c) {
return a + b + c;
}
*/

// 两个整数的求和
public static int sum(int a, int b) {
return a + b;
}
}
1.2 方法重载练习1.2.1 方法重载练习之比较数据是否相等1.2.2 代码案例十
[AppleScript] 纯文本查看 复制代码
package com.itheima_03;

/*
* 需求:比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
*     并在main方法中进行测试
*/
public class MethodTest {
public static void main(String[] args) {
// 调用
System.out.println(compare(10, 20));
System.out.println("-------------");
System.out.println(compare((byte)10, (byte)20));
System.out.println("-------------");
System.out.println(compare((short)10, (short)20));
System.out.println("-------------");
//System.out.println(compare((long)10, (long)20));
System.out.println(compare(10L, 20L));
}

// 两个byte类型的
public static boolean compare(byte a, byte b) {
System.out.println("byte");
// 第一种写法
// boolean flag = a==b?true:false;
// return flag;
// 第二种写法
// boolean flag = a == b;
// return flag;
// 第三种写法
return a == b;
}

// 两个short类型的
public static boolean compare(short a, short b) {
System.out.println("short");
return a == b;
}

// 两个int类型的
public static boolean compare(int a, int b) {
System.out.println("int");
return a == b;
}

// 两个long类型的
public static boolean compare(long a, long b) {
System.out.println("long");
return a == b;
}
}
1.3 方法中参数传递1.3.1 方法的形式参数为基本数据类型
方法的参数是基本类型的时候:
                  形式参数的改变不影响实际参数。
  形式参数:用于接收实际数据的变量
  实际参数:实际参与运算的变量
1.3.2 代码案例十
[AppleScript] 纯文本查看 复制代码
public class ArgsDemo {
public static void main(String[] args) {
// 定义变量
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
change(a, b);
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
}

public static void change(int a, int b) { // a=10,b=20
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
a = b; // a=20;
b = a + b;// b=40;
System.out.println("a:" + a + ",b:" + b);// a:20,b:40
}

}
1.3.3 方法的形式参数是基本类型图解
1.3.4 方法的形式参数为引用数据类型1.3.5 代码案例十
[AppleScript] 纯文本查看 复制代码
package com.itheima_04;

/*
* 方法的参数是引用类型:
* 形式参数的改变直接影响实际参数
*/
public class ArgsDemo2 {
public static void main(String[] args) {
// 定义数组
int[] arr = { 1, 2, 3, 4, 5 };
// 遍历数组
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
change(arr);
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}

public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
// 如果元素是偶数,值就变为以前的2倍
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}
}
1.3.6 方法的形式参数是引用类型图
更多
第一天
第1章 Java概述
第2章 环境配置
第3章 语法格式
第二天
第1章 Eclipse开发工具
第2章 运算符
第3章 键盘录入
第三天
第1章 选择流程控制语句
第2章 循环流程控制语句
第3章 控制循环语句
第四天

传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出


作者: Bluewonder    时间: 2018-2-26 15:56
参数传递




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2