一、
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+" ");
}
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、参数传递问题
基本数据类型的值传递,不改变原值,因为方法调用后就会弹栈,而局部变量随之消失。
引用数据类型的值传递,改变原值,因为即使方法调用后弹栈,但是堆内存中的数组对象还在,可以通过地址(引用)继续访问.