Java 自学(七)——方法

文章介绍了Java中值传递的概念,分别展示了基本类型和引用类型作为参数时的区别。接着提供了两个示例,一个是查找整型数组中元素索引的方法,另一个是生成包含数字和字母的随机验证码的方法。最后,文章演示了一个简单的数字密码加密过程,通过加5和取模10实现数字反转的加密效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法

值传递

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");
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值