首先理解public boolean addBook(Book book )這句話的含義是創(chuàng)建一個大家都能使用的公共方法(public的作用),該方法返回一個布爾類型的值(boolean的作用),該方法的名字是addBooke(調(diào)用方法需要名字啊,沒名字怎么用它),這個方法需要的參數(shù)是一個Book類型的對象book(Book book的作用);
創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都移動機房托管報價,主機托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
每一個方法都有一個方法簽名:方法簽名就是方法名和參數(shù)列表(在這里就是 addBook(Book book))通過方法簽名我們就能正確的找到并執(zhí)行該方法;
方法名,顧名思義就是方法的名字,一個類中可以有很多相同方法名的方法,就拿addBook來所,是添加書,添加書的渠道很多,可以通過書名添加,也可以通過id添加,只不過執(zhí)行的邏輯和需要的參數(shù)不同;所以一個類中可以有很多的同名方法,那么程序如何區(qū)分這些方法呢?那就是通過方法簽名的另一個元素——參數(shù)列表,在java中稱方法名相同,參數(shù)列表不同的情況為方法的重載;
這位大哥問的就是參數(shù)列表的問題,參數(shù)列表中需要的是參數(shù)的數(shù)據(jù)類型,和一個引用來臨時在方法中保存用戶給的數(shù)據(jù);這里Book就是數(shù)據(jù)類型,book就是一個臨時的引用在方法體內(nèi)可以代表用戶給的數(shù)據(jù)的;這里有需要有棧楨和堆的概念了,在沒有這些基礎(chǔ)知識的時候我們只要知道,book是一個引用,在方法體中我么可以使用book來操作一個不屬于我們的外部對象;
純手打望采納;
請采納啊,不明白的在追問,謝謝。
//聲明包
package?cn.jbit.classandobject;
//導(dǎo)入包
import?java.util.Scanner;
/**
*?上機階段4:登錄并購買商品
*/
//?聲明類Goods
public?class?Goods
{
//?聲明String類型的數(shù)組:goods,并初始化。
String[]?goods?=?new?String[]?{?"電風扇",?"洗衣機",?"電視機",?"冰?箱",?"空調(diào)機"?};?//?定義數(shù)組是干什么用的
//?聲明double類型的數(shù)組:price,并初始化。
double[]?price?=?new?double[]?{?124.23,?4500,?8800.90,?5000.88,?4456,
12000.46?};
//?聲明返回值類型為:boolean的login()方法
public?boolean?login()
{
//?聲明變量flag,類型為boolean,初始值為:false,作為是否登錄成功的標志
boolean?flag?=?false;
//?鍵盤輸入
Scanner?input?=?new?Scanner(System.in);
//?打印
System.out.print("請輸入用戶名:?");
//?聲明變量name,接收輸入用戶名
String?name?=?input.next();
//?打印
System.out.print("請輸入密碼:?");
//?聲明變量pwd,接收輸入密碼
String?pwd?=?input.next();
//?if判斷用戶名和密碼是否正確
if?(name.equals("TOM")??pwd.equals("123"))
{
//?打印
System.out.println("登錄成功!?");
//?修改是否登錄成功的標志
flag?=?true;
}
//?else情況
else
{
//?打印
System.out.println("用戶名或密碼不匹配,登錄失?。?);
}
//?返回是否登錄成功的標志:成功(true),失?。╢alse)
return?flag;//?這段代碼為什么要加返回值
}
//?聲明返回值為StringBuffer類型的方法change(double?d),參數(shù)為double類型的d
public?StringBuffer?change(double?d)//?這是什么意思啊
{
//?StringBuffer?str:聲明StringBuffer類型的變量str
//?String.valueOf(d):獲取d的字符串值
//?new?StringBuffer(String.valueOf(d)):實例化str,調(diào)用了StringBuffer的構(gòu)造方法
StringBuffer?str?=?new?StringBuffer(String.valueOf(d));//?這一句
//?str.indexOf("."):返回第一個.所在位置:如果該值返回大于等于4,則進入for循環(huán),否則跳過
for?(int?i?=?str.indexOf(".")?-?3;?i??0;?i?=?i?-?3)
{//?這一句
//?在i出添加,如8,800.9
str.insert(i,?',');//?還有這一句
}
//?返回StringBuffer類型的字符串
return?str;
}
//?聲明返回值為void的方法showGoods()
public?void?showGoods()
{
//?打印
System.out.print("*********歡迎進入商品批發(fā)城*********");
//?打印
System.out.print("\n\t編號\t商品\t價格\n");
//?for循環(huán)輸出商品:goods.length用到開始聲明的goods來獲取數(shù)組長度
for?(int?i?=?0;?i??goods.length;?i++)
{
//?打印:因為數(shù)組從0開始,而商品只能從1開始,所以i+1。\t制表符
System.out.print("\t"?+?(i?+?1));
//?打印第i個商品
System.out.print("\t"?+?goods[i]);
//?打印第i個商品的價格。\n回車
System.out.print("\t"?+?change(price[i])?+?"\n");
}
//?打印
System.out.println("**********************************");
}
//?主方法
public?static?void?main(String[]?args)
{
//?鍵盤輸入
Scanner?input?=?new?Scanner(System.in);
//?聲明Goods類的對象g,并實例化
Goods?g?=?new?Goods();
//?聲明int變量serial,?num
int?serial,?num;
//?聲明double變量total
double?total?=?0;
//?判斷是否登錄成功
if?(g.login())
{
//?打印商品信息
g.showGoods();
//?輸入商品編號
System.out.print("請輸入您批發(fā)的商品編號:");
//?接收
serial?=?input.nextInt();
//?輸入批發(fā)數(shù)量
System.out.print("請輸入批發(fā)數(shù)量:");
//?接收
num?=?input.nextInt();
//?計算總金額:price數(shù)組是從0開始的,商品數(shù)量是從1開始,第一個商品對應(yīng)第0個價格
total?=?g.price[serial?-?1]?*?num;//?計算總金額?//這一句
//?打印總金額
System.out.print("您需要付款:"?+?g.change(total));
}
}
}
1 我所接觸過的編程語言,基本都可以把字符串作為參數(shù)傳入吧?(或者是字符數(shù)組),其實就是傳值
2 這里"156".xxx屬于特殊寫法,java虛擬機會自動給一個獨立字符串new一個String對象,然后實際上是類似于 String abc = new String("156"); abc.xxx,相當于這兩步
public Static Animal get(String choice)//這句是定義一個靜態(tài)方法get ,static表示該方法是靜態(tài)方法, void表示方法沒有返回值(在方法沒有返回值時用),而該句的返回值類型是Animal (Animal是一個用戶自定義的類 類似你熟知的int,string,char等), 例如public viod get(){}這個方法就沒有返回值且是非靜態(tài)方法 而public static string set(){}這個方法就是靜態(tài)方法且返回值的string類型。請不要混淆返回值類型與static二者并非一個概念
靜態(tài)與非靜態(tài):當一個函數(shù)或者一個變量前面加上static時表示該方法或變量是靜態(tài)的,否則就是非靜態(tài)的。java和c#一樣是面向?qū)ο蟮恼Z言,創(chuàng)建一個類后需要實例類的對象調(diào)用方法或者變量,當聲明的方法或者變量時靜態(tài)時就可以直接用類名調(diào)用,因為靜態(tài)的是屬于類所有,并非屬于類的某個對象
choice是什么意思? choice是get方法的形式參數(shù)(形參)通俗一些就是個傀儡,只有這個get方法被調(diào)用的時候形參就被賦予了實參的值,才真正有了意義。例如你的例子Animal al=Store.get("dog");中調(diào)用了get方法并傳遞實參"dog" ,此時choice的值就是"dog","dog"與"dog"當然是倆個相等的字符串 所以程序最后輸出的肯定和狗有關(guān)。如果get方法被調(diào)用時傳的實參不是"dog",Animal al=Store.get("pig");此時choice值就是"pig","pig"與“dog”不是相同的字符串所以最后結(jié)果肯定和貓又關(guān)(呵呵)
if(choice.equalsIgnoreCase("dog"))是什么意思? 這是判斷當get函數(shù)被調(diào)用時傳遞的實參是否是“dog”, java中equalsIgnoreCase是判斷兩個字符串是否相等它不考慮大小寫,如果兩個字符串的長度相等,并且兩個字符串中的相應(yīng)字符都相等(忽略大小寫),則認為這兩個字符串是相等的。(當get被調(diào)用時choice的值就變?yōu)閷崊⒌闹?
正如LS所說main 方法是java程序的入口,當程序運行時首先運行main方法中的內(nèi)容 ,記住main方法的格式就行,以后你會慢慢理解main
如果還有不是很清楚的地方 百度hi我……
這回答應(yīng)該通俗易懂不知lz滿意否?怎么樣給分吧……
當前名稱:java語言代碼大全意思,java語言什么意思
URL分享:http://vcdvsql.cn/article46/hseshg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、用戶體驗、軟件開發(fā)、網(wǎng)站導(dǎo)航、定制網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)