标签: instantiation

内部类实例化说明

我不明白内部类 CHameleon 的功能。我不明白第8行理论上意味着什么。

我认为这意味着生成将在内部类外部访问的 JFrame 的重复版本,以便操作预期的 JFrame 对象。

编辑:代码带来空指针异常错误,因为 JFrame 对象从未被引用。解决方案:将JFrame框架修改为最终的JFrame框架。

这就提出了一个问题:如果有多个 JFrame 怎么办?

例如,如果我有一个班级花园,里面有不同的蔬菜,我创建了一个内部班级色板来为这些蔬菜着色。是创建针对特定蔬菜的特定类的唯一解决方案吗?因此,为了回答我自己的问题,在多个 JFrame 的情况下,它们会显示为不同类型的类,我的情况是?

public class LabelsButtonsPanelsandSnakes {

public static void main(String[] args){
    final JFrame frame = new JFrame("Test"); 

    JMenuBar menuBar = new JMenuBar();  //menubar  
    JMenu menu = new JMenu("Menu");

    JMenuItem chameleon = new JMenuItem("Change Color"); 

    class CHameleonaction implements ActionListener{ //inside class opens 
        JFrame frameHolder;                          //line 8
        public void actionPerformed(ActionEvent e)
        {
            frame.getContentPane().setBackground(new Color(112,253,95));
        }
    }                                                //inside class ends 
    chameleon.addActionListener(new CHameleonaction()); 

    menuBar.add(menu);
    frame.setJMenuBar(menuBar);
}
Run Code Online (Sandbox Code Playgroud)

java swing instantiation inner-classes

3
推荐指数
1
解决办法
166
查看次数

CODESYS 中众多功能块的实例化 (IEC61131)

我使用 CODESYS 制作了一个功能块来执行电能计量。该功能块的输入是电流和电压,输出是能量。现在,我们需要有 1000 个该功能块的实例来运行我们拥有的 1000 米的代码。编写(可能还有复制和粘贴)这些实例似乎并不是最有趣的工作。想知道是否有人有更聪明的方法来进行如此众多的实例化。

例如,以下是 2 个实例的代码(在 CODESYS 中)的样子:

meter_instance1(CURRENT:=I1, VOTAGE:=V2);
Energy1:= meter_instance1.ENERGY;

meter_instance2(CURRENT:=I2, VOTAGE:=V2);
Energy2:= meter_instance2.ENERGY;
Run Code Online (Sandbox Code Playgroud)

我们希望有 1000 个实例。任何想法都会受到高度赞赏。

plc real-time instantiation codesys iec61131-3

3
推荐指数
1
解决办法
1765
查看次数

Swift 中计算属性和将函数设置为变量之间的区别

我有这两种方法来设置我在SO中看到的字符串。

我想知道其中一种相对于另一种的优势是什么,以及是否有人可以给我该语法的文章或文档的链接。

我相信第一个称为计算属性,并且我已阅读 swift.org 上的计算属性部分。

我认为第二个实际上只是将常量名称“string2”设置为闭包,但我可能没有将其称为正确的事情,这就是我问的原因,因为我真的找不到任何关于它的文章或文档。谢谢提前寻求任何帮助。

var string1: String { return "My first string"}

let string2 = { return "My second string"}()
Run Code Online (Sandbox Code Playgroud)

instantiation swift computed-properties

3
推荐指数
1
解决办法
446
查看次数

如何在运行时向实例化对象添加脚本?

我的主资产文件夹中有一个脚本,名为BezierWalk.cs

在另一个脚本中Spawn,我尝试实例化预制件中的对象Sphere并附加到BezierWalk.cs它们。

Spawn脚本:

public class Spawn : MonoBehaviour
{

  public GameObject Sphere;
  //string ScriptName = "BezierWalk";

  void Start()
  {  
      Vector3 vSpawnPos = transform.position;

      for (int i = 0; i < 20; i++)
        {
          var objectYouCreate = Instantiate(Sphere, vSpawnPos, transform.rotation);
          //objectYouCreate.AddComponent<T>("Assets/BezierWalk.cs");
          //objectYouCreate.AddComponent(typeof(ScriptName)) as ScriptName;
          //objectYouCreate.AddComponent<ScriptName>();
          //var myScript = Sphere.AddComponent<BezierWalk.cs>();
          vSpawnPos.z += 20;
        }       
   }
Run Code Online (Sandbox Code Playgroud)

您可以看到注释掉的尝试...

我应该如何正确地做到这一点?谢谢。

c# instantiation addition unity-game-engine

3
推荐指数
1
解决办法
8860
查看次数

显式模板实例化的gcc问题?

我的理解是,专门化的声明或typedef应该导致模板类被实例化,但这似乎不会发生在gcc中.例如,我有一个模板类,模板类Foo {};

我写

