zoukankan      html  css  js  c++  java
  • Java中的别名现象

    public class beiming {
    
        /**
         * @param 一个类的实例如果用等号直接相连,那么两个实例指向同一个对象.
    * 这样他们调用的属性,或方法就会一直指向左边的实例.有变的会失效.
       *
       *解决的方法是需要让属性相等时调用属性然后用等号相连,这样就不会出现上述现象.
       
        *看例子
    */
    float tom;
    public static void main(String[] args) { beiming b1 = new beiming(); beiming b2 = new beiming(); b1.tom = (float) 12.00; b2.tom = (float) 345.00; System.out.println("b1:tom="+b1.tom+" "+"b2:tom="+b2.tom);      // b1 = b2; b1.tom = b2.tom; //解决方法 System.out.println("b1:tom="+b1.tom+" "+"b2:tom="+b2.tom); b2.tom = (float) 34355.00; System.out.println("b1:tom="+b1.tom+" "+"b2:tom="+b2.tom); } }

    将一个对象传入方法时也会产生别名现象

    public class beiming {
    
        static void f(letter y){  //新建一个静态方法,对传入对象的属性进行赋值
            y.woca = "静态";
        }
        public static void main(String[] args) {
                
            letter l = new letter(); //新建一个对象
            l.woca = "新增加的实例的woca属性"; //对该对象进行赋值.
            System.out.println("woca属性的内容是:"+l.woca);
            
            f(l); //调用方法,放入新建对象,然后输出,这时会发现,引用指向变了,这个需要主要避免.
            
            System.out.println(l.woca);
        }
    }
    
    class letter{ //新建类,用来beiming类测试
        String woca;
    }
  • 相关阅读:
    bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)
    poj 3710 Christmas Game(树上的删边游戏)
    poj 1704 Georgia and Bob(阶梯博弈)
    110 最小路径和
    109 数字三角形
    63 搜索旋转排序数组II
    62 搜索旋转排序数组
    61 搜索区间
    58 四数之和
    关于初始值的问题
  • 原文地址:https://www.cnblogs.com/vawa/p/4013105.html
Copyright © 2011-2022 走看看