У меня есть классы java track
и Session
.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);
}
}
Класс Session ...
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
, я делаю два объекта класса Session
с именами morningsession
и afternoonsession
.
Класс Session
содержит два метода, а именно: morningSlots
и afternoonSlots
.
Я хочу только morningSlots
способа получить доступ из morningsession
объекта, а afternoonSlots
является частным для morningsession
объекта.
Аналогично, afternoonSlots
метод должен быть доступен с afternoonsession
объекта, а morningSlots
является частным для afternoonsession
объекта.
Таким образом, для методов должна быть условная конфиденциальность. Метод morningSlots
должен быть общедоступным для объекта morningsession
, тогда как он должен быть закрыт для объекта afternoonsession
и наоборот.
Возможно ли это, если нет, предложите другой способ реализации такого дизайна.
Нет, в Java нет ничего подобного. Я предлагаю вам только один метод ('slots()') или аналогичный, и пусть каждый сеанс знает, какие слоты доступны. Это избавляет вас от этой проблемы дизайна и, как правило, гораздо более гибкой, чем жесткая структура «утром или днем». –
Вместо того, чтобы идти по вышеуказанной сложной логике, вы можете просто раздвоить логику сеанса в классе сеанса, который будет отвечать за восприятие в зависимости от времени, например, morninig или после полудня. like Track magnt -> getSession -> Получить сеанс проверит время и вернет сессию соответственно .. – Harish