java吧 关注:1,231,109贴子:12,693,061
  • 14回复贴,共1

唉..我的思路都混乱了.请大家指点一下..

只看楼主收藏回复

我在几个类里的数据需要相互传递的时候.
我要去实例化其他类的对象.但是我一实例化对象.被实例化的那个类里的数据就会被赋初值..以前对那个类里的数据进行过的操作都白做了..

这个理论上我知道是因为实例化了对象以后是生成一个新的对象
但是我又想传输的是上次对那个数据操作后的值.

如果那个数据不是静态的.那我要怎么来解决呢.

我不知道要怎么表达..不知道这样说有没有人听的懂..我已经被这个问题困饶了3天了.觉都睡不好..我以前觉得好象没这么复杂..但我现在好象是思路上有问题了..转不过来弯了...我是个新手.刚学不久.

如果有比较热心的朋友可以帮帮我的话.我非常感谢.要是我表达的不够清楚.可以加我的QQ 986226544


IP属地:江苏1楼2008-05-01 02:49回复
    很想帮你,可是没听懂你说什


    2楼2008-05-01 17:49
    回复
      可以用Decorator模式


      3楼2008-05-01 18:01
      回复
        • 222.201.143.*
        重新初始化


        4楼2008-05-01 18:12
        回复
          你意思是不是这样:例如我有A.JAVA和B.JAVA两个类。A中有个属性year初始值为2000。你原先实例化一个并赋值
          A a = new A();
          a.year = 1800;
          接着你再次实例化a = new A();
          当取原先a中的year时,取出来是2000?是这个意思么?因为我也每太看明白你要表达什么。如果是的话,你给另取一个名字就可以了啊,例如:
          A a = new A();
          a.year = 1800;
          A aa = new A();
          这时候你取a的属性year值就不是初始化的啦,而是你自己设的。
          欢迎光临俺滴编程技术博客:http://www.ineeke.cn (主要是关于java和.net的)


          5楼2008-05-01 18:43
          回复
            不好意思..我昨天思路比较乱..说的是什么我自己都不太明白..

            其实我主要的意思就是..比如我有3个类 A类 B类 C类
            A类里有一个属性test
            我在B类里对A类的a赋值
            A b = new A();
            b.test = 1000;
            然后在C类里需要用到这个值
            比如C类里有个方法里有一个计算的表达式
            里面需要用到上面test = 1000的这个值.
            我要是在C类里实例化一个对象.得到的只是初始值.
            如果不把test设成static
            那我还有没有其他方法可以在C类里得到test = 1000的这个值呢?


            IP属地:江苏6楼2008-05-01 19:19
            回复
              上面说错了.
              是在B类里对A类的test赋值 打错


              IP属地:江苏7楼2008-05-01 19:20
              回复
                那直接把这个A拿来用不就行


                8楼2008-05-01 21:00
                回复
                  • 221.10.37.*
                  set,get...


                  9楼2008-05-01 21:01
                  回复
                    我是在C类里用啊.
                    要怎么直接哪过来呢?
                    如果实例化的话不是又被赋初值了吗?


                    IP属地:江苏10楼2008-05-01 21:31
                    回复
                      我也听别人说过,但他们是在JBuilder里面用的.他们说是自动生成的.
                      代码忘了怎么写了.
                      我用的是eclipse这个set,get要怎么写呢?


                      IP属地:江苏11楼2008-05-01 21:33
                      回复
                        是自己写一个set()和get()的方法吗?
                        如果是自己写的话那我稍微能明白点了..我现在也是在用自己写的同样作用的方法在做.


                        IP属地:江苏12楼2008-05-01 21:35
                        回复
                          谢谢各位的帮忙..
                          虽然我不知道我用的方法是不是对的.但至少我用我的这种方法最后可以达到我预想中的结果.我也很满意了..

                          谢谢大家..


                          IP属地:江苏13楼2008-05-02 02:47
                          回复
                            javabean的set和get方法,你也可以这样啊:
                            在C类中写一个方法:
                            A xxx = new A();
                            public void setAtest(A xxx){
                             this.xxx = xxx;
                            }
                            在你的B类中:
                            C c = new C();
                            A a = new A();
                            a.test = 1000;
                            c.setAtest(a);
                            然后在你的C类中可以用xxx.test取到1000吧


                            14楼2008-05-02 09:24
                            回复
                              谢谢ineeke
                              我写的方法比较笨.我是把需要的数据都用参数传递
                              你说的这种直接用对象要比我的方法好的多
                              谢谢你了..
                              我会继续多练习的.


                              IP属地:江苏15楼2008-05-02 19:49
                              回复