05_Java基礎(chǔ)語(yǔ)法_第5天(方法)_講義_第1頁(yè)
05_Java基礎(chǔ)語(yǔ)法_第5天(方法)_講義_第2頁(yè)
05_Java基礎(chǔ)語(yǔ)法_第5天(方法)_講義_第3頁(yè)
05_Java基礎(chǔ)語(yǔ)法_第5天(方法)_講義_第4頁(yè)
05_Java基礎(chǔ)語(yǔ)法_第5天(方法)_講義_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

傳智播客專注于Java、.Net和Php、網(wǎng)頁(yè)平面設(shè)計(jì)工程師的培訓(xùn)第5天 Java基礎(chǔ)語(yǔ)法今日內(nèi)容介紹u 方法第1章 方法1.1 方法概述在我們的日常生活中,方法可以理解為要做某件事情,而采取的解決辦法。如:小明同學(xué)在路邊準(zhǔn)備坐車來(lái)學(xué)校學(xué)習(xí)。這就面臨著一件事情(坐車到學(xué)校這件事情)需要解決,解決辦法呢?可采用坐公交車或坐出租車的方式來(lái)學(xué)校,那么,這種解決某件事情的辦法,我們就稱為方法。在java中,方法就是用來(lái)完成解決某件事情或?qū)崿F(xiàn)某個(gè)功能的辦法。方法實(shí)現(xiàn)的過(guò)程中,會(huì)包含很多條語(yǔ)句用于完成某些有意義的功能通常是處理文本,控制輸入或計(jì)算數(shù)值。我們可以通過(guò)在程序代碼中引用方法名稱和所需的參數(shù),實(shí)現(xiàn)在該程序中執(zhí)行(或稱調(diào)用)該方法。方法,一般都有一個(gè)返回值,用來(lái)作為事情的處理結(jié)果。1.2 方法的語(yǔ)法格式在Java中,聲明一個(gè)方法的具體語(yǔ)法格式如下:修飾符 返回值類型 方法名(參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,) 執(zhí)行語(yǔ)句 return 返回值;對(duì)于上面的語(yǔ)法格式中具體說(shuō)明如下:l 修飾符:方法的修飾符比較多,有對(duì)訪問(wèn)權(quán)限進(jìn)行限定的,有靜態(tài)修飾符static,還有最終修飾符final等,這些修飾符在后面的學(xué)習(xí)過(guò)程中會(huì)逐步介紹l 返回值類型:用于限定方法返回值的數(shù)據(jù)類型l 參數(shù)類型:用于限定調(diào)用方法時(shí)傳入?yún)?shù)的數(shù)據(jù)類型l 參數(shù)名:是一個(gè)變量,用于接收調(diào)用方法時(shí)傳入的數(shù)據(jù)l return關(guān)鍵字:用于結(jié)束方法以及返回方法指定類型的值l 返回值:被return語(yǔ)句返回的值,該值會(huì)返回給調(diào)用者需要特別注意的是,方法中的“參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2”被稱作參數(shù)列表,它用于描述方法在被調(diào)用時(shí)需要接收的參數(shù),如果方法不需要接收任何參數(shù),則參數(shù)列表為空,即()內(nèi)不寫(xiě)任何內(nèi)容。方法的返回值必須為方法聲明的返回值類型,如果方法中沒(méi)有返回值,返回值類型要聲明為void,此時(shí),方法中return語(yǔ)句可以省略。接下來(lái)通過(guò)一個(gè)案例來(lái)演示方法的定義與使用,如下圖所示。MethodDemo01.javapublic class MethodDemo01 public static void main(String args) int area = getArea(3, 5); / 調(diào)用 getArea方法System.out.println( The area is + area);/ 下面定義了一個(gè)求矩形面積的方法,接收兩個(gè)參數(shù),其中x為高,y為寬public static int getArea(int x, int y) int temp = x * y; / 使用變量temp記住運(yùn)算結(jié)果return temp; / 將變量temp的值返回運(yùn)行結(jié)果如下圖所示。圖1-1 運(yùn)行結(jié)果在上述代碼中,定義了一個(gè)getArea()方法用于求矩形的面積,參數(shù)x和y分別用于接收調(diào)用方法時(shí)傳入的高和寬,return語(yǔ)句用于返回計(jì)算所得的面積。在main()方法中通過(guò)調(diào)用getArea()方法,獲得矩形的面積,并將結(jié)果打印。1.3 方法調(diào)用圖解接下來(lái)通過(guò)一個(gè)圖例演示getArea()方法的整個(gè)調(diào)用過(guò)程,如下圖所示。圖1-2 getArea()方法的調(diào)用過(guò)程從上圖中可以看出,在程序運(yùn)行期間,參數(shù)x和y相當(dāng)于在內(nèi)存中定義的兩個(gè)變量。當(dāng)調(diào)用getArea()方法時(shí),傳入的參數(shù)3和5分別賦值給變量x和y,并將x*y的結(jié)果通過(guò)return語(yǔ)句返回,整個(gè)方法的調(diào)用過(guò)程結(jié)束,變量x和y被釋放。1.4 方法定義練習(xí)分別定義如下方法:定義無(wú)返回值無(wú)參數(shù)方法,如打印3行,每行3個(gè)*號(hào)的矩形定義有返回值無(wú)參數(shù)方法,如鍵盤(pán)錄入得到一個(gè)整數(shù)定義無(wú)返回值有參數(shù)方法,如打印指定M行,每行N個(gè)*號(hào)的矩形定義有返回值有參數(shù)方法,如求三個(gè)數(shù)的平均值l 無(wú)返回值無(wú)參數(shù)方法,如打印3行,每行3個(gè)*號(hào)的矩形public static void printRect()/打印3行星for (int i=0; i3; i+) /System.out.println(*); 相當(dāng)于是打印3顆星,換行/每行打印3顆星for (int j=0; j3; j+) System.out.print(*); / *System.out.println();l 有返回值無(wú)參數(shù)方法,如鍵盤(pán)錄入得到一個(gè)整數(shù)public static int getNumber()Scanner sc = new Scanner(System.in);int number = sc.nextInt();return number;l 無(wú)返回值有參數(shù)方法,如打印指定M行,每行N個(gè)*號(hào)的矩形public static void printRect2(int m, int n)/打印M行星for (int i=0; im; i+) /每行中打印N顆星for (int j=0; jn; j+) System.out.print(*); System.out.println();l 有返回值有參數(shù)方法,如求三個(gè)數(shù)的平均值public static double getAvg(double a, double b, double c) double result = (a+b+c)/3;return result;1.5 方法的重載我們假設(shè)要在程序中實(shí)現(xiàn)一個(gè)對(duì)數(shù)字求和的方法,由于參與求和數(shù)字的個(gè)數(shù)和類型都不確定,因此要針對(duì)不同的情況去設(shè)計(jì)不同的方法。接下來(lái)通過(guò)一個(gè)案例來(lái)實(shí)現(xiàn)對(duì)兩個(gè)整數(shù)相加、對(duì)三個(gè)整數(shù)相加以及對(duì)兩個(gè)小數(shù)相加的功能,具體實(shí)現(xiàn)如下所示。MethodDemo02.javapublic class MethodDemo02 public static void main(String args) / 下面是針對(duì)求和方法的調(diào)用int sum1 = add01(1, 2);int sum2 = add02(1, 2, 3);double sum3 = add03(1.2, 2.3);/ 下面的代碼是打印求和的結(jié)果System.out.println(sum1= + sum1);System.out.println(sum2= + sum2);System.out.println(sum3= + sum3);/ 下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相加public static int add01(int x, int y) return x + y;/ 下面的方法實(shí)現(xiàn)了三個(gè)整數(shù)相加public static int add02(int x, int y, int z) return x + y + z;/ 下面的方法實(shí)現(xiàn)了兩個(gè)小數(shù)相加public static double add03(double x, double y) return x + y;運(yùn)行結(jié)果如下圖所示。圖1-3 運(yùn)行結(jié)果從上述代碼不難看出,程序需要針對(duì)每一種求和的情況都定義一個(gè)方法,如果每個(gè)方法的名稱都不相同,在調(diào)用時(shí)就很難分清哪種情況該調(diào)用哪個(gè)方法。為了解決這個(gè)問(wèn)題,Java允許在一個(gè)類中定義多個(gè)名稱相同的方法,但是參數(shù)的類型或個(gè)數(shù)必須不同,這就是方法的重載。下面的三個(gè)方法互為重載關(guān)系l public static int add(int x,int y) 邏輯 /兩個(gè)整數(shù)加法l public static int add(int x,int y,int z) 邏輯 /三個(gè)整數(shù)加法l public static int add(double x,double y) 邏輯 /兩個(gè)小數(shù)加法接下來(lái)通過(guò)方法重載的方式進(jìn)行修改,如下所示。MethodDemo03.javapublic class MethodDemo03 public static void main(String args) / 下面是針對(duì)求和方法的調(diào)用int sum1 = add(1, 2);int sum2 = add(1, 2, 3);double sum3 = add(1.2, 2.3);/ 下面的代碼是打印求和的結(jié)果System.out.println(sum1= + sum1);System.out.println(sum2= + sum2);System.out.println(sum3= + sum3);/ 下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相加public static int add(int x, int y) return x + y;/ 下面的方法實(shí)現(xiàn)了三個(gè)整數(shù)相加public static int add(int x, int y, int z) return x + y + z;/ 下面的方法實(shí)現(xiàn)了兩個(gè)小數(shù)相加public static double add(double x, double y) return x + y;MethodDemo02.java的運(yùn)行結(jié)果和MethodDemo03.java一樣,如下圖所示。圖1-4 運(yùn)行結(jié)果上述代碼中定義了三個(gè)同名的add()方法,它們的參數(shù)個(gè)數(shù)或類型不同,從而形成了方法的重載。在main()方法中調(diào)用add()方法時(shí),通過(guò)傳入不同的參數(shù)便可以確定調(diào)用哪個(gè)重載的方法,如add(1,2)調(diào)用的是兩個(gè)整數(shù)求和的方法。值得注意的是,方法的重載與返回值類型無(wú)關(guān),它只有兩個(gè)條件,一是方法名相同,二是參數(shù)個(gè)數(shù)或參數(shù)類型不相同。1.5.1 重載的注意事項(xiàng)l 重載方法參數(shù)必須不同:參數(shù)個(gè)數(shù)不同,如method(int x)與method(int x,int y)不同參數(shù)類型不同,如method(int x)與method(double x)不同g參數(shù)順序不同,如method(int x,double y)與method(double x,int y)不同l 重載只與方法名與參數(shù)類型相關(guān)與返回值無(wú)關(guān)如void method(int x)與int method(int y)不是方法重載,不能同時(shí)存在l 重載與具體的變量標(biāo)識(shí)符無(wú)關(guān)如method(int x)與method(int y)不是方法重載,不能同時(shí)存在1.5.2 參數(shù)傳遞參數(shù)傳遞,可以理解當(dāng)我們要調(diào)用一個(gè)方法時(shí),我們會(huì)把指定的數(shù)值,傳遞給方法中的參數(shù),這樣方法中的參數(shù)就擁有了這個(gè)指定的值,可以使用該值,在方法中運(yùn)算了。這種傳遞方式,我們稱為參數(shù)傳遞。l 在這里,定義方法時(shí),參數(shù)列表中的變量,我們稱為形式參數(shù)l 調(diào)用方法時(shí),傳入給方法的數(shù)值,我們稱為實(shí)際參數(shù)我們看下面的兩段代碼,來(lái)明確下參數(shù)傳遞的過(guò)程:public class ArgumentsDemo01 public static void main(String args) int a=5;int b=10;change(a, b);/調(diào)用方法時(shí),傳入的數(shù)值稱為實(shí)際參數(shù)System.out.println(a= + a);System.out.println(b= + b);public static void change(int a, int b)/方法中指定的多個(gè)參數(shù)稱為形式參數(shù)a=200;b=500;程序的運(yùn)行結(jié)果如下:再看另一段代碼public class ArgumentsDemo02 public static void main(String args) int arr = 1, 2, 3 ;change(arr);/ 調(diào)用方法時(shí),傳入的數(shù)值稱為實(shí)際參數(shù)for (int i = 0; i arr.length; i+) System.out.println(arri);public static void change(int arr) / 方法中指定的多個(gè)參數(shù)稱為形式參數(shù)for (int i = 0; i arr.length; i+) arri *= 2;程序的運(yùn)行結(jié)果如下:1.5.3 參數(shù)傳遞圖解與結(jié)論通過(guò)上面的兩段程序可以得出如下結(jié)論:l 當(dāng)調(diào)用方法時(shí),如果傳入的數(shù)值為基本數(shù)據(jù)類型(包含String類型),形式參數(shù)的改變對(duì)實(shí)際參數(shù)不影響l 當(dāng)調(diào)用方法時(shí),如果傳入的數(shù)值為引用數(shù)據(jù)類型(String類型除外),形式參數(shù)的改變對(duì)實(shí)際參數(shù)有影響第2章 隨機(jī)點(diǎn)名器案例2.1 案例介紹隨機(jī)點(diǎn)名器,即在全班同學(xué)中隨機(jī)的打印出一名同學(xué)名字。要做的隨機(jī)點(diǎn)名器,它具備以下3個(gè)內(nèi)容:l 存儲(chǔ)所有同學(xué)姓名l 總覽全班同學(xué)姓名l 隨機(jī)點(diǎn)名其中一人,打印到控制臺(tái)2.2 案例需求分析在全班同學(xué)中隨機(jī)的打印出一名同學(xué)名字。我們對(duì)本案例進(jìn)行分析,得出如下分析結(jié)果:1.存儲(chǔ)全班同學(xué)名字2.打印全班同學(xué)每一個(gè)人的名字3.在班級(jí)總?cè)藬?shù)范圍內(nèi),隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù),查找該隨機(jī)數(shù)所對(duì)應(yīng)的同學(xué)名字該案例須有以下3個(gè)內(nèi)容:l 存儲(chǔ)所有同學(xué)姓名l 總覽全班同學(xué)姓名l 隨機(jī)點(diǎn)名其中一人,打印到控制臺(tái)隨機(jī)點(diǎn)名器明確地分為了三個(gè)功能。如果將多個(gè)獨(dú)立功能的代碼寫(xiě)到一起,則代碼相對(duì)冗長(zhǎng),我們可以針對(duì)不同的功能可以將其封裝到一個(gè)方法中,將完整獨(dú)立的功能分離出來(lái)。而在存儲(chǔ)同學(xué)姓名時(shí),如果對(duì)每一個(gè)同學(xué)都定義一個(gè)變量進(jìn)行姓名存儲(chǔ),則會(huì)出現(xiàn)過(guò)多孤立的變量,很難一次性將全部數(shù)據(jù)持有。此時(shí),我們可以使用數(shù)組解決多個(gè)數(shù)據(jù)的存儲(chǔ)問(wèn)題。2.3 實(shí)現(xiàn)代碼步驟編寫(xiě)CallName.java文件,完成程序的編寫(xiě)。l main方法中調(diào)用三個(gè)獨(dú)立方法public static void main(String args) System.out.println(-隨機(jī)點(diǎn)名器-);/ 創(chuàng)建一個(gè)存儲(chǔ)多個(gè)同學(xué)名字的容器(數(shù)組)String students = new String3;/* * 1.存儲(chǔ)全班同學(xué)名字 */addStudentName(students);/* * 2.打印全班同學(xué)每一個(gè)人的名字 */printStudentName(students);/* * 3.獲取隨機(jī)點(diǎn)名到的學(xué)生姓名,并打印 */String randomName = randomStudentName(students);System.out.println(被點(diǎn)到名的同學(xué)是 : + randomName);l 1.存儲(chǔ)所有同學(xué)姓名/* * 1.存儲(chǔ)全班同學(xué)名字 * 創(chuàng)建一個(gè)存儲(chǔ)多個(gè)同學(xué)名字的容器(數(shù)組) * 鍵盤(pán)輸入每個(gè)同學(xué)的名字,存儲(chǔ)到容器中(數(shù)組) */public static void addStudentName(String students) /鍵盤(pán)輸入多個(gè)同學(xué)名字存儲(chǔ)到容器中Scanner sc = new Scanner(System.in);for (int i = 0; i students.length; i+) System.out.println(存儲(chǔ)第+i+個(gè)名稱:);studentsi = sc.next();上述方法中,通過(guò)鍵盤(pán)錄入,完成為指定數(shù)組元素賦值。方法定義時(shí),將參數(shù)定義為字符串?dāng)?shù)組,用于接收存放的同學(xué)姓名。l 打印全班同學(xué)每一個(gè)人的名字/* * 2打印全班同學(xué)每一個(gè)人的名字 */public static void printStudentName(String students) /遍歷數(shù)組,得到每個(gè)同學(xué)名字for (int i = 0; i students.length; i+) String name = studentsi;/打印同學(xué)名字System.out.println(第+i+個(gè)學(xué)生名稱: + name);上述方法中,方法參數(shù)students數(shù)組中存儲(chǔ)了所有學(xué)生的姓名。通過(guò)遍歷將數(shù)組中的每一個(gè)元素訪問(wèn)一遍,得到每一個(gè)同學(xué)名稱。l 3.獲取隨機(jī)點(diǎn)到的學(xué)生姓名/* * 3.在班級(jí)總?cè)藬?shù)范圍內(nèi),隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù),返回隨機(jī)數(shù)位置上的學(xué)生姓名 */public static String randomStudentName(String students) /根據(jù)數(shù)組長(zhǎng)度,獲取隨機(jī)索引int index = new Random().nextInt(students.length);/通過(guò)隨機(jī)索引從數(shù)組中獲取名稱String name = studentsindex;/返回隨機(jī)點(diǎn)到的名稱return name;上述方法中,通過(guò)隨機(jī)數(shù)類Random產(chǎn)生一個(gè)從0到數(shù)組長(zhǎng)度的隨機(jī)索引。使用該索引獲取students數(shù)組中對(duì)應(yīng)的值,便得到了全班同學(xué)的隨機(jī)姓名。第3章 庫(kù)存管理案例3.1 案例介紹現(xiàn)在,我們將原有的庫(kù)存管理案例,進(jìn)行業(yè)務(wù)邏輯的封裝。將對(duì)下列功能進(jìn)行方法封裝:l 打印庫(kù)存清單功能l 庫(kù)存商品數(shù)量修改功能l 退出程序功能3.2 案例需求分析管理員能夠進(jìn)行的操作有3項(xiàng)(查看、修改、退出),我們可以采用(switch)菜單的方式來(lái)完成。-庫(kù)存管理-1.查看庫(kù)存清單2.修改商品庫(kù)存數(shù)量3.退出請(qǐng)輸入要執(zhí)行的操作序號(hào): 每一項(xiàng)功能操作,我們采用方法進(jìn)行封裝,這樣,可使程序的可讀性增強(qiáng)。選擇“1.查看庫(kù)存清單”功能,則控制臺(tái)打印庫(kù)存清單選擇“2.修改商品庫(kù)存數(shù)量”功能,則對(duì)每種商品庫(kù)存數(shù)進(jìn)行更新選擇“3.退出”功能,則退出庫(kù)存管理,程序結(jié)束3.3 實(shí)現(xiàn)代碼步驟編寫(xiě)代碼Demo庫(kù)存管理.java,完成如下功能:l 功能菜單/* * 庫(kù)存管理功能菜單 * return 管理員鍵盤(pán)輸入的功能操作序號(hào) */public static int chooseFunction() System.out.println(-庫(kù)存管理-);System.out.println(1.查看庫(kù)存清單);System.out.println(2.修改商品庫(kù)存數(shù)量);System.out.println(3.退出);System.out.println(請(qǐng)輸入要執(zhí)行的操作序號(hào):);/接收鍵盤(pán)輸入的功能選項(xiàng)序號(hào)Scanner sc = new Scanner(System.in); int choose = sc.nextInt();return choose;上述方法用來(lái)完成庫(kù)存管理功能菜單的顯示、接收管理員選擇的功能操作序號(hào)。這是完成了案例的第一步。接下來(lái)完成“查看、修改、退出”這三項(xiàng)功能。l 編寫(xiě)main主方法,調(diào)用庫(kù)存管理功能菜單方法,與“查看、修改、退出”這三個(gè)方法。public static void main(String args) /記錄庫(kù)存商品信息/品牌型號(hào)String brands = new StringMacBookAir, ThinkpadT450;/尺寸大小double sizes = new double13.3, 14.0;/價(jià)格double prices = new double6988.88, 5999.99;/庫(kù)存?zhèn)€數(shù)int counts = new int0, 0;/通過(guò)while循環(huán)模擬管理員進(jìn)行功能重復(fù)選擇操作while (true) /打印功能菜單操作,接收鍵盤(pán)輸入的功能選項(xiàng)序號(hào)int choose = chooseFunction();/執(zhí)行序號(hào)對(duì)應(yīng)的功能switch (choose) case 1:/查看庫(kù)存清單printStore(brands, sizes, prices, counts);break;case 2:/修改商品庫(kù)存數(shù)量update(brands, counts);break;case 3:/退出exit();return;default:System.out.println(-);System.out.println(功能選擇有誤,請(qǐng)輸入正確的功能序號(hào)!);break;在主方法中,創(chuàng)建了5個(gè)數(shù)組,分別用來(lái)存儲(chǔ)商品的品牌型號(hào)、尺寸大小、價(jià)格、配置、庫(kù)存?zhèn)€數(shù),通過(guò)接收到的功能選項(xiàng)序號(hào),進(jìn)行switch語(yǔ)句判斷后,調(diào)用對(duì)應(yīng)的功能方法。l 查看庫(kù)存清單功能/* * 查看庫(kù)存清單 * param brands 商品品牌型號(hào) * param sizes 商品尺寸大小 * param prices 商品價(jià)格 * param counts 商品庫(kù)存?zhèn)€數(shù) */public static void printStore(String brands, double sizes, double prices, int counts) /統(tǒng)計(jì)總庫(kù)存?zhèn)€數(shù)、統(tǒng)計(jì)庫(kù)存總金額int totalCount = 0;double totalMoney = 0.0;for (int i = 0; i brands.length; i+) totalCount += countsi;totalMoney += countsi * pricesi;/列表頂部System.out.println(-查看庫(kù)存清單-);System.out.println(品牌型號(hào)尺寸價(jià)格庫(kù)存數(shù));/列表中部for (int i = 0; i brands.length; i+) System.out.println(brandsi+sizesi+pricesi+countsi);/列表底部System.out.println(-);System.out.println(總庫(kù)存數(shù):+totalCount); System.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論