簡體   English   中英

在 static 變量/方法上調用實例方法的替代方法?

[英]Alternatives to invoking instance method on static variable/method?

我讀到在 static 變量/方法上調用實例方法被認為是不好的做法(我不知道確切原因,但無論如何這不是問題)。

例如:

class Dice
{
    private int value;
    private static Random randomizer=new Random(); 
    
    public int setAndget_DiceValue()
    {
        value=randomizer.nextInt(6)+1; //Accessing static variable via instance class. Any alternatives?
        return value;
    }
}

那么修改不涉及調用實例方法的 static 變量的替代方法是什么? 即使我在randomizer上使用了 static 方法,我也必須在 static 方法上使用該實例方法,這仍然被認為是不好的做法。

編輯:我第一次看到的一些地方認為這是一種不好的做法:

1 )在實例方法中寫入 static 變量,為什么這是一個不好的做法?

2)對OP帖子的評論:非靜態方法可以修改static變量 他是一個高代表用戶,所以我傾向於相信他。

3) 在此處輸入圖像描述

通常 static 變量將伴隨着final因此一旦初始化它們就不能在 class 中重新分配不同的值。

唯一無效的上下文是static 方法試圖直接使用實例級變量或方法,我不認為反過來是無效的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM