如何在一个对象中打印2个变量?

bn31dyow  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(262)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

5天前关门了。
改进这个问题
如何打印x1和x2(它们在一个对象中),如下所示:

x01 = "نام کاربری شما"+x1;
x02 ="پسورد شما"+x2;

我的代码:

public class singleton{

    private  static  singleton singleton1;

    public  String x1;
    public  String x2;
    public  String x01;
    public  String x02;

    private  singleton() {
        x01 = "نام کاربری شما"+x1;
        x02 ="پسورد شما"+x2;
    }
     public static  singleton getInstance() {
       if (singleton1 == null)
           singleton1 = new singleton();
           return singleton1;}
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("نام کاربری خود را وارد کنید");
        String x1 = sc.nextLine();
        System.out.println("پسورد خود را وارد کنید");
        String x2 = sc.nextLine();
        singleton x = singleton.getInstance();
        singleton y = singleton.getInstance();
        System.out.println(x.x01);
        System.out.println(x.x02);
    }
62lalag4

62lalag41#

public static  singleton getInstance() {
   if (singleton1 == null)
       singleton1 = new singleton();
       return singleton1;}

这是错误的。如果两个线程都调用 getInstance() ,则可以有两个或多个 singleton .
一般来说,这段代码没有意义。类只有在需要时才会被加载,这意味着一个单例类只需自己生成一个变量,就可以得到所需的,没有bug,而且效率很高。简单到:

class Singleton {
    private Singleton() { /* ensure nobody can instantiate this */ }
    private static final Singleton SINGLETON = new Singleton();

    public static Singleton get() { return SINGLETON; }
}

这实际上并不创建单例,直到它被触摸,但是,高效,简单和无bug。关于如何正确处理单例问题,有大量的例子。除非它们看起来与上面的一样(或者可能是为了迎合您不需要的异国情调用例,用一个内部类来存储 static final Singleton SINGLETON ),他们错了。你看,这是一个很常见的误解。
如果您有疑问,请在这个构造函数中抛出一个print语句,并观察它何时打印。

相关问题