gpt4 book ai didi

java - 如何通过某些方法进行条件组合

转载 作者:行者123 更新时间:2023-12-02 11:18:07 24 4
gpt4 key购买 nike

嗨,我已经用谷歌搜索过这个问题,但没有找到有用的东西。我有一个 userUI 对象,它代表常规用户区域的 UI。我有 AdminUI 对象来扩展它,我想以最正确的方式将管理选项添加到该类,而不需要对其共享选项进行管理。

尝试做到这一点(为了方便起见,请像示例一样......

这是正确的方法还是有更有效、更简单的方法。

感觉好像错过了什么......

这是我的代码:

package main.java.draft;

import java.util.Scanner;

//Stackoverflow question
public class SOQ {

public static void main(String[] args) {

//How to do combination of some conditions.
//Trying on user.
UserUI userUI = new UserUI();

System.out.println("If User regualr just 1-7, if admin 8-12 too");
Scanner sc = new Scanner (System.in);
int input = sc.nextInt();
userUI.manageOptions(input);

//trying to do that on admin
System.out.println("If User regualr just 1-7, if admin 8-12 too");
AdminUI adminUI = new AdminUI();
input = sc.nextInt();
adminUI.manageOptions(input);

sc.close();
}
}


class UserUI{

boolean admin = false;

public void manageOptions(int input){

if(input > 0 && input < 8){
userMethods(input);
}

else if((input > 7 && input < 13) && admin){
AdminUI adminUI = new AdminUI();
adminUI.manageAdminOptions(input);
}

else{
System.out.println("Not proper option");
}
}

public void userMethods(int input){
System.out.println("User Methods - method " + input);
}
}

class AdminUI extends UserUI{

public AdminUI(){
admin = true;
}

public void manageAdminOptions(int input){
adminMethods(input);

}

public void adminMethods(int input){
System.out.println("Admin Methods - method " + input);
}
}

**

有关此案例的更多详细信息。

**

这是输出 - 用户屏幕:请选择以下选项之一:

1- 更改消息。2-更改密码。3-更改电子邮件。4-显示我的详细信息。 (有密码? – 是的)5-注销。6-显示消息。7-删除帐户(带密码)。

这是管理员输出:

请选择以下选项之一:

1- 更改消息。2-更改密码。3-更改电子邮件。4-显示我的详细信息。 (有密码? – 是的)5-注销。6-显示消息。7-删除帐户(带密码)。7 – 按名称显示特定用户8 – 显示所有用户9-删除一个用户。10 – 删除所有用户!11-更改用户详细信息(密码/电子邮件)

<小时/>

我希望管理员扩展用户,因为实际上他是一种用户。我想制定为用户或管理员实现的方法,而不是再次在管理员中实现所有共享实现...

最佳答案

我会更改您的代码,以便在 main 方法中您可以根据输入创建一个 UserAdmin 。然后,您可以通过让两个子类都实现一个接口(interface)来消除子类中的奇怪逻辑。

UserBase user = null;  // the interface
System.out.println("If User regular just 1-7, if admin 8-12 too");
Scanner sc = new Scanner (System.in);
int input = sc.nextInt();
if (input <= 7)
{
user = new UserUI();
}
else {
user = new AdminUI ();
}

// then call common method
user.manageOptions(); // parameter are maybe not required ?

子类就像

//UserUI
public void manageOptions () { System.out.println("User Methods - method "); }

//AdminUI
public void manageOptions () { System.out.println("Admin Methods - method "); }

关于java - 如何通过某些方法进行条件组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com