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