2021-11-08

在这里插入图片描述
/*方法定义完整格式:
方法其实就是若干语句的功能集合。
方法好比一个工厂。
蒙牛工厂 原料:奶牛、饲料、水
产出物:奶制品
钢铁工厂 原料:铁矿石、煤炭
产出物:钢铁建材
参数//就相当于原材料:进入方法的数据。
返回值//就相当于产出物:从方法中出来的数据。
方法定义的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,参数类型 参数名称,…){
方法体
return 返回值;
}
修饰符:现阶段就是固定的public static
返回值类型:也就是方法体产生的数据结果的类型
方法名称:方法的名字,使用小驼峰命名规则
参数类型:进入方法的数据是什么类型
参数名称:进入方法的数据对应的变量的名称
return两个作用:第一,停止当前方法;第二,将后面的返回值还给调用处
返回值:也就是方法最后产生的结果
注意:return后面的返回值,必须和方法名称前面的返回值类型,保持对应。
*/
/*使用方法定义和调用计算两个整数相加之和。三要素:
返回值类型:int
方法名称:sum
参数列表:int a,int b
注意,一般如果数据范围是固定的,则则不用定义参数
*/
/*方法的三种调用格式:
1、单独调用:方法名称(参数);
2、打印调用:System.out.println(方法名称(参数));
3、赋值调用;数据类型 变量名称 = 方法名称(参数);
注意,之前学习的方法定义和调用中,返回值类型写的void,这种方法只能够使用单独调用
/
public class DemoMethodDefine {
public static void main(String[] args) {
//单独调用
sum(5, 6);//执行该语句的结果是不会看到计算结果,因为return的返回结果虽然给了第34行,但是没有打印所以看不到输出结果
System.out.println("");
//打印调用
System.out.println(sum(5, 6));
System.out.println("
");
//赋值调用
int num1 = sum(5, 6);
System.out.println(num1 + 10);
}
public static int sum(int a, int b) {
int result = a + b;
return result;//此处的result的类型必须和public static后面的int类型一致
}
}

在这里插入图片描述
/*
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。
方法的重载(OverLoad):多个方法的名称一样,但是参数列表不一样。
好处:只需要记住一个方法名称,就可以实现类似的多个功能
方法重载与下列因素有关:
1、参数个数不同
2、参数类型不同
3、参数的多类型顺序不同
方法重载与下列因素无关:
1、参数名称无关
2、与方法的返回值类型无关
*/
//用方法重载实现两个数之和、三个数之和、四个数之和
public class DemoMethodOverLoad {
public static void main(String[] args) {
System.out.println(sum(25,30));
System.out.println(sum(40,30,60));
System.out.println(sum(10,20,30,40));
//System.out.println(sum(1,2,3,4,5));找不到方法匹配,报错!
}
public static int sum(int a,int b){
System.out.println(“两个数之和方法执行!”);
return a + b;
}
//public static int sum(int x,int y)这样写会报错,因为参数名称用a,b或者x,y都行,那么当给出两个数字计算时,方法重载就不知道传给谁了
//public static double sum(int a,int b){
// return a+b+0.0}这样写也会报错,方法重载与返回值类型无关
public static int sum(int a,int b,int c){
System.out.println(“三个数之和方法执行!”);
return a + b + c;
}
public static int sum(int a,int b,int c,int d){
System.out.println(“四个数之和方法执行!”);
return a + b +c +d;
}
}

/*模拟输出语句中的println方法效果,传递什么类型的数据就输出什么类型的数据,只能定义一个方法名println
在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式
*/
public class DemoOverLoadPrint {
public static void main(String[] args) {
myPrint(10);
myPrint((float) 10.3);
myPrint(15L);
myPrint((byte)3);
}

public static void myPrint(byte a) {
    System.out.println(a);
}

public static void myPrint(short a) {
    System.out.println(a);
}

public static void myPrint(int a) {
    System.out.println(a);
}

public static void myPrint(long a) {
    System.out.println(a);
}

public static void myPrint(float a) {
    System.out.println(a);
}

public static void myPrint(char zifu) {
    System.out.println(zifu);
}

public static void myPrint(boolean is) {
    System.out.println(is);
}

public static void myPrint(String str) {
    System.out.println(str);
}

}

在这里插入图片描述
/*
比较两个数据是否相等;参数类型分别为byte、short、int、long;并在main方法中测试
*/
public class PracticeMethodOverLoad {
public static void main(String[] args) {
byte a = 3;
byte b = 4;
System.out.println(compare(a,b));
System.out.println(compare((short)8,(short)10));
System.out.println(compare(10,10));
System.out.println(compare(15L,20L));
}
public static boolean compare(byte a,byte b){
System.out.println(“两个byte类型比较方法执行!”);
boolean result;
if (a == b){
result = true;
}else{
result = false;
}return result;
}
public static boolean compare(short a,short b){
System.out.println(“两个short类型比较方法执行!”);
boolean result = a == b?true:false;
return result;
}
public static boolean compare(int a,int b){
System.out.println(“两个int类型比较方法执行!”);
return a == b;
}
public static boolean compare(long a,long b){
System.out.println(“两个long类型比较方法执行!”);
if (a == b){
return true;
}else{
return false;
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值