300行能干啥啊,你還不如自己做做練習(xí)題。
綦江網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,綦江網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為綦江近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的綦江做網(wǎng)站的公司定做!
package suoha;
import java.util.ArrayList;import java.util.Random;
public class MainFunction {
private ArrayListMyCard cards = new ArrayListMyCard();
private int[] cardNumArr = new int[52];
private int[] mycards = new int[5];
private int[] p1cards = new int[5];
public static void main(String[] args) {
MainFunction mainfunc = new MainFunction();
mainfunc.makeCards();
mainfunc.cardNumArr = mainfunc.shuffleCards(mainfunc.cardNumArr);
mainfunc.catchCards();
mainfunc.showAllCardsOfHand();
//mainfunc.printNums();
}
/**
* 洗牌
* @param cardNums
* @return
*/
private int[] shuffleCards(int[] cardNums){
int size = cardNums.length;
int[] returnNums = new int[size];
//System.out.println(cardNums[0]+"=========================");
Random rand = new Random();
for(int i=size-1;i0;i--){
int nextInt = rand.nextInt(i);
returnNums[size-1-i] = cardNums[nextInt];
cardNums[nextInt] = cardNums[i];
cardNums[i] = returnNums[size-1-i];
//System.out.println("suijishu:"+nextInt+"||zhi:"+returnNums[size-1-i]);
}
returnNums[size-1] = cardNums[0];
return returnNums;
}
/**
* 抓牌
*/
private void catchCards(){
for(int i=0;i5;i++){
mycards[i] = cardNumArr[2*i];
p1cards[i] = cardNumArr[2*i+1];
}
}
private void showAllCardsOfHand(){
System.out.print("你手中的牌是:||");
for(int i=0;i5;i++){
MyCard myCard = cards.get(mycards[i]-1);
System.out.print(myCard.toString()+"||");
}
System.out.println();
System.out.print("對家手中的牌是:||");
for(int i=0;i5;i++){
MyCard myCard = cards.get(p1cards[i]-1);
System.out.print(myCard.toString()+"||");
}
}
/**
* 顯示牌的順序
*/
private void printNums(){
for(int i=0;icardNumArr.length;i++){
System.out.print(cardNumArr[i]+",");
}
}
/**
* 制作卡片
*/
private void makeCards(){
for(int i=1;i=13;i++){
for(int j=1;j=4;j++){
//System.out.println((i-1)*4+j);
MyCard card = new MyCard((i-1)*4+j, j, i);
cardNumArr[(i-1)*4+j-1] = (i-1)*4+j;
cards.add(card);
}
// MyCard card1 = new MyCard((i-1)*4+1, 1, i);
// MyCard card2 = new MyCard((i-1)*4+2, 2, i);
// MyCard card3 = new MyCard((i-1)*4+3, 3, i);
// MyCard card4 = new MyCard((i-1)*4+4, 4, i);
// cards.add(card1);
// cards.add(card2);
// cards.add(card3);
// cards.add(card4);
}
}
}
做到這些規(guī)則的目的很簡單,就是寫出“優(yōu)美”的Java代碼來。
1、Java注釋盡可能全面
對于方法的注釋應(yīng)該包含詳細(xì)的入?yún)⒑徒Y(jié)果說明,有異常拋出的情況也要詳細(xì)敘述:類的注釋應(yīng)該包含類的功能說明、作者和修改者。
2、多次使用的相同變量最好歸納成常量 多處使用的相同值的變量應(yīng)該盡量歸納為一個常量,方便日后的維護。
3、盡量少的在循環(huán)中執(zhí)行方法調(diào)用 盡量在循環(huán)中少做一些可避免的方法調(diào)用,這樣可以節(jié)省方法棧的創(chuàng)建。例如:
for(int i=0;ilist.size();i++){
System.out.println(i);}可以修改為:
for(int i=0,size=list.size();isize;i++){
System.out.println(i);}4、常量的定義可以放到接口中 在Java培訓(xùn)中,接口里只允許存在常量,因此把常量放到接口中聲明就可以省去public static final這幾個關(guān)鍵詞。
5、ArrayList和LinkedList的選擇 這個問題比較常見。通常程序員最好能夠?qū)ist的使用場景做出評估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實現(xiàn)的,因此隨機讀取數(shù)據(jù) 會比LinkedList快很多,而LinkedList是使用鏈表實現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。
6、String,StringBuffer和StringBuilder 這個問題也比較常見。在進行字符串拼接處理的時候,String通常會產(chǎn)生多個對象,而且將多個值緩存到常量池中。例如:
String a=“a”;
String b=“b”;a=a+b;這種情況下jvm會產(chǎn)生“a”,“b”,“ab”三個對象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時候盡量采用StringBuffer和StringBuilder來。
7、包裝類和基本類型的選擇 在代碼中,如果可以使用基本數(shù)據(jù)類型來做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因為基本類型的變量是存放在棧中的,包裝類的變量是在堆中,棧的操作速度比堆快很多。
8、盡早的將不再使用的變量引用賦給null 這樣做可以幫助jvm更快的進行內(nèi)存回收。當(dāng)然很多人其實對這種做法并不感冒。
最簡單的java代碼肯定就是這個了,如下:
public class MyFirstApp
{
public static void main(String[] args)
{
System.out.print("Hello world");
}
}
“hello world”就是應(yīng)該是所有學(xué)java的新手看的第一個代碼了。如果是零基礎(chǔ)的新手朋友們可以來我們的java實驗班試聽,有免費的試聽課程幫助學(xué)習(xí)java必備基礎(chǔ)知識,有助教老師為零基礎(chǔ)的人提供個人學(xué)習(xí)方案,學(xué)習(xí)完成后有考評團進行專業(yè)測試,幫助測評學(xué)員是否適合繼續(xù)學(xué)習(xí)java,15天內(nèi)免費幫助來報名體驗實驗班的新手快速入門java,更好的學(xué)習(xí)java!