zoukankan      html  css  js  c++  java
  • java的值传递机制

    一、练习:编写Java程序,将二维数组中的行列互调显示出来。

      代码1为自己编写:

     1 package com.xxgpra.CH6;
     2 
     3 public class Hangliehudiao_pra4 {
     4     
     5     public static void main(String[] args) {
     6         
     7         int[][] arr1 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
     8         Hangliehudiao_pra4 hang = new Hangliehudiao_pra4();
     9         
    10         System.out.println("数组原有内容: ");
    11         hang.showArray(arr1);
    12         
    13         for(int i = 0;i< arr1.length;i++){      
    14             for(int j = 0;j<3;j++){
    15                 int temp = 0;
    16                 temp = arr1[i][j];
    17                 arr1[i][j] =arr1[j][i];
    18                 arr1[j][i] = temp;
    19             }
    20             
    21         }
    22         
    23         System.out.println("数组现有内容: ");
    24         hang.showArray(arr1);     //变化后的数组指向同一地址,所以打印出来的结果一样
    25 
    26         
    27     }
    28 
    29     private void showArray(int[][] arr1) {
    30         
    31         for(int i = 0;i<arr1.length;i++){
    32             for(int j = 0;j<arr1.length;j++){
    33                 System.out.println(arr1[i][j]);
    34             }
    35             System.out.println();
    36         }
    37         
    38     }
    39 }

    代码2为参考答案:

     1 public class Eval { // 创建类
     2     public static void main(String[] args) {
     3         int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
     4         System.out.println("数组原有内容:");
     5         for(int i = 0;i<arr.length;i++){
     6             for(int j=0;j<arr.length;j++){
     7                 System.out.print(arr[i][j]);
     8             }
     9             System.out.println();
    10         }
    11         System.out.println("行列互换后数组内容:");
    12         for(int i = 0;i<arr.length;i++){
    13             for(int j=0;j<arr.length;j++){
    14                 System.out.print(arr[j][i]);
    15             }
    16             System.out.println();
    17         }
    18     }
    19 }

    代码1打印的结果,都为行列互调后的数组。它们指向了同一地址。

    二、知识点:java的值传递机制

    1.概念
    形参:方法在声明时的参数
    实参:方法在调用时,实际传递给参数的变量、值

    2.java参数传递机制:值传递
    规则:如果传递的是基本数据类型的变量,那么将基本数据类型的变量的值传递过去。
    如果传递的是引用数据类型的变量,那么将引用数据类型的变量的地址值传递过去。

    3.典型例题与内存解析:

  • 相关阅读:
    c# 国际化国家代码
    转:Oracle Connect By用法
    函数关系: 单射 满射 双射
    python 乱码
    2010年下半年全国计算机技术与软件专业技术资格(水平)考试试题下载
    HDU1068 Girls and Boys 最大独立子集
    HDU1151 Air Raid 最小简单路径覆盖
    POJ2411 Mondriaan's Dream 状态压缩+DP
    HDU1556 方格取数(1) 状态压缩+dp
    POJ2239 Selecting Courses 二分匹配
  • 原文地址:https://www.cnblogs.com/developmental-t-xxg/p/10096303.html
Copyright © 2011-2022 走看看