标签: inner-classes

我们可以在外部类的构造函数中创建内部类的对象吗?

我们可以在外部类的构造函数中创建内部类的对象吗?

java inner-classes

0
推荐指数
1
解决办法
1890
查看次数

C++内部类没有编译

我有一个名为Song with Class class Creator的课程.下面是Song.h文件.请忽略评论.

#ifndef SONG_H
#define SONG_H
#include <iostream>


class Song
{
    public:
    class Creator{

        public:
        //Creator& name(const std::string name){};
       void  name(const std::string name){};

        //std::string getName(){};
    };


    private:
    std::string mName;
};

#endif // SONG_H
Run Code Online (Sandbox Code Playgroud)

这是Song.cpp类

#include "Song.h"

using std::string;
//using Song::Creator;
//Song::Creator& Song::Creator::name(const string name)
void Song::Creator::name(const string name)
{
  mName=name;
  std::cout<<name;
  //return *this;
}

//string Creator::getName()
//{
  //return mName;
//}
Run Code Online (Sandbox Code Playgroud)

和主要的课程

#include <iostream>
#include "Song.h"

int main()
{
Song::Creator sc;
sc.name("vickey");
//std::cout<<sc.getName();

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

在编译它抛出

/home/vickey/qtprojects/innerClass-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK__Release/../innerClass/Song.cpp:6: …
Run Code Online (Sandbox Code Playgroud)

c++ class inner-classes

0
推荐指数
1
解决办法
290
查看次数

内部类必须引用封闭的类吗?

我有一个内部类(非静态),它在初始化时使用对封闭类的引用.内部类现在会保留对封闭类的引用吗?

class Enclosing {
  class Inner {
    private final ABC innerField = outerField.computeSomething();
  }

  private final XYZ outerField = something();
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

我非常清楚,一个可以参考的外部类Enclosing.this.

但是,如果类不使用引用,编译后是否必须引用?即使引用仅用于初始化,是否有必要?

它在哪里说内部类总是持有外部类的引用?

java inner-classes

0
推荐指数
1
解决办法
1481
查看次数

您是否有充分的理由可以在Java类中拥有或不具有内部接口?

您是否有充分的理由可以在Java类中拥有或不具有内部接口?(就像你会内心一样).我无法找到谷歌的确切答案,但看起来好像你不能像使用内部类一样嵌入界面.我的猜测是Java创建者没有看到使其成为可能的一个很好的理由,所以它不是,但也许有很好的理由?

例如我无法编译(这是一大类)

package buttonGetSourceObject;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ClassWithButton implements ActionListener, ButtonOwner{

    private String objectName = "";

    public ClassWithButton(String string) {
        objectName = string;
        JFrame f = new JFrame();
        JPanel p = new JPanel();
        MyJButton b = new MyJButton(this,"Press This Button for Name of Owner of Button");
        b.addActionListener(this);
        f.add(p);
        p.add(b);
            f.pack();
        f.setVisible(true);


    }

    public static void main(String[] args){
        ClassWithButton c = new ClassWithButton("object1name");
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        ((ButtonOwner)((MyJButton)arg0.getSource()).getOwner()).printInstanceName();

    } …
Run Code Online (Sandbox Code Playgroud)

java interface inner-classes

0
推荐指数
1
解决办法
469
查看次数

重写静态内部类的静态方法时出现Stackoverflow错误

public class StaticInnerClass {
 public static void main(String[] args) {


    //Outers out=new Outers();
    Outers.Inner1 in=new Outers.Inner2();
    in.display();
}
 }

class Outers
{
static class Inner1
{
    static void display()
    {
        display();
        System.out.println("Inner1");
    }
}

static class Inner2 extends Inner1
{
    static void display()
    {

        System.out.println("Inner2");
    }
}
}
Run Code Online (Sandbox Code Playgroud)

上面的程序给出了stackoverflow错误.请解释为什么它不显示"Inner1",因为静态方法不会覆盖.

java static class inner-classes

0
推荐指数
1
解决办法
106
查看次数

公共类的私有内部类的可见性

虽然这显然是一个RTFM案例,但不知怎的,我找不到一个解释这一切的简明来源.

public class Outer {

   private class Inner {

   }

}
Run Code Online (Sandbox Code Playgroud)

私人班级Inner公共班级inner的一类.Outer

我的问题是关于知名度Inner从外面'外".

  1. 我应该能够Inner在另一个类中实例化吗?如果是,是否有任何限制(例如此类在同一个包中,等等)?

  2. 可以Inner使用集合时,可以用作一个具体类型?例如,我应该能够ArrayList <Inner>在另一个类中声明吗?

  3. 如果上述问题extends OuterInner 出现另一个课程?

java visibility inner-classes

0
推荐指数
1
解决办法
143
查看次数

使用现有实例(如果使用相同的值构造)

我必须创建一个允许以下内容的类/构造函数:

Object a = new Object("test");
Object b = new Object("test");

a == b // should be true
Run Code Online (Sandbox Code Playgroud)

所以对象a和b不仅应该根据它们的值相同,而且应该使用相同的引用并引用相同的内存.

构造函数应该查明具有给定值的实例是否已经存在,如果是,则只需获取引用并将其指向现有对象.

有没有办法获得特定类的所有创建实例?有人可以给我一个简短的提示从哪里开始?我不知道...

java constructor reference instance inner-classes

0
推荐指数
1
解决办法
238
查看次数

如何在java中扩展抽象内部类

我很困惑

Abstract Class A{method();method2();}
Run Code Online (Sandbox Code Playgroud)

和其他Class B有内在的Class C

Class B{Abstract Class C{method(){//body}}}
Run Code Online (Sandbox Code Playgroud)

现在问题是如何扩展C类B/C抽象类必须扩展,否则这是Unused类.

java inner-classes

0
推荐指数
1
解决办法
2280
查看次数

嵌套类型:struct vs class

我应该何时在类中的结构中定义成员,何时应该在嵌套类中定义成员?

例如:

class SkypeProtocol
{
public:
    SkypeProtocol();
    virtual ~SkypeProtocol(){}

private:

    class SkypeProtocolDateTime
    {
    private:
        UI32 uDate;
        ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
    };

};
Run Code Online (Sandbox Code Playgroud)

要么

class SkypeProtocol
{
private:
    SkypeProtocol();
    virtual ~SkypeProtocol(){}

    typedef struct SkypeProtocolDateTime
    {
    private:
        UI32 uDate;
        ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
    }SSKYPE_STRUCT;

};
Run Code Online (Sandbox Code Playgroud)

c++ inner-classes c++11

0
推荐指数
1
解决办法
454
查看次数

“从内部类内部访问变量需要声明为最终的”错误

尝试在内部类内部使用一个类的本地成员时遇到此错误。我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它,因为我将Intellij与Java 8一起使用,但它仍然无法编译。还有其他方法可以在不将其声明为final的情况下进行修复吗?谢谢。

java oop final intellij-idea inner-classes

0
推荐指数
1
解决办法
769
查看次数