基本類型實例
?
?
//1.定義一個一維數組,先聲明,在分配空間 int []number;//生命,沒有初始化,number=null number=new int[5];//初始化為默認值,int默認值為0 //第二步創建內存空間,在堆空間創建長度為5數組,number里面存儲的是第一個內存地址
?
引用類型實例
?
Person[] my=new Person[3];// /* 1.my實在棧區,而Person數組在堆區 2.堆空間有三個連續內存空間里面分別存有三個引用,并且默認初始化為null */?
?
?
?
基本與引用區別圖示
(下圖摘自瘋狂java,版權歸瘋狂java所有)
Args實例練習
?
1.在Main函數中,main(String[ ] args)中的args有什么作用?
?
?
?
String args[ ]或者String[ ] args表示給主方法傳一個字符串數組. 而args是一個字符串數組的變量名,不是關鍵字,是arguments的縮寫,只是一個默認名,一般都習慣性照寫.
?
?
//1.數組練習 //2.args[] 功能 package me.array; public class TestArray2{ public static void main(String[] args){ //輸出 int[] a={2,2,3,4,5,2,3,5,6,2}; for(int i=0;i<a.length;i++){ System.out.println("a["+i+"] = "+a[i]); } for(int i=0;i<args.length;i++){ System.out.println("args["+i+"] = "+args[i]); } //直接java 這個不顯示什么 /*然后測試 : yg@Gino:~/Desktop/code$ java me.array.TestArray2 aaa bbb ccc a[0] = 2 a[1] = 2 a[2] = 3 a[3] = 4 a[4] = 5 a[5] = 2 a[6] = 3 a[7] = 5 a[8] = 6 a[9] = 2 args[0] = aaa args[1] = bbb args[2] = ccc *///args可以把java后面的參數挨個放入數組中, } }
?
?
?
2.實例:寫一個程序讓 java ?me.args.TestArgs 1 + 2 可以返回計算結果 3.0
?
//寫一個程序讓 java me.args.TestArgs 1 + 2 可以返回3.0 package me.args; public class TestArgs{ static void tip(){ System.out.println("-----------------------------------------------------------------"); System.out.println("\n溫馨提示:\n這個一個帶參數的計算程序參"); System.out.println("格式為 java me.args.Args n1 op n2"); System.out.println("n1 --第一個數\nOP --加減乘除任意操作符 \nn2--第二個數"); System.out.println("\n1.輸入數據是請注意n1 OP n2之間的空格\n2.n1n2請輸入數字"); System.out.println("------------------------------------------------------------------"); } public static void main(String[] args){ //寫一個程序讓 java me.args.TestArgs 1 + 2 可以返回3.0 //判斷參數,是否到三個 if(args.length<3){ System.out.println("Input Error!"); System.out.println("java me.args.TestArgs \"n1\" \"op\" \"n2\""); TestArgs.tip(); System.exit(-1);//退出程序,-1表示錯誤退出,0表示非法推出 } //把String類型轉換成double類型 然后再計算 double[] number=new double[2]; //可能拋出NumberFormatException,判斷第一個字符可不可以轉換成數字 try{ number[0]=Double.parseDouble(args[0]); }catch(NumberFormatException ea){ System.out.println("----------n1 Number INput Error!--------------"); ea.printStackTrace(); TestArgs.tip(); System.exit(-1); } //number[1]=Double.parseDouble(args[2]);不健壯,不能判斷非法輸入 //用try結構判斷n2輸入是否合法,不合法就告訴用戶,并且拋出異常 try{ number[1]=Double.parseDouble(args[2]); }catch(NumberFormatException ea){ System.out.println("----------n2 Number INput Error!--------------"); ea.printStackTrace(); TestArgs.tip(); System.exit(-1); } switch(args[1]){ case "+": System.out.println(+number[0] + number[1]); break; case "-": System.out.println(number[0] - number[1]); break; case "*": System.out.println(number[0] * number[1]); break; case "x": System.out.println(number[0] * number[1]); break; case "/": System.out.println(number[0] / number[1]); break; case "%": System.out.println(number[0] % number[1]); break; default : System.out.println("Error Operator"); TestArgs.tip(); break; } } }
?
測試結果:
3.實例:運用args可以對輸入參數進行排序
//1.改寫,實現從命令行上面讀取 5個數,2.排序好,3.輸出 package me.array; public class TestArray3{ //冒泡排序,經典方法 public static void bubbleSort(int[] number){ //排序部分 int temp; //假如第一次 i=8,則比較 下標為 0~8(9個數嘿嘿),前面兩兩依次比較 //當i=7,下標為8已經是最大的一個數,在比較0~7(前8個數),依次兩兩比較 for(int i = number.length-1;i >= 0; i--){ for(int j =0;j < i;j++){ if(number[j]>number[j+1]){ temp=number[j+1]; number[j+1]=number[j]; number[j]=temp; } } } //輸出部分 System.out.println("排序后順序為:"); for(int i = 0;i < number.length;i++){ System.out.println(number[i]); } } public static void main(String[] args){ //1.讀進來 //2.轉成int型 //3.排序好 //4.輸出 //判斷是否帶了5個參數 if(args.length <= 1){ System.out.println(args.length); System.out.println("請在參數處依次輸入2個數以上"); System.exit(-1); } //轉成int型 int[] number=new int[args.length]; // 轉換好放入數組 for(int i = 0 ;i < args.length;i++){ //轉換過程,如果出現異常就catch并輸出信息 try{ number[i]=Integer.parseInt(args[i]); }catch(NumberFormatException ea){ System.out.println("----------輸入入數字有誤-----------------"); System.out.println("錯誤信息如下:"); ea.printStackTrace(); System.out.println("------------------------------------------------"); System.exit(-1); } } //輸出數組中的 System.out.println("您輸入的數字為:"); for(int i = 0;i < number.length;i++){ System.out.println(number[i]); } //調用冒泡排序方法 TestArray3.bubbleSort(number); } }
測試結果:
?
?
作者:YangGan
出處: http://blog.csdn.net/incyanggan
本文基于 署名 2.5 中國大陸 許可協議發布,歡迎轉載,演繹或用于商業目的,但是必須保留本文的署名 Yanggan (包含鏈接).
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
