這個做業屬於哪一個課程html |
https://www.cnblogs.com/nwnu-daizh/java |
這個做業的要求在哪裏算法 |
https://www.cnblogs.com/nwnu-daizh/p/11475377.html數組 |
做業學習目標數據結構 |
|
第一部分app
本週理論知識總結及分析Java知識與C基礎語法的異同比較函數
(一)在Java應用程序應注意的問題學習
(1)首先Java區分大小寫,若是出現了大小寫拼寫錯誤程序將沒法運行。測試
(2)Java應用程序中的所有內容都應當放在類中。ui
(二)基本知識
(1)標識符
標識符由字母、下劃線、美圓符號和數字組成,且第一個符號不能爲數字。
好比下列都是合法標識符:Hello、$123四、程序名、www_123
標識符可用做:類名、對象名、變量名、方法名、數組名、文件名等。
(2)關鍵字
關鍵字就是Java語言中已經被賦予特定意義的一些單詞。
常見的關鍵字有:class、public、try、catch、if、float、import、void等。
關鍵字不作變量名
(3)註釋
Java有三種註釋的方式:
//
註釋內容由//一直到此行結束。
/*和*/
定義一個註釋塊。
/**開始,*/結束
這種註釋方法可用來自動產生文檔。
(4)數據類型
Java是一種強類型語言。這意味着每個變量必須聲明一種爲類型。
Java共有8種基本類型
整數類型(int、short、long、byte)
整型常量表示:
十進制:123, 6000
八進制:077, 065
十六進制:0x234, 0Xab12
二進制:0b1001,0B0111
Java中整數的範圍與運行Java代碼的機器無關。
Java中沒有unsigned類型
整型變量的數據類型分爲四種:
int、short、long、byte
變量定義:
int x;
int height, age;
定義同時可賦值: int height=180, age=20;
對於int型變量,內存分配個4字節,佔32位,取值範圍-231 ~ 231-1。
short型
變量定義:
short h;
short m, n;
定義同時可賦值:
short m=12, n=20;
對於short型變量,內存分配2個字節,佔16位,取值範圍-215 ~215-1
long型
變量定義:
long sum;
long I, j, k;
定義同時可賦值:
long sum=343435L;
對於long型變量,內存分配8個字節,佔64位,取值範圍-263 ~263-1
byte型
變量定義:
byte w;
byte x,y,z;
定義同時可賦值:
byte x=12, y=24, z=36;
對於byte型變量,內存分配個1字節,佔8位,取值範圍-27 ~ 27-1。
浮點類型(float、double)
Java中有兩種浮點類型:
float double
浮點常量的表示:
小數表示 430.2
科學計數 4.302E2
表示溢出和出錯的三種特殊的浮點常量:
正無窮大——Double.POSITIVE_INFINITY
負無窮大——Double.NEGATIVE_INFINITY
NaN(非數字)——Double.NaN
float型
常量
12.23f, 32.00F, 2e40f
變量的定義
float x;
float x1,x2,x3;
定義時賦初值
float x1=12.23f, x2=32.00f, x3;
對於float型變量內存分配4個字節,佔32位double 型
常量
12.23d, 32.00D,123.0,6e-120
變量定義
double d;
double d1,d2,d3;
定義時能夠賦初值
double d1=12.23, d2=32.00d, d3;
對於double型變量內存分配8個字節,佔64位。
字符類型(char)
常量
‘a’、‘A’ 、‘8’ 、‘?’
變量定義
char q; char c, type, cat;
定義同時可賦值
char c=‘a’, type, cat;
布爾類型(boolean)
3.2.4 布爾類型
常量
true、false
變量的定義
boolean x;
boolean x,y;
定義同時可賦值
boolean x=true, y=false;
在Java中,布爾值和整數不能相互轉換
(5)變量
在Java中,每個變量屬於一種類型。在聲明變量時,
變量所屬的類型位於變量名以前。
double salary;
int vacationDays;
long earthPopulation;
boolean done;
在Java中,一行能夠聲明多個變量。逐一聲明每個變量能夠提升程序的可讀性。
int i,j;//both are integers
一、變量的初始化
一個變量聲明後,必須經過賦值語句對它進行明確的初始化——永遠不要使用一個未初始化的變量值。
在Java中,能夠在代碼的任何位置進行變量聲明。變量的聲明儘量地靠近變量第一次使用的地方,這是一種良好的程序編寫風格。
在Java中,不能在同一做用域內聲明兩個同名的變量。
二、常量的定義
在Java中,使用關鍵字final來指示常量。習慣上常量名都用大寫。
final double CM_PER_INCH=2.54;
關鍵字final表示只能對變量賦一次值,其值一旦設定,便不能改。
在Java中,常常但願某個常量能夠在一個類中的多個方法中使用,一般將這些常量稱爲類常量。可使用關鍵字static final聲明一個類常量(class constants)。
public static final double CM_PER_INCH=2.54
(6)運算符
(1)各類運算符:與面向對象運算相關
Java提供的一個特別運算符
這是一個用來建立對象的運算符。
Java另一個特別運算符
返回一個布爾值來指出某個對象是不是一個特定類或者是它的子類的一個實例。
(a)算術運算符
(b)自增運算符
(c)關係運算符
(d)邏輯運算符
(e)位運算符
(3)運算符的優先級與結合性
(3)數學函數與常量
數學函數包含在Math類中。
冪函數
三角函數
指數函數及它的反函數等
Java還提供了兩個常量。
Math.PI
Math.E
若不想在數學方法名和常量名前加前綴
「Math.」,可在源文件頂部加上如下代碼便可。
import static java.lang.Math.*;
(7)轉換類型
(a)強制轉換類型
強制類型轉換的語法:
(目標類型)變量名
在進行強制類型轉換時,小心丟失數據。
例1:double x=9.987;
int nx=(int) x; //轉換後 nx=9
例2:若要把一個浮點數轉換成與其最接近的數(即
進行四捨五入)需使用Math.round()方法。
double x=9.987;
int nx=(int)Math.round(x); //結果:nx=10
(b)隱式轉換類型
大多數的數值轉換是遵循優先級的關係自動完成的。
轉換原則以下:
若是兩個操做數中有一個是double類型的,則另外一個將會轉換成double類型。
不然,若是兩個操做數中有一個是float類型的,另外一個將會轉換成float類型。
不然,若是兩個操做數中有一個是long類型的,另外一個將會轉換成long類型。
不然,兩個操做數都將轉換成int類型。
(8)字符串
Java字符串是Unicode字符的序列,它是組織字符的基本數據結構,用法相似於字符數組。
有內置的字符串類型,在標準Java類庫中提供了一個Java預約義類String。在Java中,字符串被看成對象來處理。
程序中須要用到的字符串能夠分爲兩大類:
建立以後不會再作修改和變更的不可變字符串String類;
建立以後容許再作更改和變化的構建字符串StringBuilder類。
(a)字符串常量
使用「」定義字符串。
「abc」,「歡迎使用Java」都是字符串。
Java會自動爲字符串常量生成一個String類的對象,因此能夠直接初始化String對象。
如:String s = 「Hello world!」
(b)String類
String類的構造方法
建立String的一個對象並進行初始化,須要調用類
String的構造方法,主要有如下創造方法:
① String():建立一個空串
② String(String value)
③ String(char value[])
④ String(char[],int startIndex,int numChars)
⑤ String(byte[],byte hibyte)
⑥ String(byte[],byte hibyte,int startIdnex,int
numChars
(c)SttringBuilder類的說明
若是須要多個小段字符串鏈接建立一個字符串時,每次鏈接字符串時,都會構建一個新的String對象,既耗時,又浪費空間,創建StringBuilder類就能夠避免這個問題的發生。
步驟:
StringBuilder builder = new StringBuilder(); //create a string builder
builder.append(ch); //appends a single character
Builder.append(str); //appends a string
在JDK5.0中引入StringBuilder類,這個類的前身是StringBuffer類
(9)輸入輸出
(a)讀取輸入
經過控制檯進行輸入時,須要構造一個Scanner對象,並與「標準輸入流」System.in關聯。
Scanner in = new Scanner(System.in);
例3-2 InputTest.java p55
任務:測試InputTest.java
Scanner類定義在java.util包中,所以使用時需將相應的包加載進來。
Scanner類具體API見p57。
因爲Scanner類輸入是可見的,因此不適用於從控制檯讀
取密碼。Java SE 6.0特別引入Console類實現這個目的。
(b)格式化輸出
使用System.out.print(x)將數值x輸出到控制檯上,這條命令將以x對應的數據類型所容許的最大非0數字位數打印輸出x。
Java SE 5.0沿用了C語言庫函數中的printf方法,
System.out.printf()。
用於printf的轉換符
用於printf的標誌。
printf方法中日期和時間的格式化輸出
(c)文件輸入與輸出
要想對文件進行讀取,就須要一個用File對象結構造一個Scanner如: Scanner in = new Scanner(new File(「myfile.txt」));
要想寫入文件,就須要構造一個PrintWriter對象,在構造器中,只需提供文件名:
PrintWriter out = new PrintWriter(「myfile.txt」);
(9)控制流程(Java共有5中語法)
(a)方法調用語句
(b)表達式語句
(c)複合語句
(d)控制語句(if、switch、for、while、do-while)
(e)Packege和import語句
(10)大數值
若是基本的整型和浮點型數據沒法達到要求的精度,那麼可使用java.math包中的兩個類,
BigInteger和BigDecimal。這兩個類能夠操做任意長的數字。
BigInteger類實現了任意精度的整數運算,
BigDecimal實現了任意精度的浮點運算。
(11)數組
(1)數組是一種數據結構,它是有序數據的集合,
數組中的每一個元素的數據類型都是相同的。
(2)數組的聲明
a)一維數組格式:
數組元素類型 數組名字[];
數組元素類型[] 數組名字; //推薦使用
b)二維數組格式:
數組元素類型 數組名字[][];
數組元素類型[][] 數組名字; //推薦使用
d)其中數據類型能夠爲java中的任意類型,包括基本類型和複合類型。
e)也可用定義的類來聲明數組;
Point[] line;
f)java在數組聲明時並不爲數組分配內存,在java中,數組是獨立的類,有自身的辦法。
(3)數組的建立
數組聲明後,要用new運算符爲其分配內存空間,分配內存空間時必須指明數組的長度。 數組名字= new 數組元素類型[個數]
第二部分 實驗部分
實驗名稱 Java基本程序設計
一、實驗目的
(1)進一步熟悉命令行和IDE兩種方式下java程序開發的基本步驟;
(2)掌握Eclipse集成開發環境下導入Java源程序的過程;
(3)掌握Java語言構造基本程序的數據類型、變量、運算符、各種表達式、輸入輸出、流程控制的基本語法;
(4)掌握Math類、String類、StringBuilder類的用法。
二、實驗內容和步驟
實驗1:java風格九九乘法表程序互評。經過互評給分讓咱們更加熟悉九九乘法表的代碼,更讓咱們在給別人找錯誤的同事思考本身搓澡哪裏以及錯誤的緣由。
實驗2:編寫包含如下代碼片斷的java應用程序,輸出字符串類對象s3的值。
String s1=「Hello!」; String s2=「World」; String s3=s1+s2; |
(1)程序代碼及運行結果以下
實驗3:更改實驗2中s1、s2、s3爲StringBuilder類對象,觀察程序運行結果並與實驗2結果進行對比,理解String類對象與StringBuilder類對象的區別。
實驗代碼及運行結果以下
實驗4:在命令行方式下調試運行下列程序,理解java應用程序命令行參數的用法。
public class Message
{
public static void main(String[] args)
{
if (args[0].equals(「-h」)) System.out.print(「Hello」);
else if(args[0].equals(「-g」)) System.out.print(「goodbye,」);
for(int i=1;i<args.length;i++)
System.out.print(「 」+args[i]);
System.out.println(「!」);
}
}
(1)實驗結果及代碼以下
實驗5:Eclipse環境下導入第3章示例程序InputTest.java步驟:
(1) 新建java project以下圖:
(2) 選擇File->import->File ystem->Next,打開文件導入窗口以下圖,點擊上方Browse選擇導入源程序並選中,點擊下方Browse選擇源程序導入位置爲新項目InputTest/src位置後,點擊finish完成導入。
(3) 打開InputTest項目src文件夾的缺省包,雙擊InputTest.java在IDE源程序編輯區打開文件。
(4) 右鍵單擊InputTest.java文件名打開快捷菜單,選擇Run as->java application運行此程序,結合程序運行結果,理解代碼中Scanner類對象用法,掌握java控制檯輸入方法。
(5) 實驗代碼及結果以下
實驗6:按照實驗5操做步驟,導入WriteReadFileTest.java示例程序,運行程序並理解程序代碼,觀察項目文件夾下文件myfile.txt的內容,掌握文件的輸入輸出操做。
(1)實驗代碼運行結果
(2)myfile.txt實驗結果以下
實驗7:按照實驗5的操做步驟,導入第3章3-3——3-4示例程序,掌握兩個程序循環控制結構的用途。
(1)3-3實驗代碼及運行結果
(2)3-4實驗代碼及運行結果
實驗8:按照實驗5的操做步驟,導入第3章3-5示例程序,理解抽獎機率計算算法。
實驗代碼及運行結果
課程總結
(1)這周咱們所學的內容主要包括Java理論知識學習和實驗操做部分。在這期間老師還經過雨課堂對咱們所學知識進行了檢測,其中老師還幫咱們複習了以前學過的C語言部分,對我有極大的幫助。(2)理論知識部分咱們主要學了Java的應用程序,還有標識符、數組等基礎語言知識,咱們以前在C語言中也學過,此次主要是再次學習和區分Java和C基礎語言中的區別,對咱們有很大的幫助。(3)此次在實驗部分出現了不少細節上面的問題,這些源於本身沒有很深入的理解,尤爲在符號上面出現的錯誤,致使實驗運行錯誤或着運行不出來是很低級的錯誤,之後我必定會更加紮實仔細的學習,多動手敲代碼,儘可能避免一些簡單的錯誤。