加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

06-02 Java值传递、数据加密

发布时间:2020-12-14 06:10:01 所属栏目:Java 来源:网络整理
导读:值传递: span style="color: #ff0000;"gt;Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响。基本类型传递的是数据值 引用类型:形式参数的改变直接影响实际参数。引用类型传递的是地址值 span style="color: #008000;"*/ span style="c

值传递:

<span style="color: #ff0000;"&gt;Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响。基本类型传递的是数据值 引用类型:形式参数的改变直接影响实际参数。引用类型传递的是地址值

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> ArgsDemo {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #0000ff;">int a = 10<span style="color: #000000;">;
<span style="color: #0000ff;">int b = 20<span style="color: #000000;">;
System.out.println("a:"+a+",b:"+b); <span style="color: #008000;">//<span style="color: #008000;">a:10,b:20
<span style="color: #000000;"> change(a,b);
System.out.println("a:"+a+",b:"+b); <span style="color: #008000;">//<span style="color: #008000;">??? a:10,b:20

    <span style="color: #0000ff;"&gt;int</span>[] arr = {1,2,3,4,5<span style="color: #000000;"&gt;}; 
    change(arr);
    <span style="color: #ff0000;"&gt;System.out.println(arr[</span></span><span style="color: #ff0000;"&gt;1]); //???    4</span>

<span style="color: #000000;"> }

</span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;void</span> change(<span style="color: #0000ff;"&gt;int</span> a,<span style="color: #0000ff;"&gt;int</span> b) { <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;a=10,b=20</span>
    System.out.println("a:"+a+",b:20</span>
    a = b;    <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;a=20</span>
    b = a + b; <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;b=40</span>
    System.out.println("a:"+a+",b:"+b); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;a:20,b:40</span>

<span style="color: #000000;"> }

</span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;void</span> change(<span style="color: #0000ff;"&gt;int</span>[] arr) { <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;arr={1,5};</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<arr.length; x++<span style="color: #000000;"&gt;) {
        </span><span style="color: #0000ff;"&gt;if</span>(arr[x]%2==0<span style="color: #000000;"&gt;) {
            arr[x]</span>*=2<span style="color: #000000;"&gt;;
        }
    }
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;arr={1,8,5};</span>

<span style="color: #000000;"> }
}

Java 基本类型值传递,引用类型值传递 内存图解:

?

?数据加密

题目要求: A:数据是小于8位的整数 定义一个int类型的数据 int number = 123456; B:加密规则 a:首先将数据倒序 结果 654321 b:然后将每位数字都加上5,再用和除以10的余数代替该数字 结果 109876 c:最后将第一位和最后一位数字交换 结果 609871 C:把加密后的结果输出在控制台 通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。 不是直接写成这个样子的: int[] arr = {1,5,6}; 如何把数据转成数组呢? A:定义一个数据 int number = 123456; B:定义一个数组,这个时候问题就来了,数组的长度是多少呢? int[] arr = new int[8]; //不可能超过8 在赋值的时候,我用一个变量记录索引的变化。 定义一个索引值是0 int index = 0; C:获取每一个数据 int ge = number%10 int shi = number/10%10 int bai = number/10/10%10 arr[index] = ge; index++; arr[index] = shi; index++; arr[index] = bai; ...

<span style="color: #008000;">/
<span style="color: #008000;">/
<span style="color: #008000;">
知识点:
变量
数据类型
运算符
键盘录入
语句
方法
数组
<span style="color: #008000;">*/
<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;

<span style="color: #0000ff;">class<span style="color: #000000;"> JiaMiDemo2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">创建键盘录入对象
Scanner sc = <span style="color: #0000ff;">new<span style="color: #000000;"> Scanner(System.in);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;请输入一个数据</span>
    System.out.println("请输入一个数据(小于8位):"<span style="color: #000000;"&gt;);
    </span><span style="color: #0000ff;"&gt;int</span> number =<span style="color: #000000;"&gt; sc.nextInt();

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;写功能实现把number进行加密
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;调用</span>
    String result =<span style="color: #000000;"&gt; jiaMi(number);
    System.out.println(</span>"加密后的结果是:"+<span style="color: #000000;"&gt;result);
}

</span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt;
    需求:写一个功能,把数据number实现加密。
    两个明确:
        返回值类型:String 做一个字符串的拼接。
        参数列表:int number
</span><span style="color: #008000;"&gt;*/</span>
<span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> String jiaMi(<span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt; number) {
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;定义数组</span>
    <span style="color: #0000ff;"&gt;int</span>[] arr = <span style="color: #0000ff;"&gt;new</span> <span style="color: #0000ff;"&gt;int</span>[8<span style="color: #000000;"&gt;];

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;定义索引</span>
    <span style="color: #0000ff;"&gt;int</span> index = 0<span style="color: #000000;"&gt;;

    </span><span style="color: #ff0000;"&gt;//把number中的数据想办法放到数组中
    while(number > 0) {
        arr[index] = number%10;
        index++;
        number /= 10;
    }

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;把每个数据加5,然后对10取得余数</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<index; x++<span style="color: #000000;"&gt;) {
        arr[x] </span>+= 5<span style="color: #000000;"&gt;;
        arr[x] </span>%= 10<span style="color: #000000;"&gt;;
    }

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;把第一位和最后一位交换</span>
    <span style="color: #0000ff;"&gt;int</span> temp = arr[0<span style="color: #000000;"&gt;];
    arr[</span>0] = arr[index-1<span style="color: #000000;"&gt;];
    arr[index</span>-1] =<span style="color: #000000;"&gt; temp;

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;把数组的元素拼接成一个字符串返回
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;定义一个空内容字符串</span>
    String s = ""<span style="color: #000000;"&gt;;

    </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<index; x++<span style="color: #000000;"&gt;) {
        s </span>+=<span style="color: #000000;"&gt; arr[x];
    }

    </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; s;
}

}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读