06

一、

1、一段可重复调用的代码段

  格式:public static 返回值类型 方法名称 (类型 参数1,类型 参数2,…){

         程序语句;

         return 表达式;

}

2、 返回值类型 变量=方法名称(参数1,参数2…);

方法名称(参数1,参数2…);

3、(1)两个数的和

import java.util.Scanner;
public class Test1 
{
    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 m,int n){
        int sum = m + n;
        return sum;
    }

}

(2)判断两个数是否相等

import java.util.Scanner;
public class Test1 
{
	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 = equals(x,y);
		System.out.println(b);
	}
	public static boolean equals(int m,int n){
		return m==n;
	}

}

3、获取两个数中较大的数

import java.util.Scanner;
public class Test1 
{
	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);
	}
	public static int getMax(int m,int n){
		return (m>n)?m:n;
	}

}

4、打印m行n列星型矩形

import java.util.Scanner;
public class Test1 
{
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数:");
		int row = sc.nextInt();
		System.out.println("请输入第二个数:");
		int column = sc.nextInt();
		squareness(row,column);
	}
	public static void squareness(int m,int n){
		for (int i=1;i<=m ;i++ ){
			for (int j=1;j<=n ;j++ ){
				System.out.print("*");
			}
			System.out.println();
		}
	}

}

打印nn乘法表

import java.util.Scanner;
public class Test1 
{
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个整数,范围在1-9");
		int num = sc.nextInt();
		printnn(num);
	}
	public static void printnn(int n){
		for (int i=1;i<=n ;i++ ){
			for (int j=1;j<=i ;j++ ){
				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();
		}
	}

} 

4、重载:方法名称相同,参数类型和参数个数不同。

public class Test1 
{
	public static void main(String[] args) 
	{
		int sum1=add(10,20);
		System.out.println(sum1);
		int sum2=add(10,20,30);
		System.out.println(sum2);
		double sum3=add(10,20.0);
		System.out.println(sum3);
	}
	public static int add(int a,int b){
		return a+b;
	}
	public static int add(int a,int b,int c){
		return a+b+c;
	}
	public static double add(int a,double b){
		return a+b;
	}

  一个数组内存图:

两个数组内存图:

三个数组两个引用内存图:

三、数组

数组的概念:数组是一组相关数据的集合。

特点:可以存储基本数据类型,也可以存储引用数据类型。存储的数据类型相同。

2、一维数组定义格式

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

3、数组操作的两个小问题

a:ArrayIndexOutOfBoundsException:数组索引越界异常

   b:NullPointerException:空指针异常

4、数组常见操作:

(1)数组遍历:

public class Test1 
{
	public static void main(String[] args) 
	{
		int[] arr={8,2,4,5,6};
		print(arr);
	}
	public static void print(int[] arr){
		for (int i=0;i<arr.length ;i++ ){
			System.out.println(arr[i]+"");
		}
	}	
}

  (2)数组获取最值

public class Test1 
{
	public static void main(String[] args) 
	{
		int[] arr={8,2,4,5,6};
		int m=getMax(arr);
		System.out.println(m);
	}
	public static int getMax(int[] arr){
		int max=arr[0];
		for (int i=1;i<arr.length ;i++ ){
			if (max<arr[i]){
				max=arr[i];
			}
		}
		return max;
	}	
}

  

(3)数组元素逆序

public class Test1 
{
    public static void main(String[] args) 
    {
        int[] arr={8,2,4,5,6};
        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]+" ");
        }
    }
}

(4)数组查表法(根据键盘录入索引,查找对应星期)

import java.util.Scanner;
public class Test1 
{
	public static void main(String[] args) 
	{
		System.out.println("请输入数字1-7:");
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		System.out.println("星期"+getWeek(a));
	}
	public static char getWeek(int week){
		char[] arr={' ','一','二','三','四','五','六','日',};
		return arr[week];
	}
}

(5)数组元素查找(查找指定元素第一次在数组中出现的索引)

public class Test1 
{
	public static void main(String[] args) 
	{
		int[] arr={3,6,4,1,8,9};
		int index = getIndex(arr,8);
		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;
	}
}

  

5、二维数组的定义格式

数据类型[][]  数组名= new 数据类型[m][n];

数据类型 数组名[][] = new 数据类型[m][n];
     数据类型[] 数组名[] = new 数据类型[m][n];

6、(1)二维数组遍历

public class Test1 
{
	public static void main(String[] args) 
	{
		int[][] arr={{1,2,3},{4,5},{6,7,8,9}};
		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();
		}
	}

}

  (2)公司年销售额求和

public class Test1 
{
	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 19:09  Object,  阅读(271)  评论(0编辑  收藏  举报