第五章 貨物管理

構造方法的重載

構造方法的重載是指在同一個類中存在著若干個具有不同參數(shù)列表的構造方法际跪。
有時在一個類定義內可能出現(xiàn)多個實現(xiàn)類似功能的方法,但這些方法處理的信息有所不同等缀,因為功能類似,若給不同的命名容易造成理解上的混亂,所以就要給這些方法相同的名字搓逾,也即在一個類中出現(xiàn)多個同名方法的現(xiàn)象,這叫方法的重載杯拐。

變量的作用域

變量的作用域是指程序的一部分霞篡,在這部分中,變量可以被引用端逼。
1.屬性不管在何處聲朗兵,它的作用域是整個類。
2.局部變量必須先聲明再使用顶滩,在使用前必須給定初始值余掖,局部變量的作用域范圍是從定義的那一點到距離它最近的反大括號之間。
3.當局部變量和屬性重名時礁鲁,在局部變量的作用域內局部變量屏蔽掉屬性浊吏。

this關鍵字

該關鍵字代表了當前類對象的一個引用。因為該構造方法的形參變量的名字和待賦值屬性的名字相同救氯,為了能夠區(qū)分二者中哪一個是屬性找田,在屬性前加上this.,即利用this.可以調用當前對象的屬性和方法着憨。

我們可以將無參的構造方法改成如下格式
public Rectangle()
{
this(5,5)墩衙;
}
這里this(5,5)代表調用本類帶兩個參數(shù)的構造方法,可見我們可以使用this(實參)調用本類的其他構造方法甲抖,但該語句出現(xiàn)的位置要求是所隸屬的構造方法的第一條可執(zhí)行語句漆改,this還可以作為方法的返回值。當方法需返回當前正在討論的對象時准谚,可以采用return this的形式挫剑。

1.定義包的語法結構:package 包名;
2.引入包中的類的語法結構:import 包名.類名柱衔;或 import 包名.* 樊破;
3.如果在一個程序中涉及到兩個包中的同名類時愉棱,創(chuàng)建此類對象時需明確指出該類所屬的包 包名.類名 對象名=new 包名.類名.構造方法

注意

定義包的語句應是.java源文件中的第一條可執(zhí)行語句。
無名包中的類不能被有名包中的類引用哲戚,而有名包中的類可以被無名包中的類引用奔滑。

訪問控制修飾符

同一包中的其他類 不同包中的其他類
被public修飾的類 允許 允許
被缺省修飾符修飾的類 允許 不允許

屬性和方法的訪問控制修飾符

static修飾符

1.靜態(tài)屬性和靜態(tài)方法
被static修飾符修飾的屬性稱為靜態(tài)屬性,靜態(tài)屬性是類的屬性而不是該類的某個對象的屬性顺少,在類創(chuàng)建時為靜態(tài)屬性分配一段內存空間朋其,任何一個該類的對象訪問靜態(tài)屬性時獲取到的都是同樣的值,任何一個該類的對象去修改靜態(tài)屬性時脆炎,該類的其他對象也能獲取到變化后的新值梅猿。
被static修飾符修飾的方法稱為靜態(tài)方法,靜態(tài)方法也是類的方法而不是該類的某個對象的方法秒裕。非靜態(tài)方法可以操縱靜態(tài)屬性袱蚓,但靜態(tài)方法不能操縱非靜態(tài)屬性。
無論是調用靜態(tài)方法還是靜態(tài)屬性有兩種調用方式簇爆,即:
(1)類名.靜態(tài)屬性或靜態(tài)方法
(2)對象名.靜態(tài)屬性或靜態(tài)方法
2.靜態(tài)初始化器
語法結構如下
static{
靜態(tài)屬性名=初始值癞松;
}
可以理解為特殊的方法。靜態(tài)初始器的作用是為整個類的屬性即靜態(tài)屬性完成初始化工作入蛆。靜態(tài)初始器語句組中的語句當滿足下列條件時被執(zhí)行且只被執(zhí)行一次:首次生成該類對象時(即用new創(chuàng)建對象時)或首次通過類名訪問靜態(tài)屬性時响蓉。
靜態(tài)初始器和構造方法有三點區(qū)別:
1.靜態(tài)初始器是對類進行初始化,構造方法是對類的對象進行初始化哨毁。
2.靜態(tài)初始化器在其所屬的類導入內存時被調用枫甲,構造方法在用new創(chuàng)建對象時調用。
3.靜態(tài)初始化器是一組語句不是方法扼褪,構造方法是特殊的方法想幻。

