日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java报错空指针异常_java – 空指针异常错误,没有明显的代码错误

發布時間:2025/3/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java报错空指针异常_java – 空指针异常错误,没有明显的代码错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我在這里有一個錯誤,我不知道它來自哪里.我在初學者的

java課程是高中,所以我在這里還沒有太多的經驗.我有3個相互合并的程序.

我有一個卡片類,可以創建一張撲克牌

//********************************************************************

// Card.java Author: Lewis and Loftus

//

// Solution to Programming Project 4.5

//********************************************************************

import java.util.*;

public class Card

{

public final static int ACE = 1;

public final static int TWO = 2;

public final static int THREE = 3;

public final static int FOUR = 4;

public final static int FIVE = 5;

public final static int SIX = 6;

public final static int SEVEN = 7;

public final static int EIGHT = 8;

public final static int NINE = 9;

public final static int TEN = 10;

public final static int JACK = 11;

public final static int QUEEN = 12;

public final static int KING = 13;

public final static int CLUBS = 1;

public final static int DIAMONDS = 2;

public final static int HEARTS = 3;

public final static int SPADES = 4;

private final static int NUM_FACES = 13;

private final static int NUM_SUITS = 4;

private int face,suit;

private String faceName,suitName;

private int myInt1,myInt2;

Random rand = new Random();

//-----------------------------------------------------------------

// Creates a random card.

//-----------------------------------------------------------------

public Card ()

{

face = rand.nextInt(4) + 1;

setFaceName();

suit = rand.nextInt(13) + 1;

setSuitName();

}

//-----------------------------------------------------------------

// Sets the string representation of the face using its stored

// numeric value.

//-----------------------------------------------------------------

private void setFaceName()

{

switch (face)

{

case 1:

faceName = "Ace";

break;

case 2:

faceName = "Two";

break;

case 3:

faceName = "Three";

break;

case 4:

faceName = "Four";

break;

case 5:

faceName = "Five";

break;

case 6:

faceName = "Six";

break;

case 7:

faceName = "Seven";

break;

case 8:

faceName = "Eight";

break;

case 9:

faceName = "Nine";

break;

case 10:

faceName = "Ten";

break;

case 11:

faceName = "Jack";

break;

case 12:

faceName = "Queen";

break;

case 13:

faceName = "King";

break;

}

}

//-----------------------------------------------------------------

// Sets the string representation of the suit using its stored

// numeric value.

//-----------------------------------------------------------------

private void setSuitName()

{

switch (suit)

{

case 1:

suitName = "Clubs";

break;

case 2:

suitName = "Diamonds";

break;

case 3:

suitName = "Hearts";

break;

case 4:

suitName = "Spades";

break;

}

}

//-----------------------------------------------------------------

// Determines if this card is higher than the passed card. The

// second parameter determines if aces should be considered high

// (beats a King) or low (lowest of all faces). Uses the suit

// if both cards have the same face.

//-----------------------------------------------------------------

public boolean isHigherThan (Card card2,boolean aceHigh)

{

boolean result = false;

if (face == card2.getFace())

{

if (suit > card2.getSuit())

result = true;

}

else

{

if (aceHigh && face == ACE)

result = true;

else

if (face > card2.getFace())

result = true;

}

return result;

}

//-----------------------------------------------------------------

// Determines if this card is higher than the passed card,// assuming that aces should be considered high.

//-----------------------------------------------------------------

public boolean isHigherThan (Card card2)

{

return isHigherThan (card2,true);

}

//-----------------------------------------------------------------

// Returns the face (numeric value) of this card.

//-----------------------------------------------------------------

public int getFace ()

{

return face;

}

//-----------------------------------------------------------------

// Returns the suit (numeric value) of this card.

//-----------------------------------------------------------------

public int getSuit ()

{

return suit;

}

//-----------------------------------------------------------------

// Returns the face (string value) of this card.

//-----------------------------------------------------------------

public String getFaceName ()

{

return faceName;

}

//-----------------------------------------------------------------

// Returns the suit (string value) of this card.

//-----------------------------------------------------------------

public String getSuitName ()

{

return suitName;

}

//-----------------------------------------------------------------

// Returns the string representation of this card,including

// both face and suit.

//-----------------------------------------------------------------

public String toString ()

{

return faceName + " of " + suitName;

}

}

我有一張Deck Of cards文件可以創建52張卡片

import java.util.*;

public class DeckOfCards

