1. 如果x是一个类的对象且是可修改的,如List,Set等,用下面这种方式
Oneclass one = new Oneclass(new Integer(x));
Oneclass two = new Oneclass(new Integer(x));
2. 如果x是一个基本类型的变量如int, float, double, long, boolean,和不可变的类的对象如Integer, Double, String,用下面这种方式
int x = 50;
创建两个个实例:
Oneclass one = new Oneclass(x);
Oneclass two = new Oneclass(x);

解决方案 »

  1.   

    int x = 50;
    创建两个个实例:
    Oneclass one = new Oneclass(x);
    Oneclass two = new Oneclass(x);
    当我在程序后面通过one.a = 100;修改了one的值,由于two也是引用x的地址创建的,所以two.a也会跟随变为100,尽管我没有直接修改two的值。不对吧?
      

  2.   

    在java里,给自定义对象赋值实际上是赋值引用。one 和 two是两个不同的对象 各自有不同的属性值 你修改one 不影响two。
    除非你这样
    Oneclass one=new Oneclass(x);
    Oneclass two=one;后面的程序你修改one.a=100 two所指向跟one是同一个对象,所以two会跟着变动。
      

  3.   

    我也纳闷,怎么会是这样
    package pk;class Oneclass {
    int a; Oneclass(int x1) {
    a = x1;
    }
    }public class Inhiretance {
    public static void main(String[] args) {
    int x = 50;
    Oneclass one = new Oneclass(x);
    Oneclass two = new Oneclass(x);
    two.a = 100;
    System.out.println(one.a);
    }
    }
    问题没还没组织好吧楼主
      

  4.   

    基本类型外加String都不会有楼主说的问题。
      

  5.   

    楼主理解错了  one和two是两个不同的对象,存储在内存的不同位置,修改one的属性,two的属性是不会改变的  楼主可亲自试一下
      

  6.   

    不是吧。不是两个对象,又不是静态属性。two会变???不会吧