永无止境。。 2019-10-24 20:18 采纳率: 33.3%
浏览 441
已采纳

Java中同一个对象只有调用了这个对象的某一个方法后才能使用这个对象其他方法怎么实现或设计?

比如一个电脑类,有一个开机方法,还有看视频,听音乐等方法,但是只有在开机后才能使用看视频,听音乐等方法,这样的如何实现?我试过放在构造函数里,但是感觉不能放在构造函数里,构造函数是创建对象了,相当于买电脑啊

  • 写回答

3条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-25 09:14
    关注

    可以用一个开关属性,为该属性提供一个 setter 方法。
    再在其他方法中以该属性作为触发条件,只有该属性为真时,方法能继续,否则方法直接返回。例如:

    public class Computer{
       private boolean isBoot;
    
         public Computer(boolean isBoot){
             this.isBoot = isBoot;
         }
    
         public Computer(){
         }
    
         public void setBoot(boolean isBoot){
            this.isBoot = isBoot;
         }
    
         public boolean openWord(){
            if(!isBoot){
                   System.out.print("电脑未启动,不能执行后续操作");
                     return;
                }
                //TODO 继续执行后续逻辑
         }
    
         public static void main(String[] args){
            Computer c = new Computer();
                c.openWord();
                c.setBoot( true);//开机
                c.openWord();//开机后再次执行任务
         }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?