gpt4 book ai didi

java - 访问由私有(private)自定义类组成的链表的元素

转载 作者:行者123 更新时间:2023-12-01 12:57:50 25 4
gpt4 key购买 nike

在一个项目中,我试图让两个或多个代理相互通信以收集环境中的东西。为此,我使用一个包含消息的邮箱,它们将根据彼此之间发送的消息进行响应。下面是我创建链接列表的地方

mailbox = new LinkedList[numberOfAgents()];
for ( int i=0; i< numberOfAgents(); i++ ){
mailbox[i] = new LinkedList<Message>();
mailbox[i].add(new Message(i, knownBloodBanks, knownDonors));
}

然后是私有(private)消息和意图类

private class Message 
{
// instance variables
private int senderId;
private BoardComponentList donors;
private BoardComponentList bloodBanks;
private BoardComponent requestAssistanceAt;
private Intention iIntendToAssistAt;

public Message( int senderId, BoardComponentList d, BoardComponentList b )
{
this.senderId = senderId;
donors = d;
bloodBanks = b;
} // end constructor

public void setIntentions( Intention intention )
{
iIntendToAssistAt = intention;
}

public void setRequest( BoardComponent bC )
{
requestAssistanceAt = bC;
}

public BoardComponentList getDonors()
{
return donors;
}

public BoardComponentList getBloodBanks()
{
return bloodBanks;
}

public Intention getIntentions()
{
return iIntendToAssistAt;
}

public BoardComponent getRequest()
{
return requestAssistanceAt;
}

public int getSenderId()
{
return senderId;
}


} // end Message class

private class Intention
{
// instance variables
private BoardComponent target;
private double distanceTo;

public Intention( BoardComponent bC, double distance )
{
target = bC;
distanceTo = distance;
} // end constructor


public BoardComponent getTarget()
{
return target;
}

public double getDistancetoTarget()
{
return distanceTo;
}

}

我一生都无法弄清楚如何访问私有(private)类中的方法,以便我可以设定目标并查看代理之间的消息。任何正确方向的帮助或指示将不胜感激,我希望我已经包含了足够的信息,如果没有,请告诉我任何其他需要的信息

我没有清楚地解释自己,因为我经常发现问题,但是是的,私有(private)类和第一个代码片段都在公共(public)类中找到

最佳答案

  1. 每个文件只能有一个公共(public)类。
  2. 文件名(程序名)的名称应与名称匹配公共(public)类(Class)。
  3. 公共(public)类中可以有多个私有(private)类,如下所示内部类。

下面的示例代码(对您的类进行了一些修改,因为它们给出了编译错误):

package com.pkg1;

import java.util.LinkedList;

public class Sample{


public Sample(){
LinkedList[] mailbox = new LinkedList[10];
for ( int i=0; i< 10; i++ ){
mailbox[i] = new LinkedList<Message>();
mailbox[i].add(new Message(i));
}
}
private class Message
{
// instance variables
private int senderId;

private Intention iIntendToAssistAt;

public Message( int senderId )
{
this.senderId = senderId;

} // end constructor

public void setIntentions( Intention intention )
{
iIntendToAssistAt = intention;
}



public Intention getIntentions()
{
return iIntendToAssistAt;
}


public int getSenderId()
{
return senderId;
}


} // end Message class

private class Intention
{
// instance variables

private double distanceTo;

public Intention( double distance )
{
distanceTo = distance;
} // end constructor


public double getDistancetoTarget()
{
return distanceTo;
}

}
}

关于java - 访问由私有(private)自定义类组成的链表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23751016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com