Java ee 从入门到放弃 day05

方法

方法定义和调用

package cn.wang.method;
/*
方法(method):
    是将具有独立功能的代码块组织成为一个整体,让它变成具有特殊功能的代码集

PS:
    方法必须先创建才能使用
    方法的创建后并不是直接运行的,需要进行方法调用

定义格式:
    public static void 方法名(){
        //方法体
    }
范例:
    public static void methodDefine(){
        //方法体
    }

方法调用
    格式:方法名();
    范例:methodDefine();
 */
public class MethodDefine {
    public static void main(String[] args) {
        //方法调用
        methodDefine();
    }
    //定义一个名叫methodDefine的方法
    public static void methodDefine(){
        int number = 10;
        //判断number是否是偶数
        if (number % 2 == 0){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }
}

方法练习

package cn.wang.method;
/*
设计一个方法用于打印两个数中的较大数
 */
public class MethodGetMax {
    public static void main(String[] args) {
        //调用方法
        getMax();
    }
    //定义一个名叫getMax的方法
    public static void getMax(){
        int a = 10;
        int b = 9;
        //利用三元运算符进行比较取得最大值
        int max = a > b ? a : b;
        System.out.println("Max:" + max);
    }
}

带参方法定义和调用

package cn.wang.method;
/*
带参方法定义
    格式:public static void 方法名(参数){
        ......
    }
    格式(单个参数):public static void 方法名(数据类型 变量名){
        ......
    }
    格式(多个参数):public static void 方法名(数据类型 变量名,数据类型 变量名,...){
        ......
    }
    PS:方法定义时,参数中的数据类型和变量名都不能少,缺少就会报错
    方法定义时,多个参数之间用逗号隔开

带参方法调用
    格式:方法名(参数);
    格式(单个参数):方法名(数据类型 变量值)
    格式(多个参数):方法名(数据类型 变量值,数据类型 变量值,...)

形参和实参
    形参:方法定义中的参数
    实参:方法调用中的参数
*/
public class MethodParam {
    public static void main(String[] args) {
        //methodParam方法调用
        methodParam(10);//10就是实参
        //methodParamTwo方法调用
        methodParamTwo(10,20);//10 20就是实参
    }
    //定义一个名叫methodParam的(单个参数)的方法,int number就是形参
    public static void methodParam(int number){
        System.out.println(number);//10
        System.out.println("=========");
    }
    //定义一个名叫methodParamTwo的(多个参数)的方法,int a 和 int b就是形参
    public static void methodParamTwo(int a,int b){
        System.out.println(a + "," + b);//10,20
    }
}

带参方法的练习

package cn.wang.method;
/*
设计一个方法用于打印两个数中较大的数,数据来自方法参数
 */
public class ParamGetMax {
    public static void main(String[] args) {
        //调用方法时,形参的个数和类型,要和实参一一对应,不然会报错
        getMax(10,20);
        //使用变量调用方法
        int a = 10;
        int b = 20;
        getMax(a,b);
    }
    //定义一个名叫getMax的方法
    public static void getMax(int a,int b){
        int max = a > b ? a : b;
        System.out.println("Max:" + max);//20
    }
}

带返回值方法定义和调用

package cn.wang.method;
/*
带返回值方法定义
    格式:public statc 数据类型 方法名(参数){
        return 数据;
    }return后面的返回值与方法定义上的数据类型要匹配
带返回值方法调用
    格式1:方法名(参数);
    格式2:数据类型 变量名 = 方法名(参数);
    方法的返回值通常会用变量接收,否则该返回值将毫无意义
 */
public class MethodReturn {
    public static void main(String[] args) {
        methodReyurn(10,20);

        int number = methodReyurn(10,20);
        System.out.println(number);
    }
    //定义一个返回值为int类型的方法
    public static int methodReyurn(int a,int b){
        return a + b;
    }
}

带返回值方法练习

package cn.wang.method;

import java.sql.SQLOutput;

/*
设计一个方法可以获取两个数的较大值,数据来源参数
 */
public class RetuenGetMax {
    public static void main(String[] args) {
        int result = getMax(10,20);
        System.out.println("Max:" + result);
        System.out.println("Max:" +getMax(20,30));
    }
    public static int getMax(int a,int b){
        int max = a > b ? a : b;
        return max;
    }
}

方法的注意事项

package cn.wang.method;
/*
方法注意事项:
    方法不能嵌套定义
    void表示没有返回值,可以省略return,也可以单独的书写return,后面不加数据

 */
public class MethodProblem {
}

方法重载

package cn.wang.method;
/*
方法重载
    方法重载指同一个类中定义的多个方法之间的关系,满足下条件即可构成重载
       1.多个方法在同一各类中
       2.多个方法具有相同的方法名
       3.多个方法的参数不相同,类型不同或者数量不同
    方法重载特点
        1.重载仅对应方法的定义,与方法调用无关
        2.重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,不能通过返回值
        来判断两个方法是否构成重载
 */
public class MethodOverload {
    public static void main(String[] args) {
        System.out.println(sum(10,20));//调用时,Java虚拟机会通过参数不同来区分同名方法
        System.out.println(sum(10,20,30));
        System.out.println(sum(1.1,1.2));
    }
    public static int sum(int a,int b){
        return a + b;
    }
    public static int sum(int a,int b,int c){
        return a + b + c;
    }
    public static double sum(double a,double b){
        return a + b;
    }
}

方法重载练习

package cn.wang.method;
/*
使用方法重载,设计比较两个整数是否相等的方法,兼容全整数类型(byte,short,int,long)
 */
public class OverloadEquals {
    public static void main(String[] args) {
        //调用方法
        System.out.println(overloadEquals((byte) 10,(byte) 20));
        System.out.println(overloadEquals((short) 20,(short) 20));
        System.out.println(overloadEquals( 10,20));
        System.out.println(overloadEquals( 20L,20L));
    }
    //定义方法
    public static boolean overloadEquals(byte a,byte b){
        if (a == b){
            return true;
        }else {
            return false;
        }
    }
    public static boolean overloadEquals(short a,short b){
        if (a == b){
            return true;
        }else {
            return false;
        }
    }
    public static boolean overloadEquals(int a,int b){
        if (a == b){
            return true;
        }else {
            return false;
        }
    }
    public static boolean overloadEquals(long a,long b){
        if (a == b){
            return true;
        }else {
            return false;
        }
    }
}

方法参数传递基本、引用类型

package cn.wang.method;
/*
方法参数传递
    对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
    对于引用数据类型的参数,形式参数的改变,会影响实际参数的值

 */
public class ArgsMethod {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用change方法前:" + number);//100
        change(number);
        System.out.println("调用change方法后:" + number);//100
        int arr[] = {100,20,30};
        System.out.println("调用change方法前:" + arr[0]);//100
        change2(arr);
        System.out.println("调用change方法后:" + arr[0]);//200
    }
    public static void change(int number){
        number = 200;
    }
    public static void change2(int[] arr){
        arr[0] = 200;
    }
}

