方法创建一个对象,我从另一个对象调用该方法

时间:2009-05-12 17:59:17

标签: php cakephp

如果方法创建了一个对象并且我从另一个对象调用该方法,那么最后一个对象是否可以访问第一个对象的属性和方法?

5 个答案:

答案 0 :(得分:1)

那里有一些无关的信息可能让你感到困惑。

方法和对象(在这种情况下)彼此断开连接。那么问题就变成了,您是否将创建的对象存储在第二个对象可以访问的范围内?

答案 1 :(得分:1)

  

在路由器中,在方法中,在包含中   file是控制器代码。在里面   模型,在视图中,我需要访问   控制器的属性和   方法。在路由器中,在另一个中   方法,我想返回一个控制器   对象到模型和视图。什么   现在??

如果我理解这个问题,你对MVC有点困惑。路由器类是一个蛋糕内部类,绝不应该永远不会永远不会被改变。那些“永远不会”甚至没有复制粘贴,它们都是真正输入的。

其次,模型类甚至不知道任何称为控制器的东西。 Controller 使用模型,而不是相反。如果您的模型需要控制器中的某些内容,请将其作为参数传递。除此之外的任何事情都只是糟糕的设计。

此外,可以从视图中调用控制器操作,但强烈建议不要这样做。控制器是为视图准备所有数据的控制器,因此视图不需要访问控制器(除此之外,超出了本问题的范围)。

我建议您阅读about MVCcake's typical request,并至少浏览basic blog tutorial

答案 2 :(得分:0)

如果在某处返回/存储,则可以访问公共字段和方法。

答案 3 :(得分:0)

编辑:根据标签的更改,此答案不再相关。我留下它来保留评论...

原始答案:

喜欢这个?:

public MyObject CreateObject()
{
   return new MyObject() { FirstProperty = "Hello World" };
}

public Main()
{
    MyObject n = CreateObject();
    Console.WriteLine(n.FirstProperty);
}

或者这个?:

class Program
{
    MyObject _myObject;

    public void CreateObject()
    {
        _myObject = new MyObject() { FirstProperty = "Hello World" };
    }

    public Main()
    {
        Console.WriteLine(_myObject.FirstProperty);
    }
}

在这两种情况中的任何一种情况下,确保您可以访问对象的属性。如果这不是你的意思,我不确定如何回答你的问题,你需要澄清。

答案 4 :(得分:0)

仅当方法保留对其创建的对象的引用时。