String和StringBuffer

1.String

String是比較特殊的數(shù)據(jù)類型,它不屬于基本數(shù)據(jù)類型话浇,但是可以和使用基本數(shù)據(jù)類型一樣直接賦值脏毯,不使用new關鍵字進行實例化。也可以像其他類型一樣使用關鍵字new進行實例化幔崖。例如:
String s1 ="this is a string!";
String s2 =new String("this is another string!");
另外String在使用的時候不需要用import語句導入食店,還可以使用“+”這樣的運算符。如果想把字符串連接起來赏寇,可以使用“+”完成吉嫩。

String的一些常用方法如下:
1.求長度
方法定義:public int length();
方法描述:獲取字符串中的字符的個數(shù)嗅定。str.length();
2.獲取字符串中的字符
方法定義:public char charAt(int index);
方法描述:獲取字符串中的第index個字符自娩,從0開始。str.charAt(index)渠退;
3.取子串
方法定義:public String substring (int beginIndex,int endIndex);
方法描述:獲取從beginIndex開始到endIndex結束的子串忙迁,包括beginInedx脐彩,不包括endIndex。 str.substring(1,4)动漾;如果有一個數(shù)字就是從這個數(shù)字到最后
4.定位字符或者字符串
形式一:
方法定義:public int indexOf(int ch);
方法描述:定位參數(shù)所指定的字符丁屎。 str.indexOf(‘i’);
形式二:
方法定義:public int indexOf(int ch,int index);
方法描述:從index開始定位參數(shù)所指定的字符荠锭。
str.indexOf(‘i’旱眯,4);
形式三:
方法定義:public int indexOf(String str)证九;
方法描述:定位參數(shù)所指定的字符串删豺。
str.indexOf(“is”);
形式四:
方法定義:public int indexOf(String str,int index);
方法描述:從index開始定位str所指定的字符串愧怜。
str.indexOf(“is”呀页,6);
5.替換字符和字符串
形式一:
public String replace(char c1,char c2);
從index開始定位str所指定的字符串
str.replace(‘i’拥坛,‘I’)蓬蝶;
形式二:
public String replaceAll(String c1,String c2);
把字符串中出現(xiàn)的所有s1替換成s2.
replaceAll(“is”,“IS”)猜惋;
形式三:
public String replaceFirst(String c1,String c2);
把字符串中的第一個s1替換成s2.
replaceFirst(“is”丸氛,“IS”);
6.比較字符串內容
形式一:
public boolean equals(Object o)著摔;
比較是否與參數(shù)相同缓窜,區(qū)分大小寫
str.equals(“this”);
形式二:
public boolean equalsIgnoreCase(Object o)谍咆;
比較是否與參數(shù)相同禾锤,不區(qū)分大小寫
str.equals(“this”);
7.大小寫轉換
轉換成大寫:
public String toUpperCase()摹察;
把字符串中的所有字符都轉換成大寫
str.toUpperCase()恩掷;
轉換成小寫:
public String toLowerCase();
把字符串中的所有字符都轉換成小寫
str.toLowerCase()供嚎;
8.前綴和后綴
判斷字符串是否以指定的參數(shù)開始或結尾黄娘。
判斷前綴:
public boolean startsWith(String prefix);
str.startsWith(“this”)查坪;
判斷后綴:
public boolean endsWith(String prefix)寸宏;
str.endsWith(“this”);

2.StringBuffer