数组遍历

package cn.wang.method;
/*
设计一个方法用于数组遍历,要求便利的结果是一行上的,例如:[11,22,33,44,55]
 */
public class MethodTraversal {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        //调用方法
        methodTraversal(arr);
    }
    //创建方法
    public static void methodTraversal(int[] arr){
        //遍历数组,并按要求打印
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                System.out.println(arr[i] + "]");
            }else if(i == 0){
                System.out.print("[" + arr[i] + ",");
            }else {
                System.out.print(arr[i] +",");
            }
        }
    }

}

数组最大值

package cn.wang.method;
/*
设计一个方法用于获取数组中元素的最大值,调用方法并输出结果
 */
public class ArrayMax {
    public static void main(String[] args) {
        int[] arr = {15,56,23,72,1};
        int number = arrayMax(arr);
        //调用方法,并输出结果
        System.out.println("Max:" + number);
    }
    //创建方法
    public static int arrayMax(int[] arr){
        int max = arr[0];
        //遍历数组,取得数组中元素最大值
        for (int i = 1; i < arr.length; i++) {
            max = max > arr[i] ? max : arr[i];
        }
        return max;

    }
}

习题

第一题:分析以下需求,并用代码实现(每个小需求都需要封装成方法)

1.求两个整数之和
2.求两个小数之和
3.判断两个整数是否相等
4.判断两个小数是否相等
5.获取两个整数中较大的值
6.获取两个小数中较大的值
7.获取两个整数中较小的值
8.获取两个小数中较小的值
9.用一个方法获取两个整数中较大的值或较小的值

