首页 > 代码库 > javase基础5

javase基础5

1.方法格式

  

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {

                   函数体;

                   return 返回值;

}

修饰符: public static 等

 返回值类型:用于限定返回值的数据类型

 方法名:一个名字,为了方便我们调用方法

 参数类型:用于接收调用方法时传入的数据的类型

 参数名:用于接收调用方法时传入的数据的变量

 方法体:完成特定功能的代码

 return:结束方法,把返回值带个调用者

写一个方法需要明确:参数列表和返回值类型

2.方法获取两个数的最大值

  

import java.util.Scanner;

/*
 * 键盘录入两个数据,返回两个数中的较大值
 * 
 * 两个明确:
 *         返回值类型:int
 *         参数列表:int a,int b
 */
public class Demo1{
    // 返回两个数中的较大值
    public static int getMax(int a, int b) {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
    
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        
        //接收数据
        System.out.println("请输入第一个数据:");
        int x = sc.nextInt();
        
        System.out.println("请输入第二个数据:");
        int y = sc.nextInt();
        
        //调用方法
        int max = getMax(x,y);
        System.out.println("max:"+max);
    }
}

3.判断俩个数是否相等

  

public class Demo2{
    //比较两个数是否相等
    public static boolean compare(int a,int b){
        if(a==b){
            return true;
        }else {
            return false;
        }
    }
    
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        
        //接收数据
        System.out.println("请输入第一个数据:");
        int a = sc.nextInt();
        
        System.out.println("请输入第二个数据:");
        int b = sc.nextInt();
        
        //调用方法
        boolean flag = compare(a,b);
        System.out.println("flag:"+flag);
    }
}

4.获取三个数中的最大值

// 返回三个数中的最大值
    public static int getMax(int a, int b, int c) {
        if (a > b) {
            if (a > c) {
                return a;
            } else {
                return c;
            }
        } else {
            if (b > c) {
                return b;
            } else {
                return c;
            }
        }
    }
    
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        
        //接收数据
        System.out.println("请输入第一个数据:");
        int a = sc.nextInt();
        
        System.out.println("请输入第二个数据:");
        int b = sc.nextInt();
        
        System.out.println("请输入第三个数据:");
        int c = sc.nextInt();
        
        //调用方法
        int max = getMax(a,b,c);
        System.out.println("max:"+max);
    }
}

5.打印一到n的数据

public class Demo4{
    //在控制台打印1到该数据n的值
    public static void printNumber(int n) {
        for(int x=1; x<=n; x++) {
            System.out.println(x);
        }
    }
    
    public static void main(String[] args) {
        printNumber(10);
        System.out.println("-------------------");
        printNumber(100);
    }
}

6.打印水仙花数

public class Demo5{
    //把所有的水仙花数打印在控制台
    public static void printFlower() {
        for(int x=100; x<1000; x++) {
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;
            
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x){
                System.out.println(x);
            }
        }
    }
    
    public static void main(String[] args) {
        printFlower();
    }
}

7.方法重载

  在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可

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

案例:

/*
 * 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
 *     并在main方法中进行测试
 */
public class Demo6{
    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;
    }
}

8.方法中参数的传递

  方法的参数是基本数据类型的时候:形式参数的改变不影响实际参数

  形式参数:用于接收实际数据的变量

  实际参数:实际参与运算的变量

当形式参数是引用数据类型时:

  

/*
 * 方法的参数是引用类型:
 *         形式参数的改变直接影响实际参数
 */
public class Demo7{
    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;
            }
        }
    }
}

9.数组元素求和

/*
 * 写一个方法,用于对数组进行求和,并调用方法。
 */
public class Demo8 {
    public static void main(String[] args) {
        // 定义数组
        int[] arr = { 1, 2, 3, 4, 5 };
        int sum = sum(arr);
        
        System.out.println("sum:"+sum);
    }
    
    //第一一个求和方法
    public static int sum(int[] arr) {
        int sum = 0;
        
        for(int x=0; x<arr.length; x++) {
            sum += arr[x];
        }
        
        return sum;
    }
}

 

javase基础5