1. การติดตั้งและการใช้ myeclipse
* Eclipse: เป็นเครื่องมือการพัฒนาฟรี* myeclipse: เป็นปลั๊กอินแบบชำระเงินเพื่อถอดรหัส myeclipse, ** ข้อกำหนดของไดเรกทอรีการติดตั้ง: ไม่มีภาษาจีนและพื้นที่ ** หลังจากการติดตั้งเสร็จสมบูรณ์แล้วเลือกพื้นที่ทำงานซึ่งไม่สามารถใช้งานได้ Java Project Web Project- เลือกการพึ่งพา JDK คุณสามารถใช้ JDK ที่มาพร้อมกับ MyEclipse หรือคุณสามารถใช้ JDK* ที่ติดตั้งเพื่อสร้างแพ็คเกจแพ็คเกจ- cn.itcast.test xx.xx.xx* สร้างคลาสในการสร้างแพ็คเกจ value;} - เมธอดการตั้งชื่อข้อมูลจำเพาะตัวพิมพ์เล็กตัวอักษรตัวแรกตัวอย่างเช่น: addnum ()* กำหนดตัวแปร - ข้อกำหนดการตั้งชื่อตัวแปร ** ตัวอักษรตัวพิมพ์แรกตัวอักษรตัวพิมพ์แรกตัวอักษรตัวแรกของคำที่สองควรเป็นตัวพิมพ์ใหญ่เช่นชื่อผู้ใช้ ดูชื่อและรู้ว่ามันหมายถึงอะไร * รหัสต้องเยื้อง * เรียกใช้โปรแกรมเรียกใช้เป็น java applicationdebug เป็นแอปพลิเคชัน Java
2. โหมดดีบักดีบั๊ก (โหมดการดีบักเบรกพอยต์)
* การใช้โหมดนี้ดีบั๊กโปรแกรม (ดูการเปลี่ยนแปลงในข้อมูลในโปรแกรม) * ขั้นตอนแรกในการใช้การดีบักต้องตั้งค่าเบรกพอยต์ (ให้โปรแกรมทำงานหยุดบนบรรทัดนี้) - แสดงหมายเลขบรรทัด - ดับเบิลคลิกที่ด้านซ้าย DOT จะปรากฏขึ้นหรือไม่ RUN DOWN* คุณสามารถปล่อยให้โปรแกรมดำเนินการลง - ใช้ขั้นตอนเหนือปุ่มทางลัดคือ F6 (การดำเนินการขั้นตอนเดียว) - เรซูเม่ F8: ระบุว่าการดีบักสิ้นสุดลงแล้ววิ่งลงโดยตรง ** ตัวอย่างเช่นการเบรกพอยต์หลังจากจุดเริ่มต้น ** F7 STEP RETURT: RETURN
3. การใช้ปุ่มลัด myeclipse
* รหัสพรอมต์ Alt /* คู่มือด่วนแพ็คเกจ Ctrl Shift o* ความคิดเห็นบรรทัดเดียว ctrl /* ลบความคิดเห็นบรรทัดเดียว ctrl /* ความคิดเห็นหลายบรรทัด ctrl shift /* ลบความคิดเห็นหลายบรรทัด ctrl shift /* ลบ ctrl d d
4. การใช้ Junit
* การทดสอบหน่วย* วัตถุทดสอบเป็นวิธีการในคลาส* Juint ไม่ได้เป็นส่วนหนึ่งของ javase ฉันต้องการใช้แพ็คเกจ Jar นำเข้า ** อย่างไรก็ตามแพ็คเกจ jar ที่มี junit ถูกนำมาใช้ใน myeclipse* ก่อนอื่นทั้งหมดเมื่อ junit เวอร์ชัน 3.x 4.x* วิธีการทดสอบหน่วย @TestPublic เป็นโมฆะ testAdd1 () {testJunit test01 = ใหม่ testjunit (); test01.testadd (2, 3);}-เลือกชื่อวิธีการคลิกขวาที่จะเรียกใช้วิ่งเป็น --- การทดสอบ junit-เมื่อมีการทดสอบหลาย ๆ คลาส, Run as --- junit test ** @ignore: หมายความว่าวิธีนี้ไม่ได้ทำการทดสอบหน่วย ** @Before: การทำงานในแต่ละวิธี ** @After: การทำงานตามแต่ละวิธี ** assert.assertequals ("ทดสอบค่าที่คาดหวัง", "ค่าที่แท้จริงของวิธีการทำงาน" พารามิเตอร์ ** การสะท้อนกลับ5. บทนำเกี่ยวกับยาชื่อสามัญ
* ทำไมต้องใช้ยาชื่อสามัญ? - โดยทั่วไปใช้กับชุด ** ตัวอย่างเช่นตอนนี้ใส่ค่าประเภทสตริงลงในชุด ในเวลานี้หลังจากใส่ค่านี้ลงในชุดประเภทที่สูญเสียความสามารถของมันสามารถเป็นประเภทวัตถุเท่านั้น ในเวลานี้ตัวอย่างเช่นหากคุณต้องการพิมพ์การแปลงค่านี้มันเป็นเรื่องง่ายที่จะมีข้อผิดพลาดในการแปลงประเภท วิธีการแก้ปัญหานี้สามารถใช้ในการแก้ปัญหานี้โดยใช้ยาชื่อสามัญ*วิธีการใช้ยาชื่อสามัญในชุด - รายการชุดที่ใช้กันทั่วไปชุดแผนที่ - การรวบรวมไวยากรณ์ทั่วไป <String> ตัวอย่างเช่นรายการ <String>*ถูกเขียนเป็นวัตถุในทั่วไปและสตริงไม่สามารถเขียนประเภทข้อมูลพื้นฐาน - intle- Doublechar - ตัวละคร - บูลีน* การใช้งานสามรายการของการใช้รายการทั่วไปในรายการ arraylist รหัสเวกเตอร์ LinkedList: @TestPublic Void TestList () {รายการ <String> รายการ = new ArrayList <String> (); list.add ("aaa"); list.add ("bbb"); collection.//ordinary สำหรับการปรับปรุงลูปตัววนซ้ำสำหรับ // สามัญสำหรับลูปสำหรับ (int i = 0; i <list.size (); i ++) {string s = list.get (i); system.out.println (s);} system.out.println ("==================================================================================== - - - - - - ความแตกต่างทั้งสามนี้ * ใช้รหัสทั่วไปใน Set: // Generics ใช้ Set on Set @TestPublic Void Testset () {set <String> set = new HashSet <String> (); set.add ("www"); set.add ("qqq"); set.add ("zzz"); การเพิ่มประสิทธิภาพสำหรับ // ใช้การปรับปรุงสำหรับ Traversal สำหรับ (String S2: Set) {system.out.println (s2);} system.out.println ("================================================================= - - - = set.iterator (); ในขณะที่ (it1.hasnext ()) {system.out.println (it1.next ());}}* ใช้โครงสร้างทั่วไป-แผนที่บนแผนที่: รหัสฟอร์ม key-valu: // การใช้ทั่วไปบนแผนที่ @testpublic void testmap () {map <string, string> map = new hashmap <string "111"); map.put ("bbb", "222"); map.put ("ccc", "333"); // แผนที่การถ่ายโอนมีหลายวิธีในการข้าม // 1 รับกุญแจทั้งหมดและรับค่าผ่านการใช้คีย์รับเมธอด // 2 (คีย์สตริง: ชุด) {// รับ valuestring value = map.get (คีย์); system.out.println (คีย์+" "+ค่า);} system.out.println (" ============================================================================ - - - {// รายการคือความสัมพันธ์ระหว่างคีย์และค่าสตริง keyv = entry.getKey (); string valuev = entry.getValue (); system.out.println (keyv+":"+valuev);}}6. ยาชื่อสามัญใช้ในวิธีการ
* กำหนดอาร์เรย์เพื่อใช้การแลกเปลี่ยนองค์ประกอบอาร์เรย์ที่ตำแหน่งที่ระบุ* ตรรกะวิธีการเหมือนกัน แต่ชนิดข้อมูลแตกต่างกัน ในเวลานี้ให้ใช้วิธีการทั่วไป* /** ใช้วิธีการทั่วไปเพื่อกำหนดประเภทโดยใช้ตัวอักษรตัวใหญ่เพื่อแสดง t: t นี้แสดงถึงประเภทใด ๆ* ก่อนที่ค่าคืนจะถูกเขียน <t>* ========= กำหนดประเภท ประเภทนี้คือ t* ที่นี่คุณสามารถใช้ประเภทนี้ t**/สาธารณะคงที่ <t> void swap1 (t [] arr, int a, int b) {t temp = arr [a]; arr [a] = arr [b]; arr [b] = temp;} ** โยบ 2: ใช้วิธีการทั่วไป7. การใช้ยาสามัญในชั้นเรียน (เข้าใจ)
* กำหนดประเภทในคลาสประเภทนี้สามารถใช้โดยตรงในคลาส * คลาสสาธารณะ testDemo04 <t> {// คุณสามารถใช้ t tya t tya ในคลาส; โมฆะสาธารณะทดสอบ 11 (t bb) {} // เขียนทั่วไปที่กำหนดโดยวิธีการคงที่ในชั้นเรียนและคุณไม่สามารถใช้วิธีการสาธารณะคงที่สาธารณะคงที่ <a> โมฆะ test12 (a cc) {}}}8. บทนำสู่การแจงนับ
* enum คืออะไร? ** คุณต้องใช้ค่าภายในช่วงที่กำหนดและค่านี้สามารถเป็นช่วงใดช่วงหนึ่งเท่านั้น ** ฉากที่สมจริง: สัญญาณไฟจราจรมีสามสี แต่มีเพียงหนึ่งในสามสีเท่านั้นที่สามารถสว่างได้ในแต่ละครั้ง* ใช้คำหลักหนึ่งคำว่า enum ** enum color3 {สีแดง, สีเขียว, สีเหลือง,}* วิธีการก่อสร้าง enum เป็นส่วนตัว* การทำงานของ enum พิเศษ (เข้าใจ) คลาส ** เขียนวิธีนามธรรมนี้ใหม่ในแต่ละอินสแตนซ์ของ enum9. การดำเนินการของ API ที่แจกแจง
** ชื่อ (): ส่งคืนชื่อของ enum ** ordinal (): ตัวห้อยของ enum, ตัวห้อยเริ่มต้นจาก 0 ** valueof (คลาส <t> enumtype, ชื่อสตริง): รับวัตถุของ enum ** มีสองวิธีการรวมกัน: การแปลงระหว่างวัตถุ enum, ตัวห้อยวัตถุ enum และชื่อวัตถุ enum การแสดง- // รู้วัตถุ enum รับชื่อ enum และตัวห้อย @testpublic void test1 () {// รับ enum object color100 c100 = color100.red; c100.ordinal (); system.out.println (ชื่อ+""+idx);}- // รู้ชื่อของการแจงนับรับวัตถุและตัวห้อยของการแจงนับ @testpublic void test2 () {สตริงชื่อ 1 = "สีเขียว"; c1.ordinal (); system.out.println (idx1);}- // รู้ตัวห้อยของการแจงนับให้รับวัตถุและชื่อของการแจงนับ @TestPublic Void test3 () {int IDX2 = 2; cs [idx2]; // รับชื่อสตริงชื่อการแจงนับ = c12.name (); system.out.println (ชื่อ);}10. การนำเข้าแบบคงที่ (เข้าใจ)
* คุณสามารถใช้วิธีการนำเข้าแบบคงที่โดยตรงในรหัสเพื่อนำเข้าวิธีการคงที่หรือค่าคงที่* นำเข้า Xx.xx.xxx* นำเข้า Java.lang.System.Aut.Out; นำเข้า java.util.Array.sort; ** ตัวอย่างเช่นตอนนี้ใช้เครื่องคิดเลขในคลาสคณิตศาสตร์
11. การแกะกล่องและการประกอบอัตโนมัติ
* กล่อง ** แปลงประเภทข้อมูลพื้นฐานเป็นคลาสบรรจุภัณฑ์* Unboxing ** แปลงคลาสบรรจุภัณฑ์เป็นประเภทข้อมูลพื้นฐาน ** // integer autobox i = 10; // autobox int m = i; ** วิธีการกล่องและ unbox ใน jdk1.4 - // autobox ใน jdk1.4 // unbox int a = m.intValue ();} ** jdk นั้นเข้ากันได้ย้อนหลัง - ตัวอย่างเช่นรหัสที่เขียนใน JDK1.4 ยังสามารถทำงานใน 5.0 ** การออกกำลังกาย: Backward เข้ากันได้ == ผลลัพธ์ของการดำเนินการคือการเรียก Dosomething (double m) == ก่อนอื่น หากวิธีการต่อไปนี้เรียกว่าการแปลงประเภทนั้นเป็นสิ่งจำเป็น แต่ JDK1.4 ไม่สามารถตระหนักถึงการยกเลิกการบ็อกซ์อัตโนมัติ == เนื่องจาก JDK เข้ากันได้ย้อนหลังถ้าวิธีนี้เรียกว่าใน JDK1.4 วิธีนี้จะยังคงถูกเรียกใน JDK5.0 โมฆะสาธารณะ {system.out.println ("double ... ");} โมฆะคงที่สาธารณะ dosomething (จำนวนเต็ม a) {system.out.println ("จำนวนเต็ม ...... ");} ** โปรดจำไว้ว่า: คลาส wrapper ที่สอดคล้องกับประเภทข้อมูลพื้นฐานแปดชนิด12. ปรับปรุงสำหรับลูป (*****)
* ไวยากรณ์สำหรับ (ค่าที่ผ่านการสำรวจ: ชุดที่จะสำรวจ) {}- สำหรับ (String s: list) {system.out.println (s);}* สถานการณ์การใช้งาน: array; ชุดที่ใช้อินเทอร์เฟซแบบ iterable สามารถใช้การปรับปรุงสำหรับลูป* ใช้การปรับปรุงสำหรับลูปเพื่อสำรวจรายการที่ตั้งค่าในชุดอินเตอร์เฟสตัววนซ้ำจะถูกนำไปใช้ดังนั้นจึงสามารถใช้การปรับปรุงการวนรอบและไม่สามารถใช้อินเทอร์เฟซตัววนซ้ำได้ ไม่สามารถใช้อินเทอร์เฟซตัววนซ้ำได้ดังนั้นจึงไม่สามารถใช้การปรับปรุงลูปได้ วัตถุประสงค์ของการปรับปรุงสำหรับลูปปรากฏขึ้น: เพื่อแทนที่ตัววนซ้ำ ** ชั้นพื้นฐานของการปรับปรุงสำหรับถูกนำมาใช้โดย iterator13. อาหารเสริม
(1) การลบทั่วไป* ก่อนอื่นทั่วไปจะปรากฏในขั้นตอนซอร์สโค้ดเท่านั้น เมื่อคอมไพล์แล้วไม่มีอยู่ทั่วไปอีกต่อไป (2) แบบฝึกหัด: ใช้วิธีการทั่วไปยอมรับอาร์เรย์ทุกประเภทและย้อนกลับรหัสองค์ประกอบทั้งหมดในอาร์เรย์สาธารณะคงที่ <T> โมฆะกลับ (t [] arr1) {/** แนวคิดพื้นฐาน: สลับองค์ประกอบแรกด้วยองค์ประกอบสุดท้ายและเปลี่ยนองค์ประกอบที่สอง - - - *ความยาวสลับ/2**/// transweep อาร์เรย์สำหรับ (int i = 0; i <arr1.length/2; i ++) {/*int temp = arr1 [0]; arr1 [0] = arr1 [arr1.length-1];*/t temp = arr1 [i]; arr1 [i] Temp;}}14. พารามิเตอร์ตัวแปร
* ในสถานการณ์ใดที่สามารถใช้พารามิเตอร์ตัวแปร: ** ใช้การเพิ่มตัวเลขสองตัวและใช้การเพิ่มตัวเลขสามตัวและตัวเลขสี่ตัว- หากมีการใช้วิธีการหลายวิธีตรรกะในวิธีการเหล่านี้จะเหมือนกัน ความแตกต่างเพียงอย่างเดียวคือจำนวนพารามิเตอร์ที่ผ่าน คุณสามารถใช้พารามิเตอร์ตัวแปร* วิธีการนิยามของพารามิเตอร์ตัวแปรชนิดข้อมูล ... ชื่อของอาร์เรย์* เป็นที่เข้าใจกันว่าเป็นอาร์เรย์ซึ่งเก็บพารามิเตอร์พารามิเตอร์ที่ผ่านการผ่านรหัสโมฆะคงที่ add1 (int ... nums) {// nums เป็น array; i = 0; i <nums.length; i ++) {sum+= nums [i];} system.out.println (sum);}* หมายเหตุ (1) พารามิเตอร์ตัวแปรต้องเขียนในรายการพารามิเตอร์ของวิธีการและไม่สามารถกำหนดได้ (2) พารามิเตอร์ - add1 (int a, int ... nums)15. หลักการของการไตร่ตรอง (************)
* นำไปใช้ในบางรหัสที่มีความสามารถรอบตัวสูงกว่า* เฟรมเวิร์กส่วนใหญ่ที่เรียนรู้ในภายหลังจะถูกนำไปใช้โดยใช้การสะท้อน* ในการพัฒนาเฟรมเวิร์กพวกเขาได้รับการพัฒนาขึ้นอยู่กับไฟล์การกำหนดค่า ** ในไฟล์การกำหนดค่าเนื้อหาทั้งหมดในคลาสสามารถรับได้ผ่านการสะท้อนและวิธีการของพารามิเตอร์ การวิเคราะห์การสะท้อนกลับ* ก่อนอื่นคุณต้องบันทึกไฟล์ Java ไปยังฮาร์ดดิสก์ในท้องถิ่น Java* รวบรวมไฟล์ Java และกลายเป็นไฟล์. class* ใช้ JVM เพื่อโหลดไฟล์คลาสลงในหน่วยความจำผ่านคลาสโหลด* ทุกอย่างเป็นวัตถุและไฟล์คลาสจะถูกแสดงโดยคลาสในหน่วยความจำ* เมื่อใช้การสะท้อน หลังจากได้รับคลาสนี้คุณจะได้รับเนื้อหาทั้งหมดในไฟล์คลาส - รวมถึงตัวสร้างแอตทริบิวต์วิธีการปกติ* แอตทริบิวต์จะถูกยื่น* ตัวสร้าง* ตัวสร้าง* วิธีการปกติผ่านวิธีการเรียนคลาส
16. ใช้วิธีการก่อสร้างแบบไม่มีพารามิเตอร์ในคลาสการสะท้อนแสง (** จะเขียน **)
* ก่อนอื่นรับคลาสคลาส - // รับคลาสคลาสคลาส clazz1 = person.class; class clazz2 = คนใหม่ (). getclass (); clazz3 = class.forname ("cn.itcast.test09.person"); - // รับ classclass c3 = class.forname ("cn.itcast.test09.person"); // รับอินสแตนซ์ของบุคคลในชั้นบุคคล p = (บุคคล) c3.newinstance ();* รหัส // ดำเนินการสร้างโดยไม่มีพารามิเตอร์ @testpublic void test1 () class.forname ("cn.itcast.test09.person"); // รับอินสแตนซ์ของบุคคลชั้นบุคคล p = (บุคคล) c3.newinstance (); // ตั้งค่า p.setName ("Zhangsan"); system.out.println (p.getName ());};17. ใช้การดำเนินการสะท้อนกลับเพื่อให้มีวิธีการก่อสร้างพารามิเตอร์ (** จะเขียน **)
// ใช้งานคอนสตรัคเตอร์ด้วยพารามิเตอร์ @TestPublic void test2 () พ่นข้อยกเว้น {// รับคลาส c1 = class.forname ("cn.itcast.test09.person"); // ใช้ตัวสร้างด้วยพารามิเตอร์ // c1.getConstructors () ชั้นเรียน cs = c1.getConstructor (string.class, string.class); // ตั้งค่าผ่านตัวสร้างด้วยพารามิเตอร์ // สร้างอินสแตนซ์บุคคลผ่านตัวสร้างด้วยพารามิเตอร์บุคคล p1 = (บุคคล) cs.newinstance ("lisi", "100"); system.out.println (p1.getid ()18. ใช้คุณสมบัติการทำงานสะท้อนกลับ (** จะเขียน **)
* // ใช้งานแอตทริบิวต์ชื่อ @TestPublic เป็นโมฆะ test3 () {ลอง {// รับคลาสคลาส C2 = class.forName ("cn.itcast.test09.person"); // รับแอตทริบิวต์ชื่อ // c2.getDeclaredFields (); วิธีนี้พารามิเตอร์คือชื่อของฟิลด์แอตทริบิวต์ F1 = C2.GetDeclaredField ("ชื่อ"); // การดำเนินการเป็นคุณสมบัติส่วนตัวและไม่อนุญาตให้ดำเนินการ คุณต้องตั้งค่าคุณสมบัติส่วนตัว setAccessible (จริง) ซึ่งสามารถใช้งานคุณสมบัติส่วนตัว f1.setAccessible (จริง); // ตั้งค่าวิธีการตั้งค่าชื่อ, สองพารามิเตอร์: อินสแตนซ์พารามิเตอร์แรกและพารามิเตอร์ที่สองคือค่าที่ตั้งค่า f1.set (p11, "wangwu"); // เทียบเท่ากับ p.name = "wangwu"; system.out.println (f1.get (p11)); // เทียบเท่ากับ p.name} catch (Exception e) {E.printStackTrace ();}}19. ใช้วิธีการใช้งานทั่วไป (** สามารถเขียนได้ **)
* ใช้คลาสเมธอดเพื่อแสดงวิธีการทั่วไป* รหัส // ใช้วิธีการทั่วไปเช่นการทำงาน setName@testPublic void test4 () พ่นข้อยกเว้น {// รับคลาสคลาส C4 = คลาส forName ("cn.itcast.test09.person"); Method // C4.GetDeclaredMethods (); // รับเมธอดธรรมดาทั้งหมด // ถ่ายโอนพารามิเตอร์สองพารามิเตอร์: พารามิเตอร์แรกชื่อวิธี; พารามิเตอร์ที่สองประเภทของพารามิเตอร์ในเมธอด m1 = c4.getDeclaredMethod ("setName", string.class); // ให้เมธอด setName ดำเนินการ, เรียกใช้ค่าที่กำหนด // ใช้เรียกใช้ (p4, "niuqi"); ผ่านพารามิเตอร์สองพารามิเตอร์: พารามิเตอร์แรกอินสแตนซ์บุคคล; พารามิเตอร์ที่สองตั้งค่า // หลังจากดำเนินการเมธอด Invoke มันจะเทียบเท่ากับการดำเนินการวิธีการตั้งชื่อและในเวลาเดียวกันค่าจะถูกตั้งค่าเป็น niuqim1.invoke (p4, "niuqi"); System.out.println (p4.getName ());}* // วิธีการส่วนตัวของการดำเนินการจะต้องตั้งค่าเป็นจริง* //m1.setAccessible(true); ชื่อเมธอดไม่จำเป็นต้องใช้อินสแตนซ์ของคลาส* เมื่อใช้การสะท้อนเพื่อใช้วิธีการคงที่ไม่จำเป็นต้องใช้อินสแตนซ์* ในพารามิเตอร์แรกของวิธีการของ Invokie เขียน null- m1.invoke (null, "niuqi");ด้านบนเป็น Java Basic Enhanced Edition ของ Java Web Basic Tutorial ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!