值传递:
<span style="color: #ff0000;">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;">int</span>[] arr = {1,2,3,4,5<span style="color: #000000;">};
change(arr);
<span style="color: #ff0000;">System.out.println(arr[</span></span><span style="color: #ff0000;">1]); //??? 4</span>
<span style="color: #000000;"> }
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> change(<span style="color: #0000ff;">int</span> a,<span style="color: #0000ff;">int</span> b) { <span style="color: #008000;">//</span><span style="color: #008000;">a=10,b=20</span>
System.out.println("a:"+a+",b:20</span>
a = b; <span style="color: #008000;">//</span><span style="color: #008000;">a=20</span>
b = a + b; <span style="color: #008000;">//</span><span style="color: #008000;">b=40</span>
System.out.println("a:"+a+",b:"+b); <span style="color: #008000;">//</span><span style="color: #008000;">a:20,b:40</span>
<span style="color: #000000;"> }
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> change(<span style="color: #0000ff;">int</span>[] arr) { <span style="color: #008000;">//</span><span style="color: #008000;">arr={1,5};</span>
<span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> x=0; x<arr.length; x++<span style="color: #000000;">) {
</span><span style="color: #0000ff;">if</span>(arr[x]%2==0<span style="color: #000000;">) {
arr[x]</span>*=2<span style="color: #000000;">;
}
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">arr={1,8,5};</span>
<span style="color: #000000;"> }
}
Java 基本类型值传递,引用类型值传递 内存图解:
数据加密
加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。
<span style="color: #008000;">/<span style="color: #008000;">
知识点:
变量
数据类型
运算符
键盘录入
语句
方法
数组
<span style="color: #008000;">*/
<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;
题目要求:
A:数据是小于8位的整数
定义一个int类型的数据
int number = 123456;
B:加密规则
a:首先将数据倒序
结果 654321
b:然后将每位数字都<a href="https://www.jb51.cc/tag/jiashang/" target="_blank" class="keywords">加上</a>5,再用和除以10的余数代替该数字
结果 109876
c:最后将第一位和最后一位数字交换
结果 609871
C:把加密后的结果<a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a>在控制台
通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。
不是直接写成这个样子的:
int[] arr = {1,5,6};
如何把数据转成数组呢?
A:定义一个数据
int number = 123456;
B:定义一个数组,这个时候问题就来了,数组的长度是多少呢?
int[] arr = new int[8]; //不可能超过8
在赋值的时候,我用一个变量记录索引的变化。
定义一个索引值是0
int index = 0;
C:<a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a>每一个数据
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;">//</span><span style="color: #008000;">请输入一个数据</span>
System.out.println("请输入一个数据(小于8位):"<span style="color: #000000;">);
</span><span style="color: #0000ff;">int</span> number =<span style="color: #000000;"> sc.nextInt();
</span><span style="color: #008000;">//</span><span style="color: #008000;">写<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a>实现把number进行加密
</span><span style="color: #008000;">//</span><span style="color: #008000;"><a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a></span>
String result =<span style="color: #000000;"> jiaMi(number);
System.out.println(</span>"加密后的结果是:"+<span style="color: #000000;">result);
}
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
需求:写一个<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a>,把数据number实现加密。
两个明确:
返回值类型:String 做一个字符串的拼接。
参数列表:int number
</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String jiaMi(<span style="color: #0000ff;">int</span><span style="color: #000000;"> number) {
</span><span style="color: #008000;">//</span><span style="color: #008000;">定义数组</span>
<span style="color: #0000ff;">int</span>[] arr = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">int</span>[8<span style="color: #000000;">];
</span><span style="color: #008000;">//</span><span style="color: #008000;">定义索引</span>
<span style="color: #0000ff;">int</span> index = 0<span style="color: #000000;">;
</span><span style="color: #ff0000;">//把number中的数据想办法放到数组中
while(number > 0) {
arr[index] = number%10;
index++;
number /= 10;
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">把每个数据加5,然后对10取得余数</span>
<span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> x=0; x<index; x++<span style="color: #000000;">) {
arr[x] </span>+= 5<span style="color: #000000;">;
arr[x] </span>%= 10<span style="color: #000000;">;
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">把第一位和最后一位交换</span>
<span style="color: #0000ff;">int</span> temp = arr[0<span style="color: #000000;">];
arr[</span>0] = arr[index-1<span style="color: #000000;">];
arr[index</span>-1] =<span style="color: #000000;"> temp;
</span><span style="color: #008000;">//</span><span style="color: #008000;">把数组的元素拼接成一个字符串返回
</span><span style="color: #008000;">//</span><span style="color: #008000;">定义一个空<a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>字符串</span>
String s = ""<span style="color: #000000;">;
</span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> x=0; x<index; x++<span style="color: #000000;">) {
s </span>+=<span style="color: #000000;"> arr[x];
}
</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> s;
}
}
原文链接:https://www.f2er.com/java/403353.html