Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—对类的方法的条件访问_Java - Fatal编程技术网

Java—对类的方法的条件访问

Java—对类的方法的条件访问,java,Java,我必须对java类进行跟踪和会话 田径课 package trackmanagement; public class track { private String trackName, networkingEventTime; private Session morningSession, afternoonSession; track(String name) { trackName = name; } publi

我必须对java类
进行跟踪
会话

田径课

    package trackmanagement;

public class track {

    private String trackName, networkingEventTime;
    private Session morningSession, afternoonSession;

    track(String name)
    {
        trackName = name;
    }

    public void alloteSession()
    {
        morningSession = new Session("Morning Session", trackName);
        afternoonSession = new Session("Afternoon Session", trackName);
    }
}
会话类

    package trackmanagement;

import java.util.ArrayList;

public class Session {

    private String sessionName, relatedTrack, startTime, endTime;
    private ArrayList<Slot> allotedSlots;

    public Session(String name, String track) 
    {
        sessionName = name;
        relatedTrack = track;
    }

    public void morningSlots()
    {

    }

    public String afternoonSlots()
    {
        return "";
    }
}
包跟踪管理;
导入java.util.ArrayList;
公开课{
私有字符串sessionName、relatedTrack、startTime、endTime;
专用阵列列表分配的插槽;
公共会话(字符串名称、字符串轨迹)
{
sessionName=名称;
相关轨道=轨道;
}
公共空间上午时段()
{
}
公共字符串下午地段()
{
返回“”;
}
}
在class
track
中的
allocatesession
方法中,我制作了两个class
Session
对象,它们的名称分别为
morningsession
午间Session

会话
包含两种方法,即
上午时段
下午时段

我只希望从
morningsession
对象访问
morningSlots
方法,而
午后时段
morningsession
对象的专用时段

类似地,
下午时段
方法应该从
下午时段
对象访问,而
上午时段
对于
下午时段
对象是私有的

因此,这些方法应该有一个有条件的隐私。方法
morningSlots
对于
morningsession
对象应该是公共的,而对于
午间会话
对象应该是私有的,反之亦然


是否可以这样做,如果不可以,请建议其他实现此类设计的方法。

您可以创建两个类
morningSession
&
午后session
,以扩展
session
session
可以是一个抽象类,其方法为
slots()
,需要在
morningSession
午间会话
中实现。
从实现的角度来看,当您创建
会话时,可能是
上午会话
下午会话
,但在这两种情况下,您都可以调用
slots()
方法,该方法将调用正确的方法

,而不是尝试从一个类或另一个类更改方法的可见性,您可以创建两个类
上午会话
下午会话
,它们将扩展
会话
session
可以是一个抽象类,其方法为
slots()
,需要在
morningSession
午间会话
中实现。
从实现的角度来看,当您创建
会话时,可能是
上午会话
下午会话
,但在这两种情况下,您都可以调用
slots()
方法,该方法将调用正确的方法

您应该更改设计,而不是尝试Java中不可能的方法:)


通过这样做,您可以包装实现,并让您的子类在上午/下午获得所需的时段。

您应该更改设计,而不是尝试Java中不可能的东西:)


通过这样做,您可以包装实现,让您的孩子们在上午/下午上课,以获得所需的时段。

不,Java中没有类似的内容。我建议您只使用一种方法(
slots()
)或类似方法,并让每个会话知道哪些slots可用。这使您摆脱了这个设计问题,通常比僵硬的“上午或下午”结构灵活得多。您不必使用上述复杂的逻辑,只需在会话类中划分会话逻辑,会话类将根据时间(如上午或中午后)负责会话。像Track magnt-->getSession-->Get session将检查时间并相应地返回会话..不,Java中没有类似的。我建议您只使用一种方法(
slots()
)或类似方法,并让每个会话知道哪些slots可用。这使您摆脱了这个设计问题,通常比僵硬的“上午或下午”结构灵活得多。您不必使用上述复杂的逻辑,只需在会话类中划分会话逻辑,会话类将根据时间(如上午或中午后)负责会话。与Track magnt-->getSession-->Get session一样,Get session将检查时间并相应地返回会话。。
    public abstract class Session {
       public abstract String getSlots();{//try to have methods that describes a verb/action
    }


    public class MorningSession extends Session{
       public abstract String getSlots(){
        return "Morning slot received";
       }
    }

    public class AfternoonSession extends Session{
       public abstract String getSlots(){
         return "Afternoon slot received";
       }
    }