Java 如何在其他类中使用变量来重复某些内容?(爪哇)

Java 如何在其他类中使用变量来重复某些内容?(爪哇),java,class,oop,variables,inheritance,Java,Class,Oop,Variables,Inheritance,我用Java编程是为了做一个简单的程序来模拟Facebook菜单,只是为了练习面向对象编程。事情是这样的 在名为Decision的类中,用户输入“0”退出,“1”注册,或输入“2”登录 我希望程序在用户注册或登录后返回主菜单,因为在下面的代码中,当用户既不注册也不登录程序时,程序结束 使用的变量称为option,我想我必须在main类中使用它来做我想做的事情,重复主菜单 这是我的密码: class Decision { // THIS IS THE CLASS FOR ENTER THE OPT

我用Java编程是为了做一个简单的程序来模拟Facebook菜单,只是为了练习面向对象编程。事情是这样的

在名为Decision的类中,用户输入“0”退出,“1”注册,或输入“2”登录

我希望程序在用户注册或登录后返回主菜单,因为在下面的代码中,当用户既不注册也不登录程序时,程序结束

使用的变量称为option,我想我必须在main类中使用它来做我想做的事情,重复主菜单

这是我的密码:

class Decision { // THIS IS THE CLASS FOR ENTER THE OPTION.

    protected byte  option; // THIS IS THE VARIABLE.

    public Decision() {

        boolean aux = true; // THIS IS ONLY FOR VALIDATE WRONG INPUT.
        Scanner sc = new Scanner(System.in);
        do {
            try {
                System.out.println("\n\t\t\t*-------------------------------*");
                System.out.println("\t\t\t\t     FACEBOOK");
                System.out.println("\t\t\t*-------------------------------*\n");
                System.out.println("0.-EXIT FACEBOOK\n");
                System.out.println("1.-SIGN UP\n");
                System.out.println("2.-LOG IN\n");
                option = sc.nextByte();
                aux = true;
                if (option >= 3 || option < 0) {
                    aux = false;
                    System.out.println("\nPLEASE INSERT A VALID OPTION.\n");
                }
                if (option == 0) {
                    System.out.println("\nSEE YOU SOON.\n");
                    aux = true;
                }
            } catch (InputMismatchException exc) {
                aux = false;
                sc.nextLine();
                System.out.println("\nPLEASE INSERT A VALID OPTION.\n");
            }
        } while (aux == false); // I USE THIS FOR VALIDATE THE INPUT, DO NOT
                                // WORRY AT ALL.

    }// CONSTRUCTOR
}// Decision

class Data extends Decision { // THIS IS THE CLASS FOR ENTER DATA (NAME, LAST
                                // NAME, ETC)

    Scanner sc  = new Scanner(System.in);

    public void Title() {
        System.out.println("\n\t\t\t*-------------------------------*");
        System.out.println("\t\t\t\t     FACEBOOK");
        System.out.println("\t\t\t*-------------------------------*\n");
    }// Title

    public void Decision() {

        if (option == 1) {
            // IN THIS PART THE USER IS CREATING A PROFILE AND STUFF.

        } else {
            if (option == 2) {
                // IN THIS PART THE USER ONLY LOG IN AND THE SEE THE INFO.
            }
        }// else

    }// Decision

}// DATA

public class Facebook { // AND THIS IS THE MAIN CLASS

    protected Decision  option;

    public Facebook() {
        option = new Decision();
    }// CONSTRUCTOR

    public static void main(String args[]) {

        Facebook facebook = new Facebook();

    }// main

}// Facebook

如果您想在程序中重复某些内容,自然的答案应该是使用循环。更改退出条件aux==false,最好是!aux,它是等效但更好的编程风格。例如:

// initialize it to false in case the first iteration of the loop throws an exception
boolean exit = false;
do {
    //...
    exit = option == 0;
while (!exit);

顶部提示:不要将逻辑放入构造函数中。把它放在方法中。数据永远不会被使用