Java - 对类

时间:2015-09-07 06:46:20

标签: java

我要使用java类trackSession

赛道课......

    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 "";
    }
}

在班级alloteSession的方法track中,我创建了两个名为Sessionmorningsession的班级afternoonsession的对象。

课程Session包含两种方法,即morningSlotsafternoonSlots

我只想从morningSlots对象访问morningsession方法,而afternoonSlotsmorningsession对象是私有的。

同样,应afternoonSlots对象访问afternoonsession方法,而morningSlots对象afternoonsession是私有的。

因此,方法应该有条件隐私。方法morningSlots应该对morningsession对象公开,而对afternoonsession对象应该是私有的,反之亦然。

是否可以这样做,如果没有,请提出其他方法来实现这种设计。

2 个答案:

答案 0 :(得分:4)

您可以创建2个类morningSession&amp;而不是尝试从一个类或另一个类更改方法可见性。 afternoonSession session会延长sessionslots()可以是方法morningSession的抽象类,需要在afternoonSession&amp; session。 从创建morningSession时的实施角度来看,它是afternoonSessionslots(),但在这两种情况下,您都可以调用venue方法来调用正确的方法< / p>

答案 1 :(得分:1)

你应该改变你的设计而不是尝试在Java中无法实现的东西:)

    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";
       }
    }

通过执行此操作,您可以包装实现并让您的Child Classes Morning / AfternoonSession获取所需的插槽。