java - 在java中使用其他类的变量

标签 java class variables

我试图在另一个类中使用其他类中的两个 int 变量,然后将它们添加到另一个变量中并打印结果。不过,当我尝试这样做时,我总是得到零结果,就像这些值没有被带入新类一样,我无法弄清楚问题是什么。 这是一些示例代码:

1级

public static int finished = (match2.totalpoints + match3.iq);
    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub

        Scanner s = new Scanner(System.in);
        System.out.println("THIS IS YOUR OWN EXCLUSIVE IQ TEST OR MEMORY QUIZ OR WHATEVER....");
        System.out.println("");
        System.out.println("When taking the quiztest you have only two seconds before making each guess");
        match2 m = new match2();
        System.out.println("THAT MEANS ACCORDING TO YOUR QUIZTEST YOU'VE GOT AN IQ OF " + finished + " POINTS");
        }
}

编辑:class2

 public class match2 {

    public static int totalpoints;
    int a;
    int b;
    int c;
    int d;
    int e;
    int f;
    String guess;
    String group;

    String countdown[] = {
    "3...",
    "2...",
    "1...",
    ""
    };

    String memorize[] = {
    ""
    };
public match2() throws InterruptedException
    {
        int x = set2();
        int y = set3();
        int z = set4();
        total(x, y, z);
        System.out.println("For the next part of your IQ ASSesment\njust type back the words in CAPSLOCK in CAPSLOCK");
        System.out.println("");
        match3 n = new match3();            
    }

public void set1() throws InterruptedException 
    {
        //Scanner s = new Scanner(System.in);
        for (int i = 0; i < countdown.length; i++) 
            {
                Thread.sleep(750);
                System.out.println(countdown[i]); 
            }
    }

public int set2() throws InterruptedException
    {
        Random r = new Random();
        Scanner s = new Scanner(System.in);
        System.out.println("press ENTER for your first set...");
        s.nextLine();
        set1(); 

        int rv = 0;
        a = r.nextInt(9) + 1;
        b = r.nextInt(9) + 1;
        c = r.nextInt(9) + 1;
        d = r.nextInt(9) + 1;
        group = "" + a  + b + c + d;
        System.out.println(group);
        for (int i = 0; i < memorize.length; i++) 
        {
            Thread.sleep(1500);
            System.out.println(memorize[i]); 
        }
        System.out.println("\n\n\n\n\n\n\n\n\n\n");
        guess = "" + s.nextLine();
        if(guess.equals(group))
        {
            System.out.println("nice +1 bruh");
            rv = 1;
        }
        else if(!guess.equals(group))
        {
            System.out.println("almost");
        }
        return rv;
    }


public int set3() throws InterruptedException
    {
        Random r = new Random();
        Scanner s = new Scanner(System.in);
        System.out.println("");
        System.out.println("press ENTER for your next set...");
        s.nextLine();
        set1(); 

        int rv = 0;
        a = r.nextInt(9) + 1;
        b = r.nextInt(9) + 1;
        c = r.nextInt(9) + 1;
        d = r.nextInt(9) + 1;
        f = r.nextInt(9) + 1;
        group = "" + a  + b + c + d + f;  
        System.out.println(group);
        for (int i = 0; i < memorize.length; i++) 
        {
            Thread.sleep(1500);
            System.out.println(memorize[i]); 
        }
        System.out.println("\n\n\n\n\n\n\n\n\n\n");
        guess = s.nextLine();      
        if(group.equals(guess))     
        {
            rv = 1;
            System.out.println("good");
        }
        else if(!guess.equals(group))
        {
            System.out.println("almost");
        }
        return rv;
    }

public int set4() throws InterruptedException
{
    Random r = new Random();
    Scanner s = new Scanner(System.in);
    System.out.println("");
    System.out.println("press ENTER for your final set...");
    s.nextLine();
    set1(); 

    int rv = 0;
    a = r.nextInt(9) + 1;
    b = r.nextInt(9) + 1;
    c = r.nextInt(9) + 1;
    d = r.nextInt(9) + 1;
    e = r.nextInt(9) + 1;
    f = r.nextInt(9) + 1;
    group = "" + a  + b + c + d + f + e;
    System.out.println(group);
    System.out.println("");
    for (int i = 0; i < memorize.length; i++) 
    {
        Thread.sleep(1500);
        System.out.println(memorize[i]); 
    }
    System.out.println("\n\n\n\n\n\n\n\n\n\n");
    guess = "" + s.nextLine();
    if(group.equals(guess))
        {
            rv = 1;
            System.out.println("great");
        }
    else if(!group.equals(guess))
        {
        System.out.println("eeeh buzer sound");
        }
    return rv;
}

public int total(int x, int y, int z)
    {
    System.out.println("");
    int totalpoints = (x + y + z);
    if(totalpoints == 3)
    {
        System.out.println("YOU GOT THEM ALL");
    }
    if(totalpoints <= 2 && totalpoints >= 1)
    {
        System.out.println("YOU MISSED A TOTAL OF  " + (3 - totalpoints));
    }
    if(totalpoints == 0)
    {
        System.out.println("HA! YOU MISSED THEM ALL");
    }
    return totalpoints;
}

}

编辑:class3

public class match3 {
    public static int iq;

