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

标签 java methods linked-list private-class

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

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/

相关文章:

java - 在 XPath 中,如何选择与子集不匹配的所有节点?

data-structures - 链接列表算法查找加起来为 10 的对

java - 返回未知类型 Java

c - C 中的速度胜过风格?

c - 意外错误 :"Dereferencing pointer to incomplete type"with code::blocks,c 语言

java - 将列表中的单词更改为小写

java - 使用 Map 值在 Java 8 中使用流进行分组

java - 运行 caliper 命令行

Java:I/O,read() 不会填充缓冲区?

list - 允许方法对我的类型列表进行操作?