草庐IT

Instantiation

全部标签

java - 继承:对象创建

假设我有这段代码:classAnimal{intlegs=4;inthead=1;}publicclassDogextendsAnimal{publicstaticvoidmain(String[]args){Dogdog=newDog();}}我知道super()隐式地放在无参数构造函数的第一行,所以我知道Animal构造函数将被执行,所以Animal的实例变量将被设置。为此,我想了解,一旦这些变量被super构造函数(Animal)初始化,这些实例变量是否将保留在Animal对象中或复制到子类(狗)。在第一种情况下,Animal对象将由super();隐式实例化,每当实例Dog需要

java - 避免在java中实例化一个类

最近我遇到一个问题:如何避免实例化Java类?不过,我的回答是:如果您不想实例化一个类,请使用“抽象”修饰符。例如:javax.servlet.HttpServlet被声明为抽象的(尽管它的方法都不是抽象的)以避免实例化。声明一个无参数私有(private)构造函数。现在我的问题是a)还有其他方法吗?b)为什么有人不想实例化一个类?-在SO中搜索后,我从this了解到可以使Util类不实例化。我们不想在OOP中实例化类的其他任何地方? 最佳答案 我想到了四个原因:允许子类而不是父类被实例化;禁止直接实例化,而是提供一个工厂方法来返回

python 3.2 插件工厂 : instantiation from class/metaclass

我是从这里的信息中提取的:Metaclassnotbeingcalledinsubclasses我的问题是我无法使用此类注册表创建对象的实例。如果我使用“常规”构造方法,那么它似乎正确地实例化了对象;但是当我尝试使用与注册表关联的类对象时,我收到错误消息,提示我传递的参数数量不正确。(似乎是在调用元类new而不是我的构造函数...??)我不清楚它失败的原因,因为我认为我应该能够使用“可调用”语法从类对象创建一个实例。似乎我正在将元类而不是类本身放入注册表中?但是我没有看到在new调用中访问类本身的简单方法。这是我的代码示例,它无法实例化变量“d”:registry=[]#listofs

python - Python 是否在对象实例化时复制值或引用?

也许是一个简单的问题,但我无法完全表达我的Google查询以在此处找到答案。我有在将对象传递给对象构造函数时制作对象副本的习惯,如下所示:...def__init__(self,name):self._name=name[:]...但是,当我运行以下测试代码时,似乎没有必要,因为Python在对象实例化时对对象值进行深度复制:>>>classCandy(object):...def__init__(self,flavor):...self.flavor=flavor...>>>flav="cherry">>>a=Candy(flav)>>>a>>>a.flavor'cherry'>>>

Swift:实例化符合协议(protocol)的类(AnyClass)

我想实现类似“registerClassForAction”的东西。为此,我定义了一个协议(protocol):@objcprotocolTestProt{functestMe()->String}让我们做一个类声明:classTestClass:NSObject,TestProt{functestMe()->String{return"test"}}我定义了在另一个类中注册对象的函数:funcregisterClassForAction(aClass:AnyClass){...}切换到REPL,我将模拟register方法:letaClass:AnyClass=TestClass.c

Swift:实例化符合协议(protocol)的类(AnyClass)

我想实现类似“registerClassForAction”的东西。为此,我定义了一个协议(protocol):@objcprotocolTestProt{functestMe()->String}让我们做一个类声明:classTestClass:NSObject,TestProt{functestMe()->String{return"test"}}我定义了在另一个类中注册对象的函数:funcregisterClassForAction(aClass:AnyClass){...}切换到REPL,我将模拟register方法:letaClass:AnyClass=TestClass.c

ModelSim报错:Instantiation of ‘***‘ failed. The design unit was not found.

在使用Quartus与ModelSim联合仿真时,由于使用了不可综合的module放在testbench中,导致出现标题中的错误,在ModelSim中提示上述错误并显示errorlodingdesign.因此将原因和解决办法记录下来,防止以后忘记.1.原因在使用Quartus时,由于硬件原因,没有办法直接调试硬件参数,故使用一个不能被综合的module来给Topmodule提供数据,该module被例化在testbench中与Topmodule相连接.该module无法被综合,也就无法像其他design一样正常调用.只能在tesetbench中使用.如果不经过改动,Quartus综合后无错误和

ModelSim报错:Instantiation of ‘***‘ failed. The design unit was not found.

在使用Quartus与ModelSim联合仿真时,由于使用了不可综合的module放在testbench中,导致出现标题中的错误,在ModelSim中提示上述错误并显示errorlodingdesign.因此将原因和解决办法记录下来,防止以后忘记.1.原因在使用Quartus时,由于硬件原因,没有办法直接调试硬件参数,故使用一个不能被综合的module来给Topmodule提供数据,该module被例化在testbench中与Topmodule相连接.该module无法被综合,也就无法像其他design一样正常调用.只能在tesetbench中使用.如果不经过改动,Quartus综合后无错误和

c# - 为什么可以在没有 new 关键字的情况下实例化结构?

为什么我们不像在使用类时那样强制实例化一个结构体? 最佳答案 Whyarewenotforcedtoinstantiateastructwith"new",likewhenusingaclass?当您“新建”一个引用类型时,会发生三件事。首先,内存管理器从长期存储中分配空间。其次,将该空间的引用传递给初始化实例的构造函数。第三,该引用被传递回调用者。当您“新建”一个值类型时,会发生三件事。首先,内存管理器从短期存储分配空间。其次,向构造函数传递对短期存储位置的引用。构造函数运行后,短期存储位置中的值将被复制到该值的存储位置,无论它恰

c# - 为什么可以在没有 new 关键字的情况下实例化结构?

为什么我们不像在使用类时那样强制实例化一个结构体? 最佳答案 Whyarewenotforcedtoinstantiateastructwith"new",likewhenusingaclass?当您“新建”一个引用类型时,会发生三件事。首先,内存管理器从长期存储中分配空间。其次,将该空间的引用传递给初始化实例的构造函数。第三,该引用被传递回调用者。当您“新建”一个值类型时,会发生三件事。首先,内存管理器从短期存储分配空间。其次,向构造函数传递对短期存储位置的引用。构造函数运行后,短期存储位置中的值将被复制到该值的存储位置,无论它恰