如何从同一个类的方法访问修饰符?

时间:2018-02-26 13:28:07

标签: java

我在尝试numberOfQuestion方法的任何时候尝试将isOdd()增加1,如下所示。我得到了一个错误"

  

无法访问的代码

&#34 ;.我怎么能做对的?!

import java.util.Scanner;

public class Geek {

    private String geekName;
    private int numberOfQuestion;

    public Geek (String name) {

        geekName=name;
        numberOfQuestion=0;

    }


    public int getNumberOfQuestion() {
        return numberOfQuestion;

    }

    public boolean isOdd(int num) {

        if(num%2==0) {
            return false;

        }
        else { 
            return true;
        }
         numberOfQuestion++;
    }




}

4 个答案:

答案 0 :(得分:2)

numberOfQuestions++作为方法public boolean isOdd(intNum)

中的第一行

消息是正确的,因为在递增之前从方法返回,所以您的行无法访问。

答案 1 :(得分:2)

numberOfQuestion++;被认为是不可缓存的代码,因为在任何一种情况下:

  • 如果num为奇数,则您的方法返回true并退出方法。
  • 如果num是偶数,则您的方法返回false并退出该方法。

正如你所看到的那样,它无法达到这条线:

numberOfQuestion++;

因此,如果你想做某事,你需要在你的方法结束之前做到这一点:

public boolean isOdd(int num) {
    //whatever you want to do here.. such as numberOfQuestion++;
    return (num % 2 != 0);
}

答案 2 :(得分:0)

将增量语句放在第一行:

public boolean isOdd(int num) {
     numberOfQuestion++;    
     if(num%2==0) {
        return false;

     }
     return true;
 }

在最后一行,它无法访问,因为您返回ifelse

答案 3 :(得分:0)

返回方法关闭后,numberOfQuestion ++从未完成。 你需要这个:

public boolean isOdd(int num) {
    numberOfQuestion++;
    if(num%2==0) {
        return false;

    }
    else { 
        return true;
    }     
}