    String countupdown [] = {
            "READY...", 
            "SET.....",
            ""
            };
    String memorize [] = {
            ""
            };

public match3() throws InterruptedException
    {
        int mem1 = memory1();
        int mem2 = memory2();
        int mem3 = memory3();
        totalMemory(mem1, mem2, mem3);
    }

public void methodCountdown() throws InterruptedException
    {
    for(int i = 0; i < countupdown.length; i++)
        {
            Thread.sleep(1000);
            System.out.println(countupdown[i]);
        }

    }

public int memory1() throws InterruptedException
    {
        int rv = 1;
        Scanner s = new Scanner(System.in);
        System.out.println("Press ENTER when ready");
        s.nextLine();
        methodCountdown();
        String a = word1();
        String b = word2();
        System.out.println("The " + a + " ate the " + b);
        String wordgroup = "" + a + " " + b;
        for (int i = 0; i < memorize.length; i++) 
        {
            Thread.sleep(1500);
            System.out.println(memorize[i]); 
        }
        System.out.println("\n\n\n\n\n\n\n\n\n\n");
        String wordguess = "" + s.nextLine(); 
        if(wordgroup.equals(wordguess))
            {
                System.out.println("awesome cock muncher a match");
                rv = 1;
            }
        else if(!wordgroup.equals(wordguess))
            {
            System.out.println("nope");
            }
        return rv;
    }

public int memory2() throws InterruptedException
    {
        int rv = 0;
        Scanner s = new Scanner(System.in);
        System.out.println("");
        System.out.println("Press ENTER for your next set");
        s.nextLine();
        methodCountdown();
        String a = word1();
        String c = word3();
        System.out.println("The " + a + " drove the " + c);
        String wordgroup = "" + a + " " + c;
        for (int i = 0; i < memorize.length; i++) 
        {
            Thread.sleep(1500);
            System.out.println(memorize[i]); 
        }
        System.out.println("\n\n\n\n\n\n\n\n\n\n");
        String wordguess = "" + s.nextLine(); 
        if(wordgroup.equals(wordguess))
            {
                System.out.println("awesome cock muncher a match");
                rv = 1;
            }
        else if(!wordgroup.equals(wordguess))
            {
            System.out.println("nope");
            }
        return rv;
    }

public int memory3() throws InterruptedException
    {
        int rv = 0;
        Scanner s = new Scanner(System.in);
        System.out.println("");
        System.out.println("Press ENTER for your next set");
        s.nextLine();
        methodCountdown();
        String a = word1();
        String d = word4();
        System.out.println("The " + a + " visited the " + d);
        String wordgroup = "" + a + " " + d;
        for (int i = 0; i < memorize.length; i++) 
        {
            Thread.sleep(1500);
            System.out.println(memorize[i]); 
        }
        System.out.println("\n\n\n\n\n\n\n\n\n\n");
        String wordguess = "" + s.nextLine(); 
        if(wordgroup.equals(wordguess))
            {
                System.out.println("awesome cock muncher a match");
                rv = 1;
            }
        else if(!wordgroup.equals(wordguess))
            {
            System.out.println("nope");
            }
        return rv;
    }

public static String word1()
    {
        String word = "";
        Random r = new Random();
        int cv = r.nextInt(3) + 1;
        if(cv == 1)
        {
            word = "DOG";
        }
        else if(cv == 2)
        {
            word = "CAT";
        }
        else if(cv == 3)
        {
            word = "BIRD";
        }
    return word;
}

    public static String word2()
        {
            String word = "";
            Random r = new Random();
            int cv = r.nextInt(3) + 1;
            if(cv == 1)
            {
                word = "FOOD";
            }
            else if(cv == 2)
            {
                word = "MUD";
            }
            else if(cv == 3)
            {
                word = "GRAINS";
            }
            return word;
        }

    public static String word3()
        {
            String word = "";
            Random r = new Random();
            int cv = r.nextInt(3) + 1;
            if(cv == 1)
            {
                word = "TRAM";
            }
            else if(cv == 2)
            {
                word = "BUS";
            }
            else if(cv == 3)
            {
                word = "BICYCLE";
            }
        return word;
        }

    public static String word4()
        {
            String word = "";
            Random r = new Random();
            int cv = r.nextInt(3) + 1;
            if(cv == 1)
            {
                word = "MALL";
            }
            else if(cv == 2)
            {
                word = "PARK";
            }
            else if(cv == 3)
            {
                word = "POOL";
            }
        return word;
    }

public void totalMemory(int mem1, int mem2, int mem3)
    {   
        int iq = (mem1 + mem2 + mem3);
        System.out.println("");
        if(iq == 3)
            {
            System.out.println("YOU GOT THEM ALL");
            }
        else if(iq <= 2 || iq >= 1)
            {
            System.out.println("YOU MISSED  A TOTAL OF " + (3 - iq));
            }
        else if(iq == 0)
            {
            System.out.println("HA! YOU MISSED THEM ALL");
            }
    }

}

总分是来自 match2 类的变量和来自 match3 类的 iq 变量。任何我可以用来实现这一目标的方法的帮助将不胜感激。谢谢您

最佳答案

嗯...除了您不遵循任何代码约定这一事实之外,类名应以大写字母开头,公共(public)静态最终字段(如totalpoints和iq)应全部大写( code conventions ,您不是共享 ma​​tch2ma​​tch3 代码,没有它我们就无法理解这些类中发生了什么。

但是您可以做一个简单的测试,并为 ma​​tch2.totalpointsma​​tch3.iq 分配一个值,您将看到打印这两个值的总和由您输入的最后一个 system.out 决定。

祝你好运,好好学习 Java!

关于java - 在java中使用其他类的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58441219/

相关文章:

javascript - 方法不知道类字段

javascript - 如何将jqPlot值写入变量?

javascript - 创建自定义变量名称

variables - 如何更改Makefile中CC等变量的默认值

java - 从多个 Java 线程调用不可重入的 native 共享库

java - 有没有办法在类之间使用方法?

java - 解析作为字符串注入(inject)的 htmlpage 吗? (字符串到 XML)

c++ - 模板类 std::valarray<T> 推导指南

java - 选择 JToggleButton 时禁用标准重绘

java - 使用数组实现列表