StringBuffer也是字符串偿曙,與String不同的是StringBuffer對象創(chuàng)建完之后可以修改內容氮凝。有如下構造函數(shù):
public StringBuffer(int);//創(chuàng)建指定大小的字符串
public StringBuffer(String)望忆;//給已定的字符串創(chuàng)建StringBuffer對象
public StringBuffer()罩阵;//默認的構造函數(shù)竿秆,生成一個空的字符串
下面的代碼分別生成了3個StringBuffer對象:
StringBuffer sb1 = new StringBuffer(50);
StringBuffer sb2 = new StringBuffer(“字符串初始值”)稿壁;
StringBuffer sb3 = new StringBuffer()幽钢;
StringBuffer的常用方法及其用法如下:
1.在字符串后面追加內容
public StringBuffer append(char c);
public StringBuffer append(boolean b)傅是;
public StringBuffer append(char[] str)匪燕;
public StringBuffer append(CharSequence str);
public StringBuffer append(float f)喧笔;
public StringBuffer append(double d)帽驯;
public StringBuffer append(int i);
public StringBuffer append(long l)书闸;
public StringBuffer append(Object o)尼变;
public StringBuffer append(String str);
public StringBuffer append(StringBuffer sb)浆劲;
public StringBuffer append(char[] str嫌术,int offset,int len)牌借;
public StringBuffer append(CharSequence str.int start度气,int end);
2.在字符串的某個特定位置添加內容
public StringBuffer append(int offset 走哺,char c)蚯嫌;
public StringBuffer append(int offset,boolean b)丙躏;
public StringBuffer append(int offset择示,char[] str);
public StringBuffer append(int offset晒旅,CharSequence str)栅盲;
public StringBuffer append(int offset,float f)废恋;
public StringBuffer append(int offset谈秫,double d);
public StringBuffer append(int offset鱼鼓,int i)拟烫;
public StringBuffer append(int offset,long l)迄本;
public StringBuffer append(int offset硕淑,Object o);
public StringBuffer append(int offset,String str)置媳;
public StringBuffer append(int offset于樟,StringBuffer sb);
public StringBuffer append(int offset拇囊,char[] str迂曲,int offset,int len)寥袭;
public StringBuffer append(int offset路捧,CharSequence str.int start,int end)纠永;
3.StringBuffer的長度和容量
public int length()鬓长;
public int capacity()谒拴;
length方法用于獲取字符串的長度尝江,capacity方法用于獲取容量,兩個不相等
4.刪除某個字符
public StringBuffer deleteCharAt(int index)英上;
刪除指定位置的字符炭序,索引是從0開始
5.刪除某個子串
public StringBuffer delete(int start,int end)苍日;
6.獲取字符串中的字符
public char charAt(int)
charAt(int)方法用來獲取指定位置的字符惭聂。
7.獲取字符串中的子串
public String substring(int start); 從start開始到結束的子串相恃。
public String substring(int start辜纲,int end);從start開始到end結束的子串拦耐。
public CharSequence subSquence(int start耕腾,int end);從start開始到end結束的子串杀糯。
8.轉換成字符串
public String toString()扫俺;
把StringBuffer的內容轉換成String對象

3.String與基本數(shù)據(jù)類型之間的轉換

把字符串轉換成數(shù)字:
String input=“111”;
int i=Intger.parseInt(input)固翰;//比較常用
int i2=new Integer(input).intValue()狼纬;
int i3=Integer.valueOf(input);
int i4=new Integer(input)骂际;
把數(shù)字轉換成字符串:
String out=new Integer(i).toString()疗琉;
String out2=String.valueOf(i);

ArrayList

