zoukankan      html  css  js  c++  java
  • 简单基础的问题,但是非常容易出错.

    大家分析分析,为什么会出现这种情况:
    一个Airport类,包括机场名和对应的航班.

     1    
     2public class Airport
     3{
     4    private String mAirportName;
     5    private String[]  mAirlines=new String[10];
     6    
     7    private void Init()
     8    {
     9        for(int i=0;i<10;i++)
    10        {
    11            mAirlines[i]="";
    12        }

    13    }

    14    public Airport(String airport,String[] airlines)
    15    {
    16        Init();
    17        mAirportName=airport;
    18        mAirlines=airlines;
    19    }

    20    public void serAirport(String value)
    21    {
    22        mAirportName=value;
    23    }

    24    public String getAirport()
    25    {
    26        return mAirportName;
    27    }

    28    public void setAirlines(String[] airlines)
    29    {
    30        mAirlines=airlines;
    31    }

    32    public String[] getAirlines()
    33    {
    34        return mAirlines;
    35    }

    36}

    调用此类的代码为:

     1    private static void loadAirportsAndAirlines()
     2        {
     3            String strAirport="LGA";
     4            Airport[] mAirport=new Airport[2];
     5                String[] strAirlines=new String[10];
     6            for(int i=0;i<10;i++)
     7                strAirlines[i]="";
     8
     9            strAirlines[0]="AER LINGUS";
    10            strAirlines[1]="AIR ARUBU";
    11            strAirlines[2]="AMERICAN WEST";
    12            strAirlines[3]="AMERICAN INTL";
    13            strAirlines[4]="SOUTHWEST";
    14            strAirlines[5]="DELTA INTL";
    15            strAirlines[6]="MARK AIR";
    16            strAirlines[7]="SAS";
    17            strAirlines[8]="US AIR";
    18            strAirlines[9]="CHINA EAST";
    19            mAirport[0]=new Airport(strAirport,strAirlines);
    20            //strAirlines=new String[200];
    21        //    for(int i=0;i<200;i++)
    22            //    strAirlines[i]="";
    23            strAirport="JFK Airport";
    24            strAirlines[0]="BAER LINGUS";
    25            strAirlines[1]="BAIR ARUBU";
    26            strAirlines[2]="BAMERICAN WEST";
    27            strAirlines[3]="BAMERICAN INTL";
    28            strAirlines[4]="BSOUTHWEST";
    29            strAirlines[5]="DELTA INTL";
    30            strAirlines[6]="MARK AIR";
    31            strAirlines[7]="SAS";
    32            strAirlines[8]="US AIR";
    33            strAirlines[9]="CHINA EAST";
    34            mAirport[1]=new Airport(strAirport,strAirlines);
    35            //为什么mAirport[0]的mAirport[0]和mAirport[1]的getAirlines()的结果是一样呢?
    36        }

    你运行时会发现mAirport[0]和mAirport[1]的getAirlines()的结果是一样的,也就是说mAirport[0]这个Airport类的mAirlines[10]和mAirport[1]的一样,为什么?
  • 相关阅读:
    Linux:备份
    在 Cordova/Phonegap for Android 中包含中文文件名的页面
    jQuery插件开发
    为Google Reader守夜。。。
    冒泡排序
    无题六月
    XXX读后感
    KL25的AD采集操作
    工作流--JBPM简介及开发环境搭建
    内存错误:CRT detected that the application wrote to memory after end of heap buffer
  • 原文地址:https://www.cnblogs.com/confach/p/145813.html
Copyright © 2011-2022 走看看