天天看點

黑馬程式員 JAVA基礎(三)數組

                               -----------android教育訓練、java教育訓練、java學習型技術部落格、期待與您交流!------------

              在此,分享一下自己學習JAVA的學習心得。有不對的地方請幫忙改正,也希望對想學java的同學有幫助!

JAVA語言基礎

函數

定義:函數就是定義在類中具有特定功能的一段獨立小程式,函數也稱方法。

格式:

      修飾符  傳回值類型  函數名 (參數類型  形式參數1,參數類型   形式參數2 )

      {                  執行語句;                  return   傳回值;       }

注:傳回值類型:函數運作後的結果的資料類型;        參數類型:是形式參數的資料類型;        形式參數:是一個變量,用于存儲調用函數時傳遞給函數的實際參數;        實際參數:傳遞給形式參數的具體數值;        return:用于結束函數;        傳回值:該值會傳回給調用者。

 函數的特點:

(1)定義函數可以将功能代碼進行封裝; (2)函數隻有被調用才會執行; (3)函數的出現提高了代碼的複用性; (4)對于函數沒有具體傳回值的情況,傳回值類型用關鍵字void表示,那麼如果該函數的return語句在最後一行可以省略不寫。

注:函數中隻能調用函數,不可以在函數内部定義函數;    JAVA練習代碼:   

class BabySitter
{
	String name = "張曉";

	String sex = "女";

	String age = "29";

	void cooking()
	{
	   System.out.println(name+"~"+sex+"~"+age);
	}

}


class ClassDemo 
{
	public static void main(String[] args) 
	{
		BabySitter B = new BabySitter();

		B.cooking();

	}
}
           
class Trans 
{
	public static void main(String[] args) 
	{
       tobin (60);
	   toba(60);
	   tohex(60);
		
	}

	//十進制轉二進制
	public static void tobin(int num)
	{
	    trans(num ,1,1);
	}
	//十進制轉八進制
	public static void toba(int num)
	{
	    trans(num ,7,3);
	}
	//十進制轉十六進制
	public static void tohex(int num)
	{
	    trans(num ,15,4);
	}
	public static void trans(int num,int base,int offset)
	{
		if(num==0)
		{
		  System.out.println(0);
		}
		//定義一個表
	   char [] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

	   //定義一個容器
	   char [] arr =new char[32];

	   int pos = arr.length;//位移位數

       while(num!=0)
		{
		   int temp= num & base;   

		   arr[--pos] = chs[temp];

		   num= num>>>offset;
	   }

	   for(int x= pos; x<arr.length; x++)
		{
	      System.out.print(arr[x]);
	    }
        System.out.println();
	}
}
           
</pre></div><div><span style="font-size:18px">在主函數中調用列印99乘法表的函數</span><pre name="code" class="java">class FunctionDemo
{

   public static void main (String args[]) 

   {
     printer99();//列印99乘法表
    } 
    public static void printer99()
    {
       for(int x=1; x<=9; x++)
       {
          for(int y=1; y<=x;y++)
          {
             System.out.print(x+"*"+y+"="+x*y+"\t");
            }
            System.out.println();
        }
     }
}
           

                   函數的重載(overload)                   

黑馬程式員 JAVA基礎(三)數組

Java練習代碼:

函數 person(String name)與 person(String name,String sex,int age)屬于重載關系

class person
{
	private String name;
	private int age;
	private String sex;

        person(String name)
	{
	   this.name = name;
	
	}
	person(String name,String sex,int age)
	{
	   this.name = name;

	   this.sex = sex;

	   this.age = age;	
	}

	public void speak()
	{
	   System.out.println(this.name+" "+this.sex+" "+this.age);
	}
}

class PersonDemo
{
	public static void main(String[] args) 
	{
	      person p = new person();
          
		  p.name = "jolin";
 
   		  p.sex = "woman";

		  p.age = "36";

		  speak();

	}
}
           

數組

定義:同一類型資料的集合。其實數組就是一個容器。 一維數組 格式1: 元素類型[ ]  數組名  =  new  元素類型  [元素個數或者數組長度] 示例: int   [  ]  arr   =  new  int  [5];

  格式2: 元素類型[ ]  數組名  =  new  元素類型  [ ]  {元素,元素,  元素,  元素,  .......  } 示例: int   [  ]  arr   =  new  int  [  ] {3,5,7,9} ;            int   [  ]  arr  =  {3,5,7,9};

數組記憶體結構

黑馬程式員 JAVA基礎(三)數組

數組常見操作問題: (1)數組角标越界異常(ArrayIndexOutOfBoundsException)         int  [  ]   arr  =  new  int [2];         System.out.println(arr[3]);               通路到了數組中的不存在的角标時發生 (2)空指針異常(NullPointerException)         int [  ]  arr  = null;               System.out.println(arr[0]);         arr引用沒有指向實體,卻在操作實體中的元素時。

數組中常見的操作 (1)擷取最值(最大值,最小值) Java練習代碼:

class ArrayDemo
{
	public static void main(String []args)
	{
	   int [] shuzu= {1,5,2,3,6,9,4,7};  
	   //列印數組
       printer(shuzu);
	   //從大到小排序
       Dn(shuzu);
	   printer(shuzu);
	   //從小到大排序
	   Up(shuzu);
	   printer(shuzu);
	}
	
	//定義一個函數為Dn,要求數組按從大到小輸出

	public static void Dn (int arr[])
	{
	    for (int x=0; x<arr.length-1 ;x++ )
	    {
			for(int y=x+1; y<arr.length ;y++)
			{
			   if (arr[x]<arr[y])
				{
			       int temp=arr[x];
				   arr[x]=arr[y];
			       arr[y]=temp;
			    }		
			}
	    }
	
	}

	//定義一個函數為Up,要求數組從小到大排序

		public static void Up (int arr[])
	{
	    for (int x=0; x<arr.length-1 ;x++ )
	    {
			for(int y=x+1; y<arr.length ;y++)
			{
			   if (arr[x]>arr[y])
				{
			       int temp=arr[x];
				   arr[x]=arr[y];
			       arr[y]=temp;
			    }		
			}
	    }
	}

	//定義一個列印數組的函數printer。

	public static void printer (int arr[])
	{
	   System.out.print("[");
	   for (int x=0; x<arr.length ;x++ )
	   {
		   if(x!=arr.length-1)
		   System.out.print(arr[x]+",");
		   else
			System.out.println(arr[x]+"]"); 
	   }
	   
	}

}
           

(2)排序(選擇排序,冒泡排序)

class BublueDemo 
{
	public static void main(String[] args) 
	{
		int [] arr ={0,2,3,5,1,9,4};
 
		bublue(arr);
		printer(arr);
	}

	public static void bublue(int []arr)
	{
	   for(int x=0; x<arr.length;x++)
		  {
		     for(int y=0;y<arr.length-1-x;y++) //-x:每次比較的元素減少;-1:避免角标越界。
			 {
		        if(arr[y]>arr[y+1])
				 {
			       int temp=arr[y];
				   arr[y]=arr[y+1];
				   arr[y+1]=temp;
			     }
		     }
	      }
	}

	public static void printer (int arr[])
	{
	   System.out.print("[");
	   for (int x=0; x<arr.length ;x++ )
	   {
		   if(x!=arr.length-1)
		   System.out.print(arr[x]+",");
		   else
			System.out.println(arr[x]+"]"); 
	   }
	   
	}
}
           

(3)折半查找(二分查找)

二維數組

黑馬程式員 JAVA基礎(三)數組
黑馬程式員 JAVA基礎(三)數組