ArrayList是動態(tài)數(shù)組歉铝,它是java.util包中的一個類盈简。原則上所有的對象都可以加入到ArrayList里,但通常為了方便,一般可以通過泛型(<dataType>)限定加入到ArrayList中的元素類型以保證加入的都是相同類型的元素送火。
該類的構造方法有:
ArrayList()拳话,構造一個初始化為10的空的鏈表。
ArrayList(Collection<?extends E> c)种吸,使用1個已經(jīng)存在的集合構造一個鏈表弃衍,集合中的元素在新的鏈表中的順序由集合的iterator方法決定。
ArrayList(int initialCapacity)坚俗,構造一個由參數(shù)指定初始化空間大小的鏈表镜盯。
其他的主要方法:
1.向集合中添加對象的方法
public void add(int index,Object o)第一個參數(shù)表示要添加的元素的位置猖败,從0開始速缆。
public boolean addAll(int index,Collection c) 第一個參數(shù)表示位置恩闻,如果不指定位置艺糜,默認在最后添加
public boolean add(Object o) 在鏈表最后添加參數(shù)指定的元素。
public boolean addAll(Collection c) 在鏈表最后添加參數(shù)指定的所有元素幢尚。
2.刪除特定的元素
public boolean remove(Object o) 刪除指定的某個元素
public boolean removeAll(Collection c) 刪除指定的多個元素
public void clear()破停;刪除所有元素
public boolean retainAll(Collection c) 只保留指定集合中存在的元素,其他的都刪除相當于取兩個集合的交集尉剩。
public Object remove(int index) 參數(shù)用于指定要刪除的元素的位置真慢。
3.獲取某個元素或者獲取某些元素
public Object get(int index) 獲取指定位置的元素
public List subList(int fromIndex,int toIndex) 獲取從from到to的元素理茎,包括from不包括to

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末黑界,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子皂林,更是在濱河造成了極大的恐慌朗鸠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件式撼,死亡現(xiàn)場離奇詭異童社,居然都是意外死亡,警方通過查閱死者的電腦和手機著隆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門扰楼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人美浦,你說我怎么就攤上這事弦赖。” “怎么了浦辨?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵蹬竖,是天一觀的道長。 經(jīng)常有香客問我,道長币厕,這世上最難降的妖魔是什么列另? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮旦装,結果婚禮上页衙,老公的妹妹穿的比我還像新娘。我一直安慰自己阴绢,他們只是感情好店乐,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呻袭,像睡著了一般眨八。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上左电,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天廉侧,我揣著相機與錄音,去河邊找鬼券腔。 笑死伏穆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的纷纫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陪腌,長吁一口氣:“原來是場噩夢啊……” “哼辱魁!你這毒婦竟也來了?” 一聲冷哼從身側響起诗鸭,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤染簇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后强岸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锻弓,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年蝌箍,在試婚紗的時候發(fā)現(xiàn)自己被綠了青灼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡妓盲,死狀恐怖杂拨,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情悯衬,我是刑警寧澤弹沽,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響策橘,放射性物質發(fā)生泄漏炸渡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一丽已、第九天 我趴在偏房一處隱蔽的房頂上張望偶摔。 院中可真熱鬧,春花似錦促脉、人聲如沸辰斋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宫仗。三九已至,卻和暖如春旁仿,著一層夾襖步出監(jiān)牢的瞬間藕夫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工枯冈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毅贮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓尘奏,卻偏偏與公主長得像滩褥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炫加,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容

  • 變量的作用域 變量的作用域是指程序的一部分瑰煎,在這部分中,變量可以被引用俗孝。 屬性不管在何處聲明酒甸,它的作用域都是整個類...
    陳_振閱讀 177評論 0 0
  • 《Java從小白到大挪迩冢》紙質版已經(jīng)上架了!8锕恰农尖! 由字符組成的一串字符序列,稱為“字符串”苛蒲,在前面的章節(jié)中也多次用到...
    tony關東升閱讀 814評論 0 2
  • Object類位于java.lang包中,java.lang包有最基礎的和核心的類,在編譯時會自動導入; Obje...
    遇見你的故事閱讀 587評論 0 0
  • Eclipse中快捷鍵的使用 A:新建 ctrl + n B:格式化 ctrl+shift+f C:導入包 c...
    海洋_5ad4閱讀 598評論 0 0
  • 四卤橄、集合框架 1:String類:字符串(重點) (1)多個字符組成的一個序列,叫字符串臂外。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 756評論 0 2