第5章-货物管理课件

上传人:无*** 文档编号:241645816 上传时间:2024-07-12 格式:PPT 页数:44 大小:958.50KB
返回 下载 相关 举报
第5章-货物管理课件_第1页
第1页 / 共44页
第5章-货物管理课件_第2页
第2页 / 共44页
第5章-货物管理课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
CS&T Information CourseDate:12 七月 2024第5章-货物管理CS&T Information CourseDate:12 七月 2024CS&T Information CourseDate:12 七月 2024CS&T Information CourseDate:12 七月 2024技术准备 构造方法的重载 变量的作用域 this关键字包访问控制修饰符static修饰符String和StringBufferArrayListCS&T Information CourseDate:12 七月 2024构造方法的重载构造方法的重载构造方法的重载与方法的重载相同构造方法的重载与方法的重载相同示例:示例:Student.javaCS&T Information CourseDate:12 七月 2024变量的作用域属性:属性:类的作用域,有默认值类的作用域,有默认值局部变量(变量):局部变量(变量):块的作用域,没有默认值块的作用域,没有默认值示例:示例:Scope.java Scope1.javaCS&T Information CourseDate:12 七月 2024变量的初始化当一个对象创建时,当一个对象创建时,会对其中各种类型的会对其中各种类型的属性属性(成员变量成员变量)进行进行默认的初始化。默认的初始化。在一个方法内部定义在一个方法内部定义的变量必须自行进行的变量必须自行进行初始化赋值初始化赋值类型类型初始值初始值byte,int,short0long0Lfloat0.0fdouble0.0Dchar空空booleanfalseReference typenullCS&T Information CourseDate:12 七月 2024关键字this示例:示例:RectangleTest3.java this代表类的当前对象代表类的当前对象利用利用“this.”可以调用当前对象的成员可以调用当前对象的成员this可以实现构造方法的调用可以实现构造方法的调用利用利用this(参数参数)可以调用构造方法可以调用构造方法必须写在构造方法的第一条必须写在构造方法的第一条CS&T Information CourseDate:12 七月 2024包Java中使用包来管理类中使用包来管理类定义包(将类放入包中)定义包(将类放入包中)package 包名包名例如:例如:package java.myPackage;示例:示例:A.java注意,注意,package必须写在程序的第一条必须写在程序的第一条CS&T Information CourseDate:12 七月 2024包使用其他包中的类使用其他包中的类Import 包名包名.类名类名例:例:import myPackage.myClass;示例:示例:Package_Test.java注意:只能引入其他包中的注意:只能引入其他包中的public类类CS&T Information CourseDate:12 七月 2024包注意:注意:package必须是第一条语句必须是第一条语句只能使用其他包中的只能使用其他包中的public类类没有定义包名的类属于无名包,不能被有名没有定义包名的类属于无名包,不能被有名包引用包引用如果一个程序中使用两个包中的类同名,在如果一个程序中使用两个包中的类同名,在使用类名前加上包名前缀使用类名前加上包名前缀CS&T Information CourseDate:12 七月 2024练习定义一个类定义一个类A,放到,放到pack1包中;包中;定义一个类定义一个类B,放到,放到pack2包中;包中;在类在类B中定义中定义main方法,在方法,在main方法中创方法中创建类建类A的对象。的对象。观察:两个类的字节码文件的位置观察:两个类的字节码文件的位置CS&T Information CourseDate:12 七月 2024访问控制修饰符类的访问控制修饰符类的访问控制修饰符public:包内外都可访问:包内外都可访问默认:只能包内访问默认:只能包内访问示例:示例:AA.javaAATest.javaCS&T Information CourseDate:12 七月 2024访问控制修饰符类成员的访问控制修饰符类成员的访问控制修饰符public:包内包外可访问:包内包外可访问protected:包内包外子类可访问:包内包外子类可访问默认:包内可访问默认:包内可访问private:类内可访问:类内可访问CS&T Information CourseDate:12 七月 2024访问控制修饰符建议建议方法和构造方法一般为方法和构造方法一般为public属性一般为属性一般为private对私有属性的访问通过访问器方法完成对私有属性的访问通过访问器方法完成(set方法和方法和get方法)方法)CS&T Information CourseDate:12 七月 2024static静态属性静态属性用用static修饰的属性,也称为类属性修饰的属性,也称为类属性用于描述一类对象共享的属性用于描述一类对象共享的属性比如:员工的最低工资,学生的学校名称等比如:员工的最低工资,学生的学校名称等等等可通过类名直接调用,也可通过对象调用可通过类名直接调用,也可通过对象调用示例:示例:EmpTest.javaCS&T Information CourseDate:12 七月 2024static静态方法静态方法用用static修饰的方法,也叫类方法修饰的方法,也叫类方法静态方法中不能访问非静态成员静态方法中不能访问非静态成员如果一个方法中没有访问非静态成员,则这如果一个方法中没有访问非静态成员,则这个方法可以声明成静态的个方法可以声明成静态的CS&T Information CourseDate:12 七月 2024要点创建创建静态属性和静态方法在第一次使用类的时候静态属性和静态方法在第一次使用类的时候创建,所有类的对象共享创建,所有类的对象共享非静态属性和非静态方法在创建对象的时候非静态属性和非静态方法在创建对象的时候创建,每个对象之间独立创建,每个对象之间独立CS&T Information CourseDate:12 七月 2024要点使用使用在类外,静态属性和静态方法可以通过类名在类外,静态属性和静态方法可以通过类名直接调用,也可以通过对象名调用。直接调用,也可以通过对象名调用。在类外,非静态属性和非静态方法只能通过在类外,非静态属性和非静态方法只能通过对象名调用。对象名调用。CS&T Information CourseDate:12 七月 2024要点限制限制静态方法中不能直接访问本类的非静态成员。静态方法中不能直接访问本类的非静态成员。构造方法不能是静态的。构造方法不能是静态的。CS&T Information CourseDate:12 七月 2024要点建议建议描述对象共享的属性,一般声明成静态的。描述对象共享的属性,一般声明成静态的。如果方法中没有直接访问本类的非静态成员,如果方法中没有直接访问本类的非静态成员,一般可以声明成静态的。一般可以声明成静态的。CS&T Information CourseDate:12 七月 2024静态初始化器构造方法用于初始化对象,主要是对非构造方法用于初始化对象,主要是对非静态属性初始化。静态属性初始化。静态初始化器用于类的初始化,主要是静态初始化器用于类的初始化,主要是对静态属性的初始化。对静态属性的初始化。Student.javaCS&T Information CourseDate:12 七月 2024静态初始化器语法语法static初始化语句(组);初始化语句(组);CS&T Information CourseDate:12 七月 2024要点静态初始化器用于对类的初始化,构造静态初始化器用于对类的初始化,构造方法用于对象的初始化方法用于对象的初始化静态初始化器在第一次使用类的时候调静态初始化器在第一次使用类的时候调用,构造方法是用用,构造方法是用new创建对象时调用创建对象时调用CS&T Information CourseDate:12 七月 2024String类Java中使用中使用String类的对象表示字符串类的对象表示字符串例如:例如:String s1=“this is a string”;String s2=new String(“another”);String s3=s1+s2;CS&T Information CourseDate:12 七月 2024String类中常用方法boolean equals(Object o)判断该字符串是否与目标字符串相等判断该字符串是否与目标字符串相等 boolean equalsIgnoreCase(Object o)不区分大小写比较是否相等不区分大小写比较是否相等int compareTo(String s)按照字典顺序比较当前字符串与目标字符串按照字典顺序比较当前字符串与目标字符串注意:字符串的比较不能用注意:字符串的比较不能用“=”比较比较CS&T Information CourseDate:12 七月 2024String类中常用方法int length()获取字符串的长度获取字符串的长度char charAt(int index)获取指定位置的字符,获取指定位置的字符,index从从0开始开始String substring(int from,int end)String substring(int from)获取字符串的子串获取字符串的子串CS&T Information CourseDate:12 七月 2024String类中常用方法int indexOf(char c)int indexOf(char c,int from)int indexOf(String s)int indexOf(String s,int from)查找指定字符或者字符串的位置,如果未找查找指定字符或者字符串的位置,如果未找到返回到返回1CS&T Information CourseDate:12 七月 2024String类中常用方法String trim()boolean endsWith(String s)boolean startsWith(String s)String replace(char old,char new)String replaceFirst(String o,String n)String replaceAll(String o,String n)String split(String regex)示例:示例:StringTest.javaCS&T Information CourseDate:12 七月 2024StringBufferString构造的字符串一旦创建不能构造的字符串一旦创建不能修改修改StringBuffer的内容可以修改的内容可以修改append方法方法insert方法方法delete方法方法deleteCharAt方法方法CS&T Information CourseDate:12 七月 2024String与基本数据类型之间的转换字符串字符串其他数据类型其他数据类型int i1=Integer.parseInt(“111”);int i2=new Integer(“111”).intValue();int i3=Integer.valueOf(“111”);int i4=new Integer(“111”);其他数据类型其他数据类型字符串字符串String out1=new Integer(100).toString();String out2=String.valueOf(100);String out3=“”+100;CS&T Information CourseDate:12 七月 2024ArrayList该类的构造方法有该类的构造方法有3种:种:ArrayList(),构造一个初始化为,构造一个初始化为10的空的链表;的空的链表;ArrayList(Collection c),使,使用用1个已经存在的集合构造一个链表,集合中个已经存在的集合构造一个链表,集合中的元素在新的链表中的顺序由集合的的元素在新的链表中的顺序由集合的iterator方法决定。方法决定。ArrayList(int initialCapacity),构造一个由参,构造一个由参数指定初始化空间大小的的链表。数指定初始化空间大小的的链表。CS&T Information CourseDate:12 七月 2024向集合中添加对象的方法向集合中添加对象的方法 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),在链,在链表最后添加参数指定的所有元素表最后添加参数指定的所有元素 CS&T Information CourseDate:12 七月 2024删除特定的元素删除特定的元素 public boolean remove(Object o),删除指,删除指定的某个元素。定的某个元素。public boolean removeAll(Collection c),删除指定的多个元素。删除指定的多个元素。public void clear(),删除所有的元素。,删除所有的元素。public boolean retainAll(Collection c),只,只保留指定集合中存在的元素,其他的都删除,保留指定集合中存在的元素,其他的都删除,相当于取两个集合的交集。相当于取两个集合的交集。public Object remove(int index),参数用于,参数用于指定要删除的元素的位置。指定要删除的元素的位置。CS&T Information CourseDate:12 七月 2024获取某个元素或者获取某些元素获取某个元素或者获取某些元素 public Object get(int index),获取指,获取指定位置的元素。定位置的元素。public List subList(int fromIndex,int toIndex),获取从,获取从fromIndex到到toIndex这些元素,包括这些元素,包括fromIndex,不包括,不包括toIndex。CS&T Information CourseDate:12 七月 2024查找某个元查找某个元 素素public int indexOf(Object o),查找元素在集合中第,查找元素在集合中第一次出现的位置,并返回这个位置,如果返回值为一次出现的位置,并返回这个位置,如果返回值为-1,表示没有找到这个元素。,表示没有找到这个元素。public int lastIndexOf(Object o),查找元素在集合,查找元素在集合中最后一次出现的位置。中最后一次出现的位置。public boolean isEmpty,用于判断集合是否是空的。,用于判断集合是否是空的。public boolean contains(Object o),判断是否包含,判断是否包含指定的元素。指定的元素。public boolean containsAll(Collection c),判断是,判断是否包含指定的多个元素。否包含指定的多个元素。public int size(),用于获取集合中元素的个数。,用于获取集合中元素的个数。CS&T Information CourseDate:12 七月 2024修改元素的方法修改元素的方法public Object set(int index,Object o),用第二个参数指定的元素替换第一个,用第二个参数指定的元素替换第一个参数指定位置上的元素。参数指定位置上的元素。CS&T Information CourseDate:12 七月 2024转换成其它对象转换成其它对象 public ListIterator listIterator(),把所有元素,把所有元素都转换成有顺序的迭代器。都转换成有顺序的迭代器。public ListIterator listIterator(int index),从从index开始的所有元素进行转换。开始的所有元素进行转换。public Iterator iterator(),转换成迭代器,方,转换成迭代器,方便集合中元素的遍历。便集合中元素的遍历。public Object toArray(),转换成集合,也,转换成集合,也是方便集合中元素的遍历。是方便集合中元素的遍历。CS&T Information CourseDate:12 七月 2024ArrayList的遍历的遍历 可以采用下面的可以采用下面的3种方式进行遍历。种方式进行遍历。方法一:方法一:for(int i=0;ilist1.size();i+)System.out.println(list1.get(i);方法二:方法二:Object o=list1.toArray();for(int i=0;io.length;i+)String temp=(String)oi;System.out.println(temp);方法三:方法三:Iterator i=list1.iterator();while(i.hasNext()String temp=i.next();System.out.println(temp);CS&T Information CourseDate:12 七月 2024项目学做根据项目任务的描述要求,有四个类定义,为了使用方便将根据项目任务的描述要求,有四个类定义,为了使用方便将它们统一定义在包它们统一定义在包classandobj中。如果四个类定义都放在中。如果四个类定义都放在一个源文件里,则只有类一个源文件里,则只有类GoodsManageTest可以被可以被public修饰且源文件的名字亦应定义为修饰且源文件的名字亦应定义为GoodsManageTest.java。为了清晰起见,我们将四个类分别放到四个源文件中,则此为了清晰起见,我们将四个类分别放到四个源文件中,则此四个类均可被四个类均可被public修饰,且源文件名字和类名一致即可。修饰,且源文件名字和类名一致即可。(1)货物类根据定义应该有两个私有属性:字符串类型的货货物类根据定义应该有两个私有属性:字符串类型的货物名称,字符串类型的货物编号。但由于要求编号能够自动物名称,字符串类型的货物编号。但由于要求编号能够自动生成无需外界赋值实现,实质是暗示还需要一个静态的整型生成无需外界赋值实现,实质是暗示还需要一个静态的整型属性表示当前系统共有的货物数目,而每个货物的具体编号属性表示当前系统共有的货物数目,而每个货物的具体编号是在已有的货物数目基础上加是在已有的货物数目基础上加1实现的。对于私有属性因其实现的。对于私有属性因其不便于被外界访问,需要为每个私有属性提供一对共有的访不便于被外界访问,需要为每个私有属性提供一对共有的访问器方法。显示该货物的所有信息,就是以字符串的形式返问器方法。显示该货物的所有信息,就是以字符串的形式返回各个属性值回各个属性值 CS&T Information CourseDate:12 七月 2024(2)对于货物类别类,需要提供一种存储结构来存放该对于货物类别类,需要提供一种存储结构来存放该类别的所有货物的编号,考虑到其成员数目不确定且类别的所有货物的编号,考虑到其成员数目不确定且动态变化,因此可以采用动态变化,因此可以采用ArrayList这种动态数组作为这种动态数组作为存储结构,由于其中存储的永远是存储结构,由于其中存储的永远是Goods对象,在定对象,在定义时可以为其加上泛型的限定。添加货物成员的方法,义时可以为其加上泛型的限定。添加货物成员的方法,本质就是在本质就是在ArrayList对象中追加一个对象中追加一个Goods元素。显元素。显示该类所有信息时可以使用示该类所有信息时可以使用String类的字符串连接方类的字符串连接方式实现,但式实现,但String通常用来表示字符串常量,不适用通常用来表示字符串常量,不适用于频繁变化的情况,因此在进行信息显示时用于频繁变化的情况,因此在进行信息显示时用StringBuffer类替代了类替代了String类来存储要显示的信息的类来存储要显示的信息的字符串字符串 CS&T Information CourseDate:12 七月 2024(3)对于货物管理类,需要提供一种存储结构来存放已对于货物管理类,需要提供一种存储结构来存放已有的所有货物类别信息,因此定义时和货物类别类相有的所有货物类别信息,因此定义时和货物类别类相同要使用带泛型的同要使用带泛型的ArrayList成员变量。根据货物名称成员变量。根据货物名称进行特定货物的查找实质就是对进行特定货物的查找实质就是对ArrayList的一种遍历,的一种遍历,在遍历过程中将在遍历过程中将ArrayList中的每个对象的名称和待查中的每个对象的名称和待查找的对象的名称进行比较,如果相等表示该类别存在找的对象的名称进行比较,如果相等表示该类别存在找到否则就是没找到即该类别对象不存在。增加货物找到否则就是没找到即该类别对象不存在。增加货物时,首先是根据货物名称进行类别查找,如果找到则时,首先是根据货物名称进行类别查找,如果找到则只需在已有类别的货物成员上进行增加即可,如果没只需在已有类别的货物成员上进行增加即可,如果没有找到才是对有找到才是对ArrayList添加新对象的过程。增加一组添加新对象的过程。增加一组货物和增加一个货物是明显的方法重载过程,就是对货物和增加一个货物是明显的方法重载过程,就是对一组货物逐个查找确认是增加成员还是添加新对象。一组货物逐个查找确认是增加成员还是添加新对象。显示货物的所有信息也是对显示货物的所有信息也是对ArrayList的一种遍历的一种遍历 CS&T Information CourseDate:12 七月 2024(4)货物管理测试类的所有核心代码应该写在货物管理测试类的所有核心代码应该写在main方法里。首先需要声明实例化货物管理测方法里。首先需要声明实例化货物管理测试类对象,然后是声明实例化若干个试类对象,然后是声明实例化若干个Goods类类对象,先单个追加并显示,后一组追加并显示。对象,先单个追加并显示,后一组追加并显示。这里没有明确测试根据名字进行货物查找方法,这里没有明确测试根据名字进行货物查找方法,因为在添加货物时必须先调用查找方法才能确因为在添加货物时必须先调用查找方法才能确定是简单成员的增长还是需要添加新的货物类定是简单成员的增长还是需要添加新的货物类别别 示例代码:示例代码:GoodsManageTest.javaCS&T Information CourseDate:12 七月 2024强化练习编程模拟停车场收费系统。编程模拟停车场收费系统。收费标准是:收费标准是:一个小时之内收费一个小时之内收费3元,一小时以上每小元,一小时以上每小时收费时收费2元,不足一个小时以一个小时计元,不足一个小时以一个小时计算。假定停车场的停车车位有算。假定停车场的停车车位有100个。个。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!