day06作业

一.方法

1.方法是完成特定功能的代码块。

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

方法体语句;

return返回值;

}

修饰符:目前就用public static。

返回值类型:就是功能结果的数据类型。

方法名:符合命名规则即可。方便调用。

参数:

*形式参数:就是方法定义的,用于接收实际参数的。

*实际参数:就是实际参与运算的。

参数类型:就是参数的数据类型

参数名:就是变量名

方法体语句:就是完成功能的代码

return:结束方法的

返回值:就是功能的结果,由return带给调用者;返回值是什么类型,返回值类型就是该类型

2.有具体返回值

a.单独调用,一般来说没有意义,不推荐。

b.输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。

c.赋值调用,推荐方案。

无具体返回值类型

a.单独调用

b.输出调用(错误)

c.赋值调用(错误)

3.

import java.util.Scanner;
class FunctionSum {
    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();
        int s = add(a,b);
        System.out.println(s);
    }
    public static int add(int a, int b){
        return a + b;
    }
}
import java.util.Scanner;
class FunctionCompare {
    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();
        boolean b = isEquals(x,y);
        System.out.println(b);
    }
    public static boolean isEquals(int a, int b){
        return a == b;
    }
}
import java.util.Scanner;

class Test1_Method {
    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 m = getMax(x,y);
        System.out.println("max = " + m);
        boolean b = isEquals(x,y);
        System.out.println(b);
    }
    public static int getMax(int a,int b){
        return(a > b)? a : b;
    }
}
import java.util.Scanner;

class Test2_Method {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入行数:");
        int m = sc.nextInt();
        System.out.println("请输入列数:");
        int n = sc.nextInt();
        printRectangle(m,n);

    }
    public static void printRectangle(int a,int b){

        for (int i = 1;i <= a ;i++ ) {
            for (int j = 1;j <= b ;j++ ) {
                System.out.print("* ");
            }
            System.out.println();
        }
        return;
    }

}
import java.util.Scanner;

class FunctionMultiplication {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入n:");
        int n = sc.nextInt();
        multiplication(n);

    }

    public static void multiplication(int n){
        for (int i = 1;i <= n ;i++ ) {
            for (int j = 1;j <= i ;j++ ) {
                System.out.print(j + "*" + i + "=" +i*j + "\t");
            }
            System.out.println();
        }
    }
}

4.在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

import java.util.Scanner;

class Test_Overload {
    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();
        boolean b1 = isEquals(x,y);
        System.out.println(b1);
        System.out.println("请输入第一个小数:");
        double m = sc.nextDouble();
        System.out.println("请输入第二个小数:");
        double n = sc.nextDouble();
        boolean b2 = isEquals(m,n);
        System.out.println(b2);
    }
    public static boolean isEquals(int a,int b){
        return a == b;
    }
    public static boolean isEquals(double a,double b){
        return a == b;
    }
}

三.数组

1.数组是存储同一种数据类型多个元素的集合。也可以看成一个容器。

数组既可以存储基本数据类型,也可以存储引用数据类型。

2.数据类型[] 数组名 = new 数据类型[数组的长度];

数据类型[] 数组名 = {元素1,元素2,...}

3.ArrayIndexOutOfBoundsException:数组索引越界异常

NullPointerException:空指针异常

4.

class Test4_Array {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        print(arr);
    }
    public static void print(int[] arr){
        for (int i = 0;i <= arr.length ;i++ ) {
            System.out.print(arr[i] + " ");
        }
    }
}
class Test5_Array {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int m1 = getMax(arr);
        System.out.println(m1);
        int m2 = getMin(arr);
        System.out.println(m2);
    }
    public static int getMax(int[] arr){
        int max = arr[0];
        for (int i = 1;i < arr.length ;i++ ) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }
    public static int getMin(int[] arr){
        int min = arr[0];
        for (int i = 1;i < arr.length ;i++ ) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }
}
class Test6_Array {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        reverseArray(arr);
        print(arr);
    }
    public static void reverseArray(int[] arr){
        for (int i = 0;i < arr.length/2 ;i++ ) {
            int temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
    }
    public static void print(int[] arr){
        for (int i = 0 ;i < arr.length ;i++ ) {
            System.out.print(arr[i] + " ");
        }
    }
}
import java.util.Scanner;

class Test7_Array {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个1~7之间的整数:");
        int i = sc.nextInt();
        char week = getWeek(i);
        System.out.println("星期" + week);
        
    }
    public static char getWeek(int m){
        char[] arr = {' ','一','二','三','四','五','六','日'};
        return arr[m];
    }
}
class Test2_Array {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        int index = getIndex(arr,11);
        System.out.println(index);
    }
    public static int getIndex(int[] arr,int value){
        for (int i = 0;i < arr.length ;i++ ) {
            if (arr[i] == value) {
                return i;
            }
        }
        return -1;
    }
}
class Test8_Array {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
        print(arr);
    }
    public static void print(int[] arr){
        for (int i = 0;i < arr.length ;i++ ) {
            for (int j = 0;j < arr[i].length ;j++ ) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}
class Test9_Array {
    public static void main(String[] args) {
        int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
        int sum = 0;
        for (int i = 0;i < arr.length ;i++ ) {
            for (int j = 0;j < arr[i].length ;j++ ) {
                sum = sum + arr[i][j];
            }
        }
        System.out.println(sum);
    }
}

7.基本数据类型的值传递,不改变原值,因为方法调用后就会弹栈,而局部变量随之消失

引用数据类型的值传递,改变原值,因为即使方法调用后弹栈,但是堆内存中的数组对象还在,可以通过地址继续访问。

posted @ 2018-07-09 20:53  shiki0921  阅读(134)  评论(0编辑  收藏  举报