Java面向对象-方法的重载

Java面向对象-方法的重载

所谓方法的重载,

类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候局构成方法重载;

上代码:

 1 package com.java1234.chap03.sec03;
 2
 3 public class Demo01 {
 4
 5     int add(int a,int b){
 6         System.out.println("方法一");
 7         return a+b;
 8     }
 9
10     /**
11      * 方法的重载,参数个数不一样
12      * @param a
13      * @param b
14      * @param c
15      * @return
16      */
17     int add(int a,int b,int c){
18         System.out.println("方法二");
19         return a+b+c;
20     }
21
22     /**
23      * 方法的重载,参数的类型不一样
24      * @param a
25      * @param b
26      * @return
27      */
28     int add(int a,String b){
29         System.out.println("方法三");
30         return a+Integer.parseInt(b);
31     }
32
33     /**
34      * 参数类型个数一样,返回值类型不一样 不算重载,直接会报错,说方法重名
35      * @param args
36      */
37     /*long add(int a,int b){
38         return a+b;
39     }*/
40
41     public static void main(String[] args) {
42         Demo01 demo=new Demo01();
43         System.out.println(demo.add(1, 2));
44         System.out.println(demo.add(1, 2,3));
45         System.out.println(demo.add(1, "3"));
46     }
47 }

运行结果:

方法一
3
方法二
6
方法三
4

这里有个注意点 假如参数个数和类型一样,返回值不一样,不能算重载,直接是编译出错,编译器认为是方法重复了。

具体原因:我们给下实例代码:

 1 package com.java1234.chap03.sec03;
 2
 3 public class Demo01 {
 4
 5     int add(int a,int b){
 6         System.out.println("方法一");
 7         return a+b;
 8     }
 9
10     /**
11      * 参数类型个数一样,返回值类型不一样 不算重载,直接会报错,说方法重名
12      * @param args
13      */
14     long add(int a,int b){
15         return a+b;
16     }
17
18     public static void main(String[] args) {
19         Demo01 demo=new Demo01();
20         int m=demo.add(1, 2);  // 调用返回值是int类型的方法
21         long n=demo.add(1, 2); // 调用返回值是long类型的方法
22
23         demo.add(1, 2); // 假如这样些  编译器晕了,你TM是调用返回值是int类型还是long类型的方法
24
25     }
26 }

假如调用方法 指定返回值类型,我们可以确定是调用的是某个方法,比如int m=demo.add(1,2) 因为是返回值m是int类型 那肯定

调用的是int add(int a,int b){ 方法  long n=demo.add(1, 2) 因为返回值n是long类型,那肯定调用的long add(int a,int b){方法

但是,假如直接 demo.add(1,2); 编译器就SB了,你TM是调用返回值是int类型的方法,还是返回值是long类型的方法;

时间: 2024-10-28 18:51:25

Java面向对象-方法的重载的相关文章

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

Java面向对象-方法的值传递和引用传递

Java面向对象-方法的值传递和引用传递 方法的值传递: 值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(int age){ 6 System.out.println("我今年"+age+"岁了"); 7 age=24; // 作用范围是方法里 8 } 9 10 public sta

Java面向对象---方法的创建与重载

方法的创建 方法就是可重复调用的代码段. 定义: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } 返回值类型:void(无返回值):基本数据类型:应用数据类型:类对象等. 方法名的命名规则:第一个字母小写,多个单词之间,后面单词的第一个字母大写.如userName. 参数:方法参数可以没有,可以是一个,也可以是多个.参数数据类型与返回值类型一样,可以是任意数据类型. 方法的重载 方法名相同,但是参数的类型或个数不同.通过传递的数据类型的不同或参数个数的不同来完成不同的功能.

面向对象----方法的重载

方法的重载 方法(函数) 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,-.) { 程序代码 return 返回值:} 其中:参数类型:就是该形式参数的数据类型.返回值:方法在执行完毕后返还给调用它的程序的数据.返回值类型:函数要返回的结果的数据类型.实参:调用函数时实际传给函数形式参数的数据.形式参数:在方法被调用时用于接收外部传入的数据的变量. 方法的调用 方法的重载 方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或类型不同即可. 如: 1 p

Java面向对象-方法的定义及简单使用

Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(){ 6 System.out.println("我是张三"); 7 } 8 9 public static void main(String[] args) { 10 Person person=new Person(); 11 person.speak

Java 中方法的重载

问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载: 问: 如何区分调用的是哪个重载方法呢? 答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行.如: 运行结果: 判断方法重载的依据: 1. 必须是在同一个类中 2. 方法名相同 3. 方法参

详细讲解Java中方法的重载和重写

首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 B.方法参数个数不同 C.方法参数排列顺序不同 代码如下: package com.tocean.test;//包名 public class Test1 { public void name(int i){ System.out.println("overloading"); } //方

C#面向对象——方法的重载及构造函数、静态对象。

namespace nameclass2 { class Class2 //方法的重载 { public void Function( string s) { Console.WriteLine(s); } public void Function(string s,string s2) { Console.WriteLine(s+s2); } } } //方法的重载 :两个相同的函数,参数个数不同,所返回的值不同 Class2 data = new Class2(); data.Functio

JAVA学习--方法的重载

* 方法的重载(overload)  * 要求:1.同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同)  * 补充:方法的重载与方法的返回值类型没有关系! public class TestOverload { } class OverLoad{ //定义两个int型变量的和 public int getSum(int i,int j){ return i + j; } //定义三个int型变量的和 public int getSum(int i,int j