java方法的重载

java方法的重载,第1张

方法重载概述

– 在同一个类中, 允许存在一个以上的同名方法, 只要它们

参数个数或者参数类型不同即可。

• 方法重载特点

– 与返回值类型无关, 只看方法名和参数列表

– 在调用时, 虚拟机通过参数列表的不同来区分同名方法

复制代码

package methodmethodchongzai;

public class MethodChongZai {

public static void main(String[] args) {

int a = 1;

int b = 2;

int c = 3;

Systemoutprintln(sum(a,b,c));

Systemoutprintln(sum(a,b));

}

public static int sum(int a,int b) {

int c = a + b;

return c;

}

public static int sum(int a,int b,int c){

int d = a + b + c;

return d;

}

}

复制代码

输出如下:

复制代码

package methodmethodchongzai;

public class ChongZai2 {

public static void main(String[] args) {

//定义变量

int a = 10;

int b = 20;

//求和方法

int result = sum(a,b);

Systemoutprintln("result:"+result);

//定义变量

int c = 30;

//求和方法

//int result2 = sum2(a,b,c);

int result2 = sum(a,b,c);

Systemoutprintln("result2:"+result2);

}

//不能出现方法名相同,并且参数列表也相同的情况

// public static int sum(int x,int y) {

// return x + y;

// }

public static float sum(float a,float b) {

return a + b;

}

//求三个数据的和

/

public static int sum2(int a,int b,int c) {

return a + b + c;

}

/

public static int sum(int a,int b,int c) {

return a + b + c;

}

//求两个数据的和方法

public static int sum(int a,int b) {

//int c = a + b;

//return c;

return a + b;

}

}

复制代码

输出结果:

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

static与abstract,它们不能同时用于修饰一个方法。因为abstract的语义就是说这个方法是多态方法,需要subclass的实现。而static方法则是在本类中实现的,编译期绑定,不具有多态行为。

synchronized同步,也是一样的道理,具体可以参考JAVA语言规范

class OverloadDemo{

void test(){

Systemoutprintln("No paramteters");

}

//含两个整形参数

void test(inta,intb){

Systemoutprintln("a and b:"+a+""+b);

}

//含有一个双精度参数

void test(double a){

Systemoutprintln("Inside test(double)a:"+a);

}

class Overload{

public static void main(String args[]){

OverloadDemo ob =new OverloadDemo();

int i =88;

obtest();

obtest(10,20);

obtest(i); //这里将调用test(double)

obtest(123,2); //这里调用test(double)

}

}

public class Person {

private String gender;

public String getGender() {

return gender;

}

public void setGender(String gender) {

thisgender = gender;

}

public static void main(String[] args) {

Person p = new Person();

Dog dog = new Dog();

psetGender("女");

dogyao();

dogyao("猪");

dogyao(p);

}

}

class Dog{

public void yao(){

Systemoutprintln("汪汪叫");

}

public void yao(String str){

Systemoutprintln("咬"+str+"骨头,好香啊");

}

public void yao(Person p){

String gender = pgetGender();

switch (gender) {

case "男":

Systemoutprintln("扑上去撕咬");

break;

case "女":

Systemoutprintln("扑上去舔两口");

break;

default:

Systemoutprintln("请输入正确的性别,只能为'男'和'女'!");

break;

}

}

}

模拟退火算法

Java基础06-方法的定义、声明、使用、重载

1方法

方法是Java中一个明名的代码块,如同在数学中用到的函数,其他语言常常直接称为函数。

方法 通常是为了完成某一个特定功能,把程序中特定的代码组合到一起而构成的,其主要好处体现在两个方面:

一个是重用,另一个是使程序结构更加清晰。

方法的声明语法如下:

[修饰符] 返回值类型 方法名(形参列表){

方法体;

}

在Java 中,修饰符为访问者的权限大小,public 、protected、default、private、权限范围不同。

返回值类型 为数据类型 也就是说 你让方法完成了某项功能要不要返回一个结果,或者说你让程序做事

要不要程序给你个结果,所以返回值类型可以写成void即不需要返回什么,

返回值类型可以是基本数据类型也可以是引用类型

如果方法有返回值,那么方法体中必须写上“return 返回值;”,返回值的类型必须和方法上规定的返回值类型一致,

方法名可以重复和但不能使用关键字,方法中的形参其实就是你想让方法完成功能,给方法传输参数,形参是传入参数的类型

的一种表达,就好比你要让方法算两个人年龄的综合,你的传入两个int类型的参数,不然数据无法计算

例如:

public int all(int age1,int age2){

return age1+age2;

}

方法返回的是两个数的和。

无参数方法很简单:

注意:静态方法调用需要加上静态修饰符static

例如:

图中c=function();

说明function()本身就是一个值;

所以可以省略一定的步骤:

直接Systemoutprint(function());

输出的结果照样是:15

注意:方法有参数不一定有返回值,有返回值不一定有参数,并且方法执行遇到return就结束了,不会执行下面代码,并且return下面写的代码会报错。

例如:

return 0;

int a=0;

语法错误,编译不通过

2方法的使用。

(1)注意方法的修饰符,决定了方法的使用范围,

(2)方法的调用:方法也可以自己调用自己,(递归)。

(3)方法如果没有返回值也可以return;只不过return后面不加参数

方法重载说简单点就是方法的权限、返回值类型、方法名都一样,根据参数的个数或类型不一样,这就是方法重载。

比如说:

public void print(String str){}

public void print(int i){}

public void print(String str[]){}

public void print(String str, int i){}

就是这种。

在java中,如果两个方法名相同,但参数项不同,那么可以认为一个方法是令一个方法的重载方法,此过程称为“方法重载”。

参数项不同:

①参数个数相同,类型不 同

②参数个数不同

尽信书则不如无书。

以上就是关于java方法的重载全部的内容,包括:java方法的重载、java的方法重载、java重载详例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9352742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存