第二题:

1.定义方法public static boolean isSXH(int num),
	功能:判断数字num是否是水仙花数,如果是返回true,如果不是返回false。
2.在main方法中调用该方法,传入数字,打印结果。(所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。)
	打印:传入数字153,结果为true,该数字是水仙花数。

昨日习题答案

第一题:分析以下需求并实现

1.看程序说结果,请不要提前运行
public class Test03_01 {
	public static void main(String[] args) {
		int[] arr1 = {1,2,3,4,5};
		int[] temp1 = arr1;
		int[] temp2 = arr1;
		System.out.println("通过temp1取出数组值: ");
		
		for(int i = 0;i<temp1.length;i++) {
			System.out.print(temp1[i]+" ");
		}
		//通过temp1取出数组值:
		//1 2 3 4 5
		System.out.println();//换行
		System.out.println("通过temp2取出数组值: ");
		for(int i = 0;i<temp2.length;i++) {
			System.out.print(temp2[i]+" ");
		}
		//通过temp2取出数组值:
		//1 2 3 4 5
		System.out.println();
		temp1[2] = 9;
		
		System.out.println("通过temp1取出数组值: ");
		for(int i = 0;i<temp1.length;i++) {
			System.out.print(temp1[i]+" ");
		}
		//通过temp1取出数组值:
		//1 2 9 4 5
		System.out.println();
		System.out.println("通过temp2取出数组值: ");
		for(int i = 0;i<temp2.length;i++) {
			System.out.print(temp2[i]+" ");
		}
		//通过temp2取出数组值:
		//1 2 9 4 5
		System.out.println();
		
	}
}

第二题:分析以下需求并实现

1.看程序说结果,请不要提前运行
public class Test03_02 {
		public static void main(String[] args) {
			int[] arr1 = {1,2,3,4,5};
			int[] arr2 = {5,6,7};
			int[] temp = arr1;
			
			System.out.println("通过temp取出arr1中的元素: ");
			
			for(int i = 0;i<temp.length;i++) {
				System.out.print(temp[i]+" ");
			}
			
			//1 2 3 4 5
			
			temp = arr2;
			
			System.out.println("通过temp取出arr2中的元素: ");
			
			for(int i = 0;i<temp.length;i++) {
				System.out.print(temp[i]+" ");
			}
			//5 6 7
		}
	}

第三题:

1.定义一个长度为10的int类型数组,元素值使用随机数生成(范围为50-80)
2.打印该数组中满足个位和十位不包含7的元素。
public class Test4 {
    public static void main(String[] args) {
        int[] arr = new int[10];
        int start = 50;
        int end = 80;

        Random r = new Random();
        int ge = 0;
        int shi = 0;
        for (int i = 0; i < arr.length; i++) {
            //给数组随机赋值
            arr[i] = r.nextInt(end - start + 1) + start;
            ge = arr[i] % 10;
            shi = arr[i] / 10;
            if (ge != 7 && shi != 7) {
                System.out.println(arr[i]);
            }
        }
    }
}

第四题:分析以下需求并实现

1.定义一个用于存放班级分数的数组 int[] score;数组长度为5,并使用随机数(范围为0-100)为数组赋值
2.求出班级不及格人数(分数低于60分的就是不及格)
3.求出班级的平均分
4.求出班级的总分数
public class Test5 {
    public static void main(String[] args) {
        int[] score = new int[5];
        Random r = new Random();
        double sum = 0;//记录总分数
        int count = 0;//记录不及格人数
        for (int i = 0; i < score.length; i++) {
            score[i] = r.nextInt(100) + 1;//保证有100
            if (score[i] < 60) {
                count++;
            }
            sum += score[i];
        }
        System.out.println("班级不及格人数:" + count);
        System.out.println("班级总分:" + sum);
        System.out.println("班级平均分:" + (sum / score.length));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值