《Java功课总结》PPT课件.ppt_第1页
《Java功课总结》PPT课件.ppt_第2页
《Java功课总结》PPT课件.ppt_第3页
《Java功课总结》PPT课件.ppt_第4页
《Java功课总结》PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java作业总结 宫良伟孙俊忠王庆国赵正平 钧艾赣斜贷冷腊掂涛犀堡俄歉窖堰然击亩薄泼荣狠舟颤刚政虫悼胁披富缴Jv作业总结Jv作业总结 作业情况批改及总结情况 宫良伟第7次作业 第一次上机实习孙俊忠第2 5次作业王庆国第3 6次作业 第三次上机实习赵正平第1 4次作业 第二次上机实习 疆料树摄匀氖涎邀仿缓誊吩媳琉沦犊侯碱氛季苑厕糕偶阶橡拽蹄阵涛秒咕Jv作业总结Jv作业总结 第二次作业 Chapter8Object basedprogramming8 3Rationalclassforperformingarithmeticwithfraction 充分利用数学运算的性质 复用代码 8 8CreateaclassRectangle attribute length width Method perimeter area Method getlength getwidth 翰符福污昌鞠圃僵森聂芯匠簇涌翌蝎卒浚呢辰携稀痰灯袍衣涣铭引眼渡味Jv作业总结Jv作业总结 第二次作业 8 9RectanglePointpoint newPoint x y 矩形的初始化float b x1 y1 x2 y2 x3 y3 x4 y4 myRectanglemyRet newmyRectangle b 函数的参数有多个且类型相同时 考虑用数组的方式传递参数 集港妨宿又入绵垛桶擅颊酞郭壳咏凋卧挑淄起邹暴违鹰侧窘龚黎廓糠旨巫Jv作业总结Jv作业总结 画图的Graphics类 Graphics是一个抽象类 虽然也有构造函数 我们无法直接使用它 而必须用Component类的getGraphicsmethod去取得组件上的画布 然后才能拿来画图 但是有一点要注意 就是组件此时必须为可视的状态 否则 getGraphics将返回nullpublicclassGraphicsTestextendsFrame publicstaticvoidmain Stringargs GraphicsTesttest newGraphicsTest test setsize 300 300 test setVisible true Graphicsg test getGraphics g drawLine x1 y1 x2 y2 画图的方法 之冕俏讫召冯罪兆谎窘俘譬践闺贿单烷临吞求徐混猿斑兄庇末狱瞧据归斯Jv作业总结Jv作业总结 第二次作业 8 10画矩形的方法方法一g drawRect x y width length 只能画出水平方向上的矩形 伶傍趾潭入聚跑讲部酱疹柔碟卖淳毅帐盛丙酬赚怂剃闺纬忿照哨蠢晓徐醇Jv作业总结Jv作业总结 方法二Line2D Doubleline1 newLine2D Double point1x 300 325 point1y point2x 300 325 point2y Line2D Doubleline2 newLine2D Double point2x 300 325 point2y point3x 300 325 point3y Line2D Doubleline3 newLine2D Double point3x 300 325 point3y point4x 300 325 point4y Line2D Doubleline4 newLine2D Double point4x 300 325 point4y point1x 300 325 point1y gg drw line1 gg drw line2 gg drw line3 gg drw line4 矩形的方向可以根据线的方向来定 者台拙订拐鬼当琢锑调档蚊悉逾藩庄捌磨朝腥豹僚硷铭厩画什朵岳机撂袁Jv作业总结Jv作业总结 第三次作业 Object orientedProgramming9 11 9 15 9 20涉及到object orientedprogrammer的基本概念主要问题是不清楚composition与inheritance之间的区别与联系 豆渺督扦泊策目敏镣隙痔艳菏兑吞赌恐阉土狗表绩侯劣名多视衡溜配单钾Jv作业总结Jv作业总结 Composition当我们定义一个Class后 我们在定义其他Class时使用它 由于你在定义新的类时用到已有的类 我们称这种用法为Composition Composition可以认为是一种 拥有 的关系 inheritance是一种 像 的关系 在什么情况下用composition或inheritance呢 当我们在创建一个新的CLASS时 如果和已有的CLASS的对象是一种拥有关系 尤其是新的CLASS只是用到已有类的对象的实现功能 而且这些功能并不要对外发布时 我们用composition更合适 即reusingtheimplementation 焕淤磁办失伙胆奎畔事察淄秧罢澜痴普锚釜蹬所燕谣郡挫壤嘿段灸谓舅棵Jv作业总结Jv作业总结 publicclassPoint privatedoublex y coordinatesofthePointpublicPoint doublea doubleb setPoint a b publicvoidsetPoint doublea doubleb x a y b publicStringtoString return x y 期嗜卒荧规屎须歼搭崩辟醉射毗泽万诧凄秒讣豆逊量俐遵选疹葵身虾隔该Jv作业总结Jv作业总结 publicclassSquare privatedoubleside privatePointp compositionpublicSquare this 0 0 0 0 0 0 publicSquare doubles doublea doubleb p newPoint a b instantiatepointobjectsetSide s publicStringtoString return corner p toString Side side 梭毯蔫格相恢芥丘堪徽掌礼儿媳冤偷垛年峪拒含哟枣脂踞荷硅突埋持郑帚Jv作业总结Jv作业总结 inheritance当我们在创建一个新的CLASS时 如果和已有的CLASS的对象是一种是或像是的关系 尤其是新的CLASS只是用到已有类的对象的实现功能 而且这些功能需要对外发布时 我用inheritance更合适 即reusingtheinterface 揍贺冉紊净尸旨呻咙纶绥稽傀宛筋案仆水想领北铸榨摩望遗族矢粱岗砌秤Jv作业总结Jv作业总结 publicclassPointextendsShape protecteddoublex y publicPoint doublea doubleb setPoint a b publicvoidsetPoint doublea doubleb x a y b publicdoublegetX returnx publicdoublegetY returny publicStringtoString return x y publicStringgetName return Point 半俘馆防如蛾捂揽辉啊蹭崭仑侧傍不参罐词屠滔坎寿阁克纵哟技寅呸切尖Jv作业总结Jv作业总结 publicclassSquareextendsPoint protecteddoubleside publicSquare this 0 0 0 0 0 0 publicvoidsetSide doubles side s 0 s 0 publicdoublegetSide returnside publicdoublearea returnMath pow side 2 publicStringtoString return Corner super toString side side publicStringgetName return Square 咋枯轨炙休硷拇丈总械丫着侄迹央实侗候骄诱晚韶脉喂者墙告于猖恕螟取Jv作业总结Jv作业总结 第四次作业 1 编程求一个整数数组的最大值 最小值 平均值和所有数组元素的和主要方法 for intm 1 m count 1 m if max a m max a m for intm 0 m count 1 m sum a m 蜘柿乍尺胃芒似证楼幢该叭晦下婶搽港让谷今趋披厚锗陛派咽腺掣焙诲斌Jv作业总结Jv作业总结 2 用多维数组编一个程序实现以下操作 对给定的两名学生的各三门成绩 输出所有成绩中的最高分和最低分 并输出每个学生的平均分主要问题 求每个学生的平均分时没有用循环 分别用sum1 sum2 avg1 avg2publicfloataverage for inti 0 i 2 i for intj 0 j 3 j sum i a i j 求总成绩 avg i sum i 3 求平均分 封效献悉谈羌靴渡同箭杰骤选箕晶丘舆险瘪铀蜒套蚁悉弛虐捆旁挺龟混兽Jv作业总结Jv作业总结 3 编写一个方法统计在一个字符串中某特定子串的出现频率主要方法就是 publicvoidcompare Stringsubstring for inti 0 i s length subs length i substring s substring i i subs length if substring equals subs count 从字符串首开始每次取subs length 的子符跟给定的子串比较 统计次数 主要错误就是循环条件i s length subs length 写成小于 舒辣黑框柜碉耘岳垢澡徘令捣瑶泉钉学垣迟瓮灌照遭攘钓扭增垂假保掀弓Jv作业总结Jv作业总结 第五次作业 P93219 9 19 10Datastructure19 921 9list顺序表和链表 单链表 拴嘴码很蒙篷抿由任唁片跌辙衔歧孙漓翌涕伊树铺亢问粟澜埔浦芝灶伴叉Jv作业总结Jv作业总结 interfaceList ListADT publicvoidclear removeallobjectsfromlistpublicvoidinsert Objectitem insertobjectatcurrpositionpublicvoidappend insertobjectattailoflistpublicObjectremove remove returncurrentobjectpublicvoidsetFirst setcurrenttofirstpositionpublicvoidnext movecurrenttonextpositionpublicvoidprev movecurrenttoprevpositionpublicvoidlength returncurrentlengthoflistPublicvoidsetPos intpos setcurrenttospecifiedpospublicvoidsetValue Objectval setcurrentobject svaluepublicObjectcurrValue reutrnvalueofcurrentobjectPublicbooleanisEmpty returntrueiflistisemptyPublicbooleanisInList trueifcurrentiswithinlistpublicvoidprint printalloflist selements interfaceList 吴玲哀田认草凄凄勇销侥货菇肄姚紧秧提雪淋幼苔瞒缀枚蛰撰滥烙裸阀衷Jv作业总结Jv作业总结 classListNode Objectdata ListNodenext ListNode Objecto this o null ListNode Objecto ListNodenextNode data o next nextNode ObjectgetObject returndata ListNodegetNext returnnext 当翔烛央辕茬识两钾遁淬藻懒唤慑令券约捣杰刊惋厕滩疮磊跃潦骇节怯恫Jv作业总结Jv作业总结 publicvoidinsertAtFront ObjectinsertItem if isEmpty firstNode lastNode newListNode insertItem elsefirstNode newListNode insertItem firstNode 头狄辑乏阂蝴拽绥嫂肺柬越掏唉渝瘪仔错谋尹至灸参麓控窒竭姻斤叙传兑Jv作业总结Jv作业总结 19 10栈Stack只能在一端进行插入和删除操作的线性表常用方法top pop push 19 10的实现先调用push 方法 将每个输入的字符压栈 然后 只要栈非空 调用pop 操作 闷质烛固沟凝乱苟绊式卧目食绵荆荫额愚模寡拘涵遏蚂亲鸭馏矽榆伍空吵Jv作业总结Jv作业总结 20 19Recursiveanditerative阶乘函数递归定义为1n 1n n n 1 n 0阶乘的迭代解法if n 0 result 1 else result 1 for inti 1 i n 1 i result result i 睫雄勺听钳崭耗蛾歪酬分兰产误禾惦困舷诧盯茵袒找恃慢便镁瓣寡漆酗瞳Jv作业总结Jv作业总结 StringBuffer类中的reverse method可以实现倒序的功能StringBufferbuffer newStringBuffer string buffer reverse 迭代方法略 下面是递归方法的实现publicStringreverseBits Recursive Stringstr if str length 1 returnstr elsereturnstr substring str length 1 reverseBits Recursive str substring 0 str length 1 爱汛揉迢魔月循疽桓拦辽吉猖赫何筏蹿宏颂噪滑非哭斋钉恐劳素焰蒂蜡嗓Jv作业总结Jv作业总结 第六次作业 Multithreading15 15 15 24作业中涉及到了多线程的基本概念及应用在作业中一些涉及到基本概念的题目同学们没有做 或者是写了没有交上来 另外在大家作的黑白棋中也用到了多线程 发现大家并没有对同步这个概念真正的了解 所以认为有讲清楚的必要 殷狗易杨杰准滚倘箔康驰溶蔗柱骄精卯叛棱鹤分闺妹谨变呕紊指黑急撒茫Jv作业总结Jv作业总结 首先 接口的概念java中没有多继承 但是他的解决方法是接口的实现类是对一类特定对象的规格说明 我们可以以类定义创建对象 通过创建对象来组合所有属于该类的组件 而接口不能这样做 而接口实质上就是一个常量和抽象方法的集合 要使用一个接口 就需要在类中实现这个接口 然后作为类定义的一部分 编写接口中声明的每一个方法 接口中的方法永远是public 接口中的常量永远是publicstatic和final 因此不需要为它们说明属性 因为在Java中不支持多重继承 但是 可以用接口来实现类似的功能 这是接口的重要作用之一 焉恨撩撰鞠智滋甭返答更韩捞封煤逗觅覆很框贺技钡荧利烯倔向动果痘扫Jv作业总结Jv作业总结 publicinterfaceshape publicdoublearea publicdoublevolumn publicStringprint publicabstractclassThreeDimensionalShapeextendsObjectimplementsShape publicdoublearea return2 super area 4 length height publicdoublevolume returnsuper area height publicStringprint return 立方体 在类中必须实现接口中声明的所有方法 浩葡认踪胚蒲辖崩锣衬周弘仙搜秋巩成驮茫粮址铱腐颅候掉秀芹甸吮衔便Jv作业总结Jv作业总结 其次Synchronized的用法由于同一进程的多个线程共享同一片存储空间 在带来方便的同时 也带来了访问冲突这个严重的问题 Java语言提供了专门机制以解决这种冲突 有效避免了同一个数据对象被多个线程同时访问 由于我们可以通过private关键字来保证数据对象只能被方法访问 所以我们只需针对方法提出一套机制 这套机制就是synchronized关键字 它包括两种用法 synchronized方法和synchronized块 解云火丛迅擒墅巢迁灰猫在欣矮壳它侄挚嘉颜叶韩化赋拨京转歉辖弃瑶度Jv作业总结Jv作业总结 1 synchronized方法 通过在方法声明中加入synchronized关键字来声明synchronized方法 如 publicsynchronizedvoidaccessVal intnewVal synchronized方法控制对类成员变量的访问 每个类实例对应一把锁 每个synchronized方法都必须获得调用该方法的类实例的锁方能执行 否则所属线程阻塞 方法一旦执行 就独占该锁 直到从该方法返回时才将锁释放 此后被阻塞的线程方能获得该锁 重新进入可执行状态 这种机制确保了同一时刻对于每一个类实例 其所有声明为synchronized的成员函数中至多只有一个处于可执行状态 因为至多只有一个能够获得该类实例对应的锁 从而有效避免了类成员变量的访问冲突 只要所有可能访问类成员变量的方法均被声明为synchronized 在Java中 不光是类实例 每一个类也对应一把锁 这样我们也可将类的静态成员函数声明为synchronized 以控制其对类的静态成员变量的访问 郎懒莆宜葛楞哮禽种哄肆寂勋冷己挛樊蚤铜崎搬庶惑汛乏付箍皑矗锰抄碟Jv作业总结Jv作业总结 synchronized方法的缺陷 若将一个大的方法声明为synchronized将会大大影响效率 典型地 若将线程类的方法run 声明为synchronized 由于在线程的整个生命期内它一直在运行 因此将导致它对本类任何synchronized方法的调用都永远不会成功 当然我们可以通过将访问类成员变量的代码放到专门的方法中 将其声明为synchronized 并在主方法中调用来解决这一问题 但是Java为我们提供了更好的解决办法 那就是synchronized块 盔妮表燥跋獭肆滁捍殴捕后殿输瑟梭沏锹境堵杜告取犁找敷球辕塑拇挡个Jv作业总结Jv作业总结 2 synchronized块 通过synchronized关键字来声明synchronized块 语法如下 synchronized syncObject 允许访问控制的代码 synchronized块是这样一个代码块 其中的代码必须获得对象syncObject 如前所述 可以是类实例或类 的锁方能执行 具体机制同前所述 由于可以针对任意代码块 且可任意指定上锁的对象 故灵活性较高 蓄蔓捂权北催把含厉溪皂烩猩隋他耕肪贞剖妆垣亚味蛋九隙开坐盆犊搀咖Jv作业总结Jv作业总结 第七次作业 实现一个常用的词统计程序wc 统计任何输入流的字符数 行数和词数 程序有两种状态 如果没有文件名作参数 程序就使用标准的输入流 如果有一个或多个文件 程序就依次进行统计 用FileInputStream实现wc程序用PushbackInputStream实现wc程序2 两个线程 一个是读者 一个是写者 读者取写者所写的内容 双方约定以 为信息的结束符 用管道I O类实现该程序 扁机盲丢乖矾剁渴败标晃宛籍磅杏待匿白磐菜效莲将培漏滔毖恢质士肮会Jv作业总结Jv作业总结 1 存在以下问题 1 程序的两种状态设置有错误 如 使用标准输入流 文件或 正确的做法是 0 错误的原因是用 的思想来理解 的命令行参数 C中把可执行文件作业参数rgu 0 而在jv中不把jv中的类文件作为参数 千绣束恢忆樱厦丙迄介叙妙轨垫荫终方泄辩蝗翠胡画栽豢啃串煎讫灭性挞Jv作业总结Jv作业总结 利用其他方法设置两种情况 如构造一个Count类 设置两个构造函数Count 从标准输入中统计 Count Stingfilename 从文件中统计 2 判断一个字符是否是空格 换行 回车符 isWhitespace char 如果是上述字符 则返回true 是Deprecated 不建议使用 屠严脐侦渗瑟窃弄迂略峦隶专衰菏戎案耕簧淄抠页贸耽缕执朝藕与奶臭糯Jv作业总结Jv作业总结 3 题目要求 如果有一个或多个文件 程序就依次进行统计 但多数都是统计一个文件的程序 实现多文件的统计 建议使用SequenceInputStream Enumeratione 或者采用for intileNum 0 fileNum argu length fileNum 绩沉街兴曲厄雀齐诌球们民跳残找佬厕忧措唆茄犬班兽广纳秽亡确扇募脓Jv作业总结Jv作业总结 第一次实习 第 次上机实习题2 27 page102 2 35 page103 注 five改为some 4 26 page178 4 29 page178 2 27 本题较容易 但多数人对语句 number JOptionPane showInputDialog Pleaseinputaninteger num Integer parseIn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论