方法
值传递
1.基本类型和弓|用类型的参数在传递的时候有什么不同 ?
都是值传递。 基本类型的参数传输存储的数据值。 引用类型的参数传输存储的地址值。
//基本类型的参数传输存储的数据值
public class Test {
public static void main(String[] args) {
int a = 10;
change(a);
System.out.println(a); // 10
}
public static void change(int a){
System.out.print1n(a);// 10 a=20;
System.out.println(a); // 20
}
}
//引用类型的参数传输存储的地址值
public class Test{
public static void main(String[] args){
int[] arrs = new int[]{10, 20, 30};
change(arrs);
System.out.println(arrs[1]); //222(值改变了)
}
public static void change(int[] arrs){
System. out. println("方法内部2: "+arrs[1]); // 20 arrs[1] = 222;
System. out . println("方法内部2: "+arrs[1]); // 222
}
}
实例
1.设计一个方法可以接收整型数组和要查询的元素值; 最终要返回元素在该数组中的索引, 如果数组中不存在该元素则返回-1
//
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int[] arrs=new int[5];
for(int i=0;i<5;i++){
arrs[i]=s.nextInt();
}
int a=s.nextInt();
System.out.println(sosuo(arrs,a));
}
public static int sosuo(int[] arrs,int a){
for (int i = 0; i < arrs.length; i++) {
if (arrs[i] == a) {
return i;
}
}
return -1;//注意不要忘记
}
2.定义方法实现随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。
public class practice {
public static void main(String[] args) {
System.out.println(ma());
}
public static String ma(){
String chuan="";
Random r=new Random();
for(int i=0;i<5;i++){
//设置规则,type=0--大写字母;type=1--小写字母;type=2--数字
int type=r.nextInt(3);
switch (type){
case 0:
char c=(char)(r.nextInt(26)+65);
chuan +=c;
break;
case 1:
char c1=(char)(r.nextInt(26)+97);
chuan +=c1;
break;
case 2:
chuan +=r.nextInt(10);
break;
}
}
return chuan;
}
}
3.某系统的数字密码:比如1983, 采用加密方式进行传输,规则如下: 先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转, 得到一串新数。
import java.util.Scanner;
public class practice {
public static void main(String[] args) {
Scanner s= new Scanner(System.in);
System.out.println("请输入需要加密的密码位数:");
int num=s.nextInt();
int[] arr=new int[num];
for(int i=0;i<num;i++){
arr[i]=s.nextInt();
}
code(arr,num);
}
public static void code(int[] arr,int num){
int[] brr=new int[num];
for(int i=0;i<arr.length;i++){
arr[i]=(arr[i]+5)%10;
brr[num-i-1]=arr[i];
}
for(int i=0;i<brr.length;i++){
System.out.print(brr[i]+"\t");
}
}
}