{

private Card deckOfCards[];

private int currentCardUsed;

private final int NumberOfCards = 52;

private int nextCard;

private Random rand;

String myString = "All Cards have been dealt.";

public DeckOfCards()

{

deckOfCards = new Card[NumberOfCards];

currentCardUsed = 0;

Random rand = new Random();

for(int index = 0; index < deckOfCards.length; index ++)

{

deckOfCards[index] = new Card();

}

}

public void shuffleCards()

{

currentCardUsed = 0;

for(int newCard = 0; newCard < deckOfCards.length; newCard ++)

{

int nextCard = rand.nextInt(NumberOfCards);

Card temporaryDeck = deckOfCards[newCard];

deckOfCards[newCard] = deckOfCards[nextCard];

deckOfCards[nextCard] = temporaryDeck;

}

}

public Card dealCard()

{

if(currentCardUsed < deckOfCards.length)

{

return deckOfCards[currentCardUsed ++];

}

else

{

return null;

}

}

}

最后我有一個司機班

public class DeckTester

{

public static void main(String [] args)

{

DeckOfCards deck = new DeckOfCards();

deck.shuffleCards();

System.out.println(deck.dealCard());

System.out.println(deck.dealCard());

System.out.println(deck.dealCard());

System.out.println(deck.dealCard());

System.out.println(deck.dealCard());

System.out.println(deck.dealCard());

}

}

他們都沒有錯誤.但是當我運行驅動程序時,我得到了輸出

Exception in thread "main" java.lang.NullPointerException

at DeckOfCards.shuffleCards(DeckOfCards.java:39)

at DeckTester.main(DeckTester.java:8)

我試過在交易方法中改變Null無濟于事.

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java报错空指针异常_java – 空指针异常错误,没有明显的代码错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区在线播放视频 | 中文字幕第二页 | 成人av资源网 | 在线免费视频 | 亚洲av色一区二区三区精品 | 亚洲交性网 | 影音先锋在线观看视频 | 欧美肥妇bwbwbwbxx | 老女人综合网 | 国产伦理av | 在线视频免费播放 | 国产又黄又爽又色 | av爽妇网 | 日本网站在线 | 欧洲成人综合 | 美女又黄又爽 | 91成年人视频| 日韩中文在线一区 | 91中文视频 | 日韩成人一区二区视频 | 天天爽av | 中文字幕自拍偷拍 | 欧美精品高清 | 亚洲午夜福利在线观看 | 色婷婷a| 天天操夜夜操夜夜操 | 欧美另类视频 | 婷婷五月综合激情 | 少妇全黄性生交片 | free性欧美hd精品4k | 国产精品探花一区二区三区 | 无码国产精品96久久久久 | 91网站在线免费观看 | 日女人网站 | 日本青青草 | 国产成a人亚洲精v品在线观看 | 精品人妻少妇一区二区三区 | 成人黄色在线免费观看 | www黄色网 | 深夜福利一区二区三区 | 激情四月| 国产一区99 | 国产视频手机在线播放 | 亚洲三级视频在线观看 | 生活片av | 免费播放毛片 | 欧美女人交配视频 | 久久婷五月| 日本一级一片免费视频 | 国产精品免费无遮挡无码永久视频 | 国产精品视频专区 | 狠狠躁夜夜 | 日本一区二区三区在线视频 | 在线日韩一区二区 | 日本视频免费观看 | 小宵虎南在线观看 | 一区二区三区四区国产 | 中国国产黄色片 | 国产美女精品视频国产 | 亚洲熟妇无码一区二区三区导航 | 黄色精彩视频 | 久草最新视频 | 国产精品啪 | 永久免费看mv网站入口78 | 婷婷色在线| 婷婷五月在线视频 | 久操久操| 咪咪色在线视频 | 婷婷午夜精品久久久久久性色av | 玩弄丰满少妇xxxxx性多毛 | 亚洲av日韩精品久久久久久久 | 日韩电影精品 | 久久香蕉av| 国产精品av久久久久久无 | 精品人妻一区二区三 | 欧美 日韩 国产 成人 在线观看 | 三级av片 | 国产成人av一区二区 | 亚洲综合专区 | www.麻豆av| 色老头网址 | 久久免费视频3 | 欧美大波大乳巨大乳 | 最新激情网站 | 熟女人妇 成熟妇女系列视频 | 亚洲美女影院 | 男人的天堂a在线 | 欧美一级α片 | 欧美私人情侣网站 | 色综合天天综合网国产成人网 | 女人的天堂av在线 | a天堂视频 | 色666| 狠狠干网| 最新成人在线 | 欧美亚洲色图视频 | 亚洲精选在线观看 | 日本一区二区三区欧美 | 36d大奶 |