  class Foo<double>;  
Run Code Online (Sandbox Code Playgroud)

要么

typedef Foo<double> DoubleFoo;  
Run Code Online (Sandbox Code Playgroud)

但在编译之后,生成的目标文件的符号表不包含Foo的成员.

如果我创建一个实例:

Foo<double> aFoo;  
Run Code Online (Sandbox Code Playgroud)

当然,符号都是生成的.

有没有其他人经历过这个和/或有解释?

c++ templates instantiation

2
推荐指数
1
解决办法
2180
查看次数

类实例化语法

我一直都被教导过

1. Class c(arg);
Run Code Online (Sandbox Code Playgroud)

2. Class c = arg;
Run Code Online (Sandbox Code Playgroud)

是两个完全相同的陈述,但看看这种情况.

#include <iostream>

class Intermediary {
};

class Left {
  public:
    Left(const Intermediary &) {
        std::cout << __PRETTY_FUNCTION__ << std::endl;
    }   
};

class Right {
  public:
    // The argument is there just so that the example can work, see below
    Right(int) { 
        std::cout << __PRETTY_FUNCTION__  << std::endl;
    }

    operator Intermediary () const {
        std::cout << __PRETTY_FUNCTION__  << std::endl;

        return Intermediary();    
    }
};
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做:

Left l = Right(0);
Run Code Online (Sandbox Code Playgroud)

编译器会抱怨

error: conversion …
Run Code Online (Sandbox Code Playgroud)

c++ standards constructor instantiation parentheses

2
推荐指数
1
解决办法
501
查看次数

为什么在__init__期间实例化的对象不能看到它们的创建者?

好吧,我也是SO,OOP和python的新手,所以请温柔;)

我在其他地方寻找与此范围问题相关的线索和解释,但没有发现任何问题.如有任何帮助,我将不胜感激.

示例代码:

class Zeus(object):
    def __init__(self):
        self.name='zeus'
        self.maze=Maze()
        self.maze.get_zeus_name_1()
        self.maze.get_zeus_name_2(self)
        self.get_name_1()
        self.get_name_2(self)

    def get_name_1(self):
        try:
            print zeus.name
        except:
            print "impossible!?"

    def get_name_2(self,scope):
        print scope.name

class Maze(object):
    def get_zeus_name_1(self):
        try:
            print zeus.name
        except:
            print "can't be done!?"

    def get_zeus_name_2(self,scope):
        print scope.name

zeus=Zeus()
print 'now external calls:'
zeus.maze.get_zeus_name_1()
zeus.maze.get_zeus_name_2(zeus)
zeus.get_name_1()
zeus.get_name_2(zeus)
Run Code Online (Sandbox Code Playgroud)

输出:

can't be done!?
zeus
impossible!?
zeus
now external calls:
zeus
zeus
zeus
zeus
Run Code Online (Sandbox Code Playgroud)

在实例化期间zeus,如果__init__方法创建另一个类的实例maze,则此新实例无法访问其创建者对象zeus(除非self传递给它).(另外,如果__init__方法在其自己的类中调用方法get_name_1,则该方法也无法访问其对象属性(除非self …

python oop instantiation init

2
推荐指数
1
解决办法
2042
查看次数

Python中的实例变量不像我想象的那样

我在Python中遇到了一个我无法相信的问题.请参阅以下代码:

class Container(object):
    array = []

    def __init__(self):
        print self.array

for i in range(0, 5):
    container = Container()
    container.array.append('Test')
print 'Last Container:', container.array
Run Code Online (Sandbox Code Playgroud)

输出是:

[]
['Test']
['Test', 'Test']
['Test', 'Test', 'Test']
['Test', 'Test', 'Test', 'Test']
Last Container: ['Test', 'Test', 'Test', 'Test', 'Test']
Run Code Online (Sandbox Code Playgroud)

我认为Container该类在实例化时使用顶部的值进行初始化.为什么不是这样?

谢谢!

python arrays append instantiation instance

2
推荐指数
1
解决办法
223
查看次数

静态与公共C#

我知道在SO上已经多次回答了这个问题,但是我仍然没有弄清楚实例化类的确切含义.我读了这篇文章,这确实有助于我理解.

我知道像这样的静态类Console不能与new表达式一起使用,Console c = new Console()因为该类中没有任何实例变量.我也知道静态类提供"泛型"方法,通常用于Math函数.我知道,一旦你实例化一个类,Double d = new Double();你现在可以访问类中的任何方法Double.

我知道这些事实,但我觉得我真的不明白他们实际上是什么意思.有人可以给出一个静态类绝对必要的例子,以及创建类的实例是绝对必要的吗?

c# static instantiation

2
推荐指数
1
解决办法
3813
查看次数

R,R6,从R6Generator对象获取完整的类名

在R6中,如何在不创建生成器对象实例的情况下获得类继承的完整列表?

考虑以下:

A = R6::R6Class("Base",NULL)
B = R6::R6Class("Top",inherit = A)
class(B)     #Returns 'R6ClassGenerator'
B$classname  #Returns 'Top' 
Run Code Online (Sandbox Code Playgroud)

我想要的是 c('Top','Base','R6')

换句话说,否则会返回什么 class(B$new())

在现实世界中,我有一组复杂的继承,而且初始化程序有很多参数,有些没有默认值,因此我试图避免实例化新对象以获得此信息。

r class instantiation r6

2
推荐指数
1
解决办法
610
查看次数