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

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

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 代码案例十一

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 代码案例十二

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 代码案例十三

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 方法的形式参数是引用类型图

原文地址:http://blog.51cto.com/13517854/2084570

时间: 2024-11-07 21:49:31

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

方法的重载与参数传递

我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法.接下来通过一个案例来实现对两个整数相加.对三个整数相加以及对两个小数相加的功能. public class MethodDemo02 { public static void main(String[] args) { // 下面是针对求和方法的调用 int sum1 = add01(1, 2); int sum2 = add02(1, 2, 3); double sum3 =

方法的重载及参数传递

1.1 方法重载的概述和基本使用在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可.方法重载特点与返回值类型无关,只看方法名和参数列表在调用时,虚拟机通过参数列表的不同来区分同名方法1.1.1 案例代码十 package com.itheima_03; /* * 方法重载:在同一个类中,出现了方法名相同的方法,这就是方法重载. * 方法重载特点: * 方法名相同,参数列表不同.与返回值无关. * 参数列表不同: * 参数的个数不同. * 参数对应的类型不同. * 注

方法重载和参数传递

-方法重载和参数传递 方法相同:在 Java 语言中,方法相同的概念和其它程序设计语言不尽相同,Java语言中的方法相同指方法名称和参数列表都相同,其中参数列表相同指参数个数.参数类型和参数排列顺序等相同,参数名称可以不相同.相同的方法访问控制符.返回值类型可以不相同.以下是一下相同的方法:public void test(int a,double[] d)private int test(int i,double[] d1)在同一个类内部,不能声明相同的方法,否则将出现语法错误. 方法重载:

第10章 接口、继承与多态 方法的重载

方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同. 举个例子,就拿String类的valueOf方法,它的参数可以使用多种,重载了它就可以使用相同的方法名不同的参数,如果不用重载你就得为每种参数的方法取一个名字,比如叫valueOf1,valueOf2....这样人家在调用你写的api的时候会觉得很不方便.

[Effective Java]第七章 方法

第七章      方法 38.      检查参数的有效性 绝大多数方法和构造器对于传递给它们的参数值都会有某些限制.例如,索引值必须是非负的,对象引用不能为null等,这些都是常见的.你应该在文档中清楚地指明所有这些限制,并且在方法体的开头处检查参数,以强制施加这些限制. 应该在方法和构造器体前进行了参数的有效性检查,并且及时向外抛出适当的异常.如果方法没有检查它的参数,就有可能发生几种情形.该方法可能在处理过程中失败,并且产生令人费解的异常,更有可能,该方法可以正常返回,但是会悄悄地计算出错

构造方法和方法的重载。

---恢复内容开始--- 构造器,又称为构造方法.constructor 构造器用于构造该类的实例. 格式: [修饰符] 类名(形参列表){ //n条语句 } 是一种特殊的方法: 1.通过new关键字调用 2.构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能字啊构造器里调用return. 3.如果我们没有定义构造器,则系统u会自动定义一个无参的构造函数.如果已定义则编译器不会添加! 4.构造器的方法名必须和类名一致! 5.构造该类的对象,经常也用来初始化对象的属性. --

方法的重载

方法的重载 (overload) 1.定义 : 在同一类中,相同的方法名,不同的参数列表之间,彼此构成重载! 举例:Arrays中的sort(Xxx[] xxx) / System.out.println(Xxx xxx) 总结:"两同一不同". 一不同:①参数个数不同 ② 参数类型不同 2.方法的重载与否与方法的形参的变量名没关系!与方法是否返回值也没关系! 3.如何确定调用的是一个类的具体的哪个方法?指明方法名--->指明参数的类型 面试题:区分方法的重载(overload)

详解java方法的重载

1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载. 2.怎样正确区分方法是不同的方法: 1.看方法名名是否相同,方法名不同即为不同的方法 2.看参数列表是否相同.参数列表的不同分为两部分:a. 参数个数不同 b.参数的数据类型不同. 注意: a.方法的重载和返回值/修饰符列表无关. b.如果方法名相同,参数列表相同,则此方法是重复的,是个错误. 3.方法的执行原理: 方法不调用不执行,一调用才执行,调用的结果返回到方法的调用处. 4.从内存数据结构分析方法的调用: 方法在调用的时候,才

C#值参数和引用参数,方法的重载,foreach,数组,以及ref和out的用法

1.方法的传输传递 值参数:传递的是副本 引用参数:自身 保留自定义的方法中对值的改变 形参影响实参ref:对应的形参和实参都用ref修饰 输出参数:实参不用赋值,但是自定义方法内必须对此参数赋值!!! 把自定义方法产生的结果带回调用处out:对应的形参和实参都用out修饰 必须在自定义方法中赋值 注:如果需要返回一个参数 使用return 如果需要反回多个参数 使用ref 或者 out TryParse用法:自行判断转换是否成功 转换成功反回true 转换失败返回false 例: bool f