Java—对类的方法的条件访问
我必须对java类Java—对类的方法的条件访问,java,Java,我必须对java类进行跟踪和会话 田径课 package trackmanagement; public class track { private String trackName, networkingEventTime; private Session morningSession, afternoonSession; track(String name) { trackName = name; } publi
进行跟踪
和会话
田径课
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=名称;
相关轨道=轨道;
}
公共空间上午时段()
{
}
公共字符串下午地段()
{
返回“”;
}
}
在classtrack
中的allocatesession
方法中,我制作了两个classSession
对象,它们的名称分别为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";
}
}