java 板


LINE

大家好 我是程式初学者,刚从 Hello, World 跟乘法表回圈脱离 正在练习阵列、字串,今天在想老师出的练习题 题目: 请设计一只程式由键盘输入三个整数,分别代表西元yyyy年,mm月, dd日,它会显示是该年的第几天 例:输入 1984 9 8 三个号码後,程式会显示「西元1984年,第250天」 (需判断闰年) 直觉判断这题解法是 拿一份yyyy年的月历 => 从 1/1 开始填序数 => 填到指定日期停手 => 得到答案 依照上面流程写出来的程式如下 https://pastebin.com/QXX5vrGZ 写完之後看到 49 ~ 60 行的结构吓了一跳 怕自己两个月之後回来根本看不懂 很想在旁边写一串注解把自己当时的思考流程写在上面 但是看到有些同学注解比 code 还长 程式有修改光注解重新排版就花了一堆时间 更不用说解法如果改了注解有可能全部废掉 刚好最近上到 method, 就顺手练习了一下 把这只程式里面的重要功能全部写成 method https://pastebin.com/GdCua2gx 改写之後 main 只剩下这麽短 Scanner sc = new Scanner(System.in); DayInYearV3 diy = new DayInYearV3(); System.out.println("请输入年月日(YYYY MM DD):"); int yy, mm, dd; yy = sc.nextInt(); mm = sc.nextInt(); dd = sc.nextInt(); if(yy < 1) yy = Math.abs(yy) - 1; diy.setEmptyCalendarOf(yy); if(diy.isInputLegal(yy, mm, dd)) { diy.countDIY(yy, mm ,dd); sc.close(); } 感觉更简洁好懂了 而且整个程式感觉完全不需要注解了 因为看方法的名字就可以让我很具体的想像那一段程式到底在干嘛 虽然说物件导向的优点是方法可以不断重复使用,不必重复发明轮子 但像上面这种简单的小程式,不知道里面的方法还会不会派上用场 有必要把里面的功能拆得这麽细吗? 这样做有没有什麽明显的坏处? 如果真的要写成方法,方法的大小又该如何拿捏? 像是 setEmptyCalendarOf() 里面又呼叫了 isLeapYear() 这种结构会不会造成日後牵一发动全身难以维护? 是不是应该把这两个方法写成一个? 初学程式所以问题有点多 但是不想要在不经意的情况下养成坏习惯 请各位前辈多多指教,谢谢 -- ╔═ ═╦╦═════╦═════╗ ◤◤◤ ╠╣飞鸟ももこ╠═╗ ║ ║╚═════╝ ╚═╦═╣ ║╔══════╗╔═╩═╣ █◤ ╠╣Momoko Asuka╠╝ ║ ◣◢◣◢╩╩══════╩════╝ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.130.223
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1540471604.A.F5A.html
1F:→ starburs: 一个方法里面只做一件事 就酱 10/26 19:08
2F:→ Cavalier: 看起来不错呀 只是外面用不到的就没必要写 public 10/27 01:55
3F:→ Cavalier: 不想养成坏习惯可以多看 design pattern 里面人家怎麽做 10/27 01:55
4F:→ new122851: Clean Code 无暇的程式码 一个method只做跟method名字 10/30 11:05
5F:→ new122851: 一样的事 10/30 11:05







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP