亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我需要實例化我的類才能在靜態方法中調用我的方法?

為什么我需要實例化我的類才能在靜態方法中調用我的方法?

慕容708150 2021-10-28 17:12:53
我開始學習 Java 并有一個菜鳥問題。我的類塊中有一組實例,有 2 個方法,1 個主要靜態方法和 1 個無效方法public class CurrencyConverter {    int rupee = 63;    int dirham = 3;    int real = 3;    int chilean_peso = 595;    int mexican_peso = 18;    int _yen = 107;    int $austrailian = 2;    int dollar = 0;    int Rupee = 63;    /**    * @param args the command line arguments    */    public static void main(String[] args) {        // TODO code application logic here        CurrencyConverter cc = new CurrencyConverter();        cc.printCurrencies();    }    void printCurrencies() {        System.out.println("rupee: " + rupee);        System.out.println("dirham: " + dirham);        System.out.println("real: " + real);        System.out.println("chilean_peso: " + chilean_peso);        System.out.println("mexican_peso: " + mexican_peso);        System.out.println("yen: " + _yen);        System.out.println("australian: " + $austrailian);        System.out.println("dollar: " + dollar);        System.out.println("Rupee: " + Rupee);                    }       }現在我的問題是,為什么我需要實例化我的 CurrencyConverter 類才能調用 printCurrencies()?無論如何,您通常不能只調用方法嗎?我在同一個班級?我嘗試將 printCurrencies() 的訪問修飾符更改為靜態,但是我的局部變量不是靜態的為什么我需要實例化?
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

非靜態字段與實例相關聯。每個實例都有這些字段的一個副本。


public class CurrencyConverter {

    int rupee = 63; // non static instance field

    int dirham = 3; // non static instance field

    // etc.

為什么我需要實例化我的 CurrencyConverter 類才能調用 printCurrencies()?


沒有實例,您的副本為零,因此沒有可打印的內容。


無論如何,您通常不能只調用方法嗎?


如果您將方法設為靜態并刪除對實例字段的所有引用,那么是的,您可以。這運行得很好,但它不再做任何有用的事情。


public static void main(String[] args) {

    printCurrencies();

}


static void printCurrencies() {

}  

我在同一個班級?


不知道你的意思,但只有一個班級,一切都在里面。


int rupee = 63;

int Rupee = 63;

除非你喜歡混亂,否則不要這樣做。您應該在名稱中明確每個字段的不同用途。


我嘗試將 printCurrencies() 的訪問修飾符更改為靜態,但是我的局部變量不是靜態的。為什么我需要實例化?


非靜態字段的副本在您明確創建它們之前不存在。


查看完整回答
反對 回復 2021-10-28
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

將類視為對象的模式或配方。實例化時,您將使用此特定模式創建一個對象?,F在有一個帶有您可以訪問的值的對象。模式(因此類)只有可以保存特定值的字段的描述。因此,您無法訪問任何值。

現在是靜態:靜態字段是在運行時開始時創建的字段。因此,您可以隨時訪問該值而無需創建對象,因為它們不屬于某個對象,而是屬于特定的類。

您擺脫實例化的解決方案是使該類的所有成員都是靜態的。


查看完整回答
反對 回復 2021-10-28
  • 2 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號