1. 程式人生 > >201711671115 《Java程式設計》第二週學習總結

201711671115 《Java程式設計》第二週學習總結

一·教材學習內容總結

1.識別符號

1)用來標識類名,變數名,方法名,型別名,陣列名及檔名

2)由字母,下劃線,美元符號和數字組成

3)第一個字元不能是數字

4)不能是關鍵字

5)不能是true,false,null

6)區分大小寫,hello與Hello是不同識別符號

2.Unicode字符集

3.關鍵字一定是小寫。(書P18有50個java的關鍵字)

4.基本資料型別

1)邏輯型別:boolean(true,false)

2)整數型別:byte(1個位元組),int(4個位元組),short(2個位元組),long(8個位元組,字尾L)

3)字元型別:char(2個位元組)(轉義字元:\n換行 \b退格 \t水平製表 \'單引號 \"雙引號 \\反斜線)

4)浮點型別:float(4個位元組,字尾f或F,保留8位有效數字),double(8個位元組,字尾d或D,可省略,保留16位有效數字)

5)觀察一個字元在Unicode表中的順序位置,可以用Int型型別轉換,如(int)'A'。

public class example1 {

	public static void main(String[] args) {
		char chinaword='好';
		char you='\u4F60';
		int position=20320;
		System.out.println("漢字:"+chinaword+"的位置:"+(int)chinaword);
		System.out.println(position+"位置上的字元是:"+(char)position);
		position=21319;
		System.out.println(position+"位置上的字元是:"+(char)position);
		System.out.println("you:"+you);
	}

}

5·型別轉換運算

1)按精度從低到高排列

byte short char int long float double   (當把級別低的變數的值賦給級別高的變數時,系統自動完成轉換。eg.float x=100;會輸出100.0)

2)精度高的賦給精度低的就要強轉換:(型別名)要轉換的值

eg.int x=(int)34.89;

3)注意:當把一個Int型常量賦值給一個byte,short和char型變數時,不可超出這些變數的取值範圍,否則必須進行型別轉換運算。eg.byte a=(byte)128;  a的值為-128             byte b=(byte)(-129);   b的值為127

public class example3 {

	public static void main(String[] args) {
		byte b=22;
		int n=129;
		float f=123456.6789f;
		double d=123456789.123456789;
		System.out.println("b= "+b);
		System.out.println("n= "+n);
		System.out.println("f= "+f);
		System.out.println("d= "+d);
		b=(byte)n;   //導致精度消失
		f=(float)d;   //導致精度消失
		System.out.println("b= "+b);
		System.out.println("f= "+f);		
	}
}

6.輸入,輸出基本資料

1)輸入

scanner reader=new Scanner(System.in);

2)輸出

System.out.println()orSystem.out.print(),前者換行,後者不換行。輸出字元常量時不可以出現回車。

%d輸出int型別  %c輸出char型別  %f輸出浮點型,最多保留6位小數  %s輸出字串 

%md輸出int佔m列  %m.nf輸出浮點型佔m列,小數點保留n位。

import java.util.Scanner;

public class example4 {

	public static void main(String[] args) {
		System.out.println("請輸入20個浮點型數,每輸入一個數按回車確認");
		System.out.println("最後輸入數字0結束確認");
		Scanner reader=new Scanner(System.in);
		double sum=0;
		double x=reader.nextDouble();
		int count=1;
		while(x!=0) {
			sum=sum+x;
			x=reader.nextDouble();
			count++;
		}
		System.out.println("average="+sum/count);
	}

}

7.陣列:相同型別的變數按順序組成的一種複合資料型別。

1)宣告陣列

a.一維陣列

陣列的元素型別 陣列名【】;

陣列的元素型別 【】陣列名;

b.二維陣列

陣列的元素型別 陣列名【】【】;

陣列的元素型別 【】【】陣列名;

c.注意

int []a,b[];  是聲明瞭一個Int型一維陣列a和一個int型二維陣列b

2)為陣列分配元素

陣列名=new 陣列元素的型別【陣列元素的個數】;eg.boy =new float[4];

3)陣列屬於引用型變數,陣列變數中存放著陣列的首元素的地址。

4)宣告陣列和建立陣列可以一起完成:float boy[]=new float[4];

5)int mytwo[] []=new int [3] [4];指的是3個長度為4的陣列。

6)a.length。二維陣列的陣列名.length的值是它含有一維陣列的個數。

7)陣列的引用

注意:如果想輸出char型陣列的引用,必須讓陣列a和字串做並置運算。eg.System.out.println(" "+a);

public class example5 {

	public static void main(String[] args) {
		int a[]= {1,2,3,4};
		int b[]= {100,200,300};
		System.out.println("陣列a的元素個數:"+a.length);
		System.out.println("陣列b的元素個數:"+b.length);
		System.out.println("陣列a的引用"+a);
		System.out.println("陣列b的引用"+b);
		a=b;
		System.out.println("陣列a的元素個數:"+a.length);
		System.out.println("陣列b的元素個數:"+b.length);
		System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
		

	}

}

二·教材學習中的問題和解決過程

對課本上的轉換,強型別轉換,因為對精度的從低到高不太瞭解,所以不懂轉換的意義,看了書上簡單的例子就能明白原來是從高到低不需要()里加型別,而從低到高則需要,精度會損失。

三·程式碼除錯中的問題和解決過程

在練習輸入資料的課本上的程式碼時,scanner那一行一直出錯,滑鼠移上去會出現一個選擇框,當時並不知道是什麼意思。然後就到CSDN上搜索為什麼Scanner這一行會出錯,原來可以點擊出現的對話方塊裡的一個import,這時的Scanner就不會報錯了。

四·感悟,思考

這一章講到了陣列,只是幾頁點了一下陣列的基本概念,但是好像真的會比c++講的陣列來得更簡單些,沒有指標指來指去的煩惱(可能只是還沒學到後面),但是這一章講到的陣列會令人舒服些簡單易懂。

老師在29頁的程式碼裡留了個作業是畫出流程圖,之前的老師也會有要求讓我們畫出某個程式碼的流程圖,但是沒有好好地落實,所以一直對流程圖很陌生。但是老師課上簡單講解了一下還是回憶起了一絲印象,畫好流程圖是打程式碼前地必要準備,更好的梳理程式碼的邏輯,立個flag要多練流程圖。

五·學習進度條