Java - 有条件地访问类的方法

标签 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);
    }
}

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

track 类的方法 alloteSession 中,我创建了两个 Session 类的对象,名称为 morningsessionafternoonsession

Session 类包含两个方法,即 morningSlotsafternoonSlots

我只想从morningsession 对象访问morningSlots 方法,而afternoonSlots 对于morningsession 对象是私有(private)的。

同样,afternoonSlots 方法应该从 afternoonsession 对象访问,而 morningSlotsafternoonsession 对象私有(private)的。

因此,方法应该有条件隐私。 morningSlots 方法对于 morningsession 对象应该是公共(public)的,而对于 afternoonsession 对象应该是私有(private)的,反之亦然。

是否可以这样做,如果不能,请建议一些其他方式来实现这种设计。

最佳答案

您可以创建两个类 morningSessionafternoonSession 来扩展 session,而不是尝试从一个类或另一个类更改方法可见性. session 可以是具有方法 slots() 的抽象类,需要在 morningSessionafternoonSession 中实现. 从实现的角度来看,当您创建 session 时,它是 morningSessionafternoonSession 但在这两种情况下您都可以调用 slots () 调用正确方法的方法

关于Java - 有条件地访问类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432617/

相关文章:

java - 在 Java 中扫描文本文件时使用对象

java - Windows XP 是否支持 SWT Java 程序中的 unicode 按钮文本?

java - Hazelcast MapStore 配置读取 block 大小

java - 标准差不传递?

java - Hibernate一对一映射文件

java - 如何在RecyclerView的分页器中设置正确的点偏移

java - 在程序文件夹中创建锁定文件会导致异常

java - HDFS-仅在完全复制文件后读取文件

java - Play Framework,OneToOne 关系不起作用

java - 重新启动 while 循环/程序