第五章 货物管理

构造方法的重载

构造方法的重载是指在同一个类中存在着若干个具有不同参数列表的构造方法。
有时在一个类定义内可能出现多个实现类似功能的方法,但这些方法处理的信息有所不同,因为功能类似,若给不同的命名容易造成理解上的混乱,所以就要给这些方法相同的名字,也即在一个类中出现多个同名方法的现象,这叫方法的重载。

变量的作用域

变量的作用域是指程序的一部分,在这部分中,变量可以被引用。
1.属性不管在何处声,它的作用域是整个类。
2.局部变量必须先声明再使用,在使用前必须给定初始值,局部变量的作用域范围是从定义的那一点到距离它最近的反大括号之间。
3.当局部变量和属性重名时,在局部变量的作用域内局部变量屏蔽掉属性。

this关键字

该关键字代表了当前类对象的一个引用。因为该构造方法的形参变量的名字和待赋值属性的名字相同,为了能够区分二者中哪一个是属性,在属性前加上this.,即利用this.可以调用当前对象的属性和方法。

我们可以将无参的构造方法改成如下格式
public Rectangle()
{
this(5,5);
}
这里this(5,5)代表调用本类带两个参数的构造方法,可见我们可以使用this(实参)调用本类的其他构造方法,但该语句出现的位置要求是所隶属的构造方法的第一条可执行语句,this还可以作为方法的返回值。当方法需返回当前正在讨论的对象时,可以采用return this的形式。

1.定义包的语法结构:package 包名;
2.引入包中的类的语法结构:import 包名.类名;或 import 包名.* ;
3.如果在一个程序中涉及到两个包中的同名类时,创建此类对象时需明确指出该类所属的包 包名.类名 对象名=new 包名.类名.构造方法

注意

定义包的语句应是.java源文件中的第一条可执行语句。
无名包中的类不能被有名包中的类引用,而有名包中的类可以被无名包中的类引用。

访问控制修饰符

同一包中的其他类 不同包中的其他类
被public修饰的类 允许 允许
被缺省修饰符修饰的类 允许 不允许

属性和方法的访问控制修饰符

static修饰符

1.静态属性和静态方法
被static修饰符修饰的属性称为静态属性,静态属性是类的属性而不是该类的某个对象的属性,在类创建时为静态属性分配一段内存空间,任何一个该类的对象访问静态属性时获取到的都是同样的值,任何一个该类的对象去修改静态属性时,该类的其他对象也能获取到变化后的新值。
被static修饰符修饰的方法称为静态方法,静态方法也是类的方法而不是该类的某个对象的方法。非静态方法可以操纵静态属性,但静态方法不能操纵非静态属性。
无论是调用静态方法还是静态属性有两种调用方式,即:
(1)类名.静态属性或静态方法
(2)对象名.静态属性或静态方法
2.静态初始化器
语法结构如下
static{
静态属性名=初始值;
}
可以理解为特殊的方法。静态初始器的作用是为整个类的属性即静态属性完成初始化工作。静态初始器语句组中的语句当满足下列条件时被执行且只被执行一次:首次生成该类对象时(即用new创建对象时)或首次通过类名访问静态属性时。
静态初始器和构造方法有三点区别:
1.静态初始器是对类进行初始化,构造方法是对类的对象进行初始化。
2.静态初始化器在其所属的类导入内存时被调用,构造方法在用new创建对象时调用。
3.静态初始化器是一组语句不是方法,构造方法是特殊的方法。

String和StringBuffer

1.String

String是比较特殊的数据类型,它不属于基本数据类型,但是可以和使用基本数据类型一样直接赋值,不使用new关键字进行实例化。也可以像其他类型一样使用关键字new进行实例化。例如:
String s1 ="this is a string!";
String s2 =new String("this is another string!");
另外String在使用的时候不需要用import语句导入,还可以使用“+”这样的运算符。如果想把字符串连接起来,可以使用“+”完成。

String的一些常用方法如下:
1.求长度
方法定义:public int length();
方法描述:获取字符串中的字符的个数。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);如果有一个数字就是从这个数字到最后
4.定位字符或者字符串
形式一:
方法定义:public int indexOf(int ch);
方法描述:定位参数所指定的字符。 str.indexOf(‘i’);
形式二:
方法定义:public int indexOf(int ch,int index);
方法描述:从index开始定位参数所指定的字符。
str.indexOf(‘i’,4);
形式三:
方法定义:public int indexOf(String str);
方法描述:定位参数所指定的字符串。
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);
把字符串中出现的所有s1替换成s2.
replaceAll(“is”,“IS”);
形式三:
public String replaceFirst(String c1,String c2);
把字符串中的第一个s1替换成s2.
replaceFirst(“is”,“IS”);
6.比较字符串内容
形式一:
public boolean equals(Object o);
比较是否与参数相同,区分大小写
str.equals(“this”);
形式二:
public boolean equalsIgnoreCase(Object o);
比较是否与参数相同,不区分大小写
str.equals(“this”);
7.大小写转换
转换成大写:
public String toUpperCase();
把字符串中的所有字符都转换成大写
str.toUpperCase();
转换成小写:
public String toLowerCase();
把字符串中的所有字符都转换成小写
str.toLowerCase();
8.前缀和后缀
判断字符串是否以指定的参数开始或结尾。
判断前缀:
public boolean startsWith(String prefix);
str.startsWith(“this”);
判断后缀:
public boolean endsWith(String prefix);
str.endsWith(“this”);

2.StringBuffer

StringBuffer也是字符串,与String不同的是StringBuffer对象创建完之后可以修改内容。有如下构造函数:
public StringBuffer(int);//创建指定大小的字符串
public StringBuffer(String);//给已定的字符串创建StringBuffer对象
public StringBuffer();//默认的构造函数,生成一个空的字符串
下面的代码分别生成了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与基本数据类型之间的转换

把字符串转换成数字:
String input=“111”;
int i=Intger.parseInt(input);//比较常用
int i2=new Integer(input).intValue();
int i3=Integer.valueOf(input);
int i4=new Integer(input);
把数字转换成字符串:
String out=new Integer(i).toString();
String out2=String.valueOf(i);

ArrayList

ArrayList是动态数组,它是java.util包中的一个类。原则上所有的对象都可以加入到ArrayList里,但通常为了方便,一般可以通过泛型(<dataType>)限定加入到ArrayList中的元素类型以保证加入的都是相同类型的元素。
该类的构造方法有:
ArrayList(),构造一个初始化为10的空的链表。
ArrayList(Collection<?extends E> c),使用1个已经存在的集合构造一个链表,集合中的元素在新的链表中的顺序由集合的iterator方法决定。
ArrayList(int initialCapacity),构造一个由参数指定初始化空间大小的链表。
其他的主要方法:
1.向集合中添加对象的方法
public void add(int index,Object o)第一个参数表示要添加的元素的位置,从0开始。
public boolean addAll(int index,Collection c) 第一个参数表示位置,如果不指定位置,默认在最后添加
public boolean add(Object o) 在链表最后添加参数指定的元素。
public boolean addAll(Collection c) 在链表最后添加参数指定的所有元素。
2.删除特定的元素
public boolean remove(Object o) 删除指定的某个元素
public boolean removeAll(Collection c) 删除指定的多个元素
public void clear();删除所有元素
public boolean retainAll(Collection c) 只保留指定集合中存在的元素,其他的都删除相当于取两个集合的交集。
public Object remove(int index) 参数用于指定要删除的元素的位置。
3.获取某个元素或者获取某些元素
public Object get(int index) 获取指定位置的元素
public List subList(int fromIndex,int toIndex) 获取从from到to的元素,包括from不包括to

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 变量的作用域 变量的作用域是指程序的一部分,在这部分中,变量可以被引用。 属性不管在何处声明,它的作用域都是整个类...
    陈_振阅读 172评论 0 0
  • 《Java从小白到大牛》纸质版已经上架了!!! 由字符组成的一串字符序列,称为“字符串”,在前面的章节中也多次用到...
    tony关东升阅读 800评论 0 2
  • Object类位于java.lang包中,java.lang包有最基础的和核心的类,在编译时会自动导入; Obje...
    遇见你的故事阅读 571评论 0 0
  • Eclipse中快捷键的使用 A:新建 ctrl + n B:格式化 ctrl+shift+f C:导入包 c...
    海洋_5ad4阅读 574评论 0 0
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 734评论 0 2