我已经编程很长时间了,每当我阅读或听到实例或实例化这些词时,我都会对正在谈论的内容有所了解,但我并不完全确定。
我了解对象的实例是当我们创建一个新对象并在内存中为其保留空间时:
Object obj = new Object();
我是正确的?我忘记了什么?有没有我遗漏的信息?
我已经编程很长时间了,每当我阅读或听到实例或实例化这些词时,我都会对正在谈论的内容有所了解,但我并不完全确定。
我了解对象的实例是当我们创建一个新对象并在内存中为其保留空间时:
Object obj = new Object();
我是正确的?我忘记了什么?有没有我遗漏的信息?
在面向对象编程或 OOP 中,我们必须区分两个不同的概念:
也就是说,您可以从一个类中创建无限的对象或实例。
请注意,前面的定义并未指明对象或实例将在何处或如何创建,在这种情况下,这是一个不相关的方面。例如,在 C++ 等语言中,您可以选择是在动态内存(堆)还是在程序堆栈(堆栈)中创建对象:
但是,并非所有语言都必须如此,因为每种语言都有自己的特点,而面向对象的编程理论与所使用的语言无关。
类的实例是从它存在的那一刻起的对象;能够访问:
取决于他们拥有的访问修饰符
public
private
protected
我们还要记住,实例使我们能够分配类可能期望通过其内部构造方法接收和操作的值。
我们采用这个过程是因为有这样的类:
它只代表:
但可以这么说,那里的课是不能说话和展示它的内容的;至少在表示它的对象接收到其构造方法的可能值并因此可以访问它包含的动作或动词之前不会。
然而,要拥有一个代表类的对象,并不一定要使用实例;至少不具有通用结构。
我们可以使用
static factory method
,因为我不熟悉 Java,所以我给你一个 PHP 的例子,但它也应该让你知道如何:protected
为构造方法static
为不直接依赖于类外的实例,如下所示:示例代码:
这给了我们以下输出:
看下面的例子:
在这两种情况下,我们都观察到以下结果:
在这两种情况下,我们观察到我们以常规方式以及通过在静态方法中返回实例的方式获得了Demo类的实例化对象。
有趣的阅读和参考