第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將對(duì)象數(shù)組傳遞給靜態(tài)方法時(shí)出現(xiàn)空指針異常

將對(duì)象數(shù)組傳遞給靜態(tài)方法時(shí)出現(xiàn)空指針異常

富國(guó)滬深 2021-12-01 15:23:25
我是編程新手,第一次使用對(duì)象數(shù)組。我有一個(gè)叫做 Account 的類(lèi),它代表一個(gè)銀行賬戶(hù)。在我的 ATM 機(jī)器類(lèi)的 main 方法中,我創(chuàng)建了一個(gè) Account 對(duì)象數(shù)組。我通過(guò)靜態(tài)方法用實(shí)例化的對(duì)象填充數(shù)組。我有兩個(gè)額外的靜態(tài)方法(一個(gè)打印出數(shù)組,我將其用于測(cè)試,另一個(gè)假設(shè)檢查銀行帳戶(hù) ID 是否有效)。當(dāng) Account 對(duì)象數(shù)組傳遞給這些各自的靜態(tài)方法時(shí),這兩個(gè)靜態(tài)方法都會(huì)拋出空指針異常。當(dāng)我注釋掉這兩個(gè)靜態(tài)方法時(shí),一切正常。任何幫助,將不勝感激。代碼如下:package banking;import java.util.Scanner;public class AtmMachine {    public static void main(String[] args) {        //Create account array of size 10        Account[] bankAccounts = new Account[10];        //Create 10 accounts        createAccounts(bankAccounts);        /*        //PROBLEM AREA        //Print Bank Accounts        printAccounts(bankAccounts);        */        //Menu        menu(bankAccounts);    }    public static void createAccounts(Account[] bankAccounts) {        for (int i = 1; i < bankAccounts.length; i++) {            bankAccounts[i] = new Account(i, 100);        }    }    public static void menu(Account[] bankAccounts) {        //Create Scanner object        Scanner input = new Scanner(System.in);        while (true) {            System.out.print("Enter your account number: ");            int accountNumber = input.nextInt();            //THIS IS THE PROBLEM            /*            //Check to see if a valid account            if (!isAccount(accountNumber, bankAccounts)) {                System.out.println("You entered a wrong account number.  Try again.");                continue;            }            */            //Enter the menu of the account system            accountMenu(bankAccounts[accountNumber]);        }    }    //THE PROBLEM METHOD    public static boolean isAccount(int account, Account[] bankAccounts) {        for (int i = 0; i < bankAccounts.length; i++) {            if (bankAccounts[i].getId() == account) {                return true;            }        }        return false;    }
查看完整描述

1 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊

在你的createBankAccounts()方法中,你的 for 循環(huán)從 1 開(kāi)始,而不是 0。Java 數(shù)組是 0 索引的,這意味著它們從 0 開(kāi)始。由于你的 for 循環(huán)從 1 開(kāi)始,數(shù)組中的第一個(gè)元素永遠(yuǎn)不會(huì)被初始化,導(dǎo)致它扔一個(gè)NullPointerException。


改變這個(gè):


public static void createAccounts(Account[] bankAccounts) {

    for (int i = 1; i < bankAccounts.length; i++) {

        bankAccounts[i] = new Account(i, 100);

    }

}

對(duì)此:(int i = 1變成int i = 0)


public static void createAccounts(Account[] bankAccounts) {

    for (int i = 0; i < bankAccounts.length; i++) {

        bankAccounts[i] = new Account(i, 100);

    }

}


查看完整回答
反對(duì) 回復(fù) 2021-12-01
  • 1 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)