1. تركيب واستخدام myeclipse
* Eclipse: هي أداة تطوير مجانية* myeclipse: هو مكون إضافي مدفوع لكسر myeclipse ، ** متطلبات دليل التثبيت: لا يمكن أن يكون هناك صينية ومساحات ** بعد اكتمال التثبيت ، حدد مساحة عمل ، والتي لا يمكن أن تحتوي على صينية ومساحات* تصدع myeclipse **. Java Project Web Project- حدد التبعية JDK ، يمكنك استخدام JDK الذي يأتي مع myeclipse ، أو يمكنك استخدام JDK المثبتة* لإنشاء حزمة الحزمة- cn.itcast.test xx.xx قيمة الجسم أو الإرجاع ؛} - طريقة تسمية المواصفات الصغيرة الحرف الأول ، على سبيل المثال: AddNum ()* تحديد متغير - مواصفات التسمية المتغيرة ** الحرف الصغيرة الأولية ، الحرف الأول من الكلمة الثانية يجب أن يكون كبيرًا ، مثل اسم المستخدم* التسمية: انظر الاسم واعرف ما يعنيه * يجب أن يتم وضع مسافة بادئة *
2. وضع تصحيح التصحيح (وضع تصحيح نقطة الإيقاف)
* باستخدام هذا الوضع ، قم بتصحيح البرنامج (انظر التغييرات في البيانات في البرنامج) * تتطلب الخطوة الأولى لاستخدام Debug تعيين نقطة توقف (دع البرنامج يتوقف على هذا الخط) - أظهر رقم الخط - انقر نقرًا مزدوجًا على اليسار ، ويظهر نقطة ، مع الإشارة إلى أن نقطة التوقف قد تم تعيينها * استخدام Debug ، قم بتشغيل البرنامج - لأسفل* يمكنك ترك البرنامج يتم تنفيذه ، - استخدام الخطوة فوق مفتاح الاختصار هو F6 (تنفيذ خطوة واحدة) - استئناف F8: يشير إلى أن التصحيح قد انتهى ، تشغيله مباشرة لأسفل ** على سبيل المثال ، هناك نقطة توقف بعد نقطة الانقطاع الحالية ، القفز إلى نقطة الإيقاف التالية ، ** F7 Step Return: Return
3. استخدام مفاتيح اختصار Myeclipse
* موجه رمز ALT /* حزمة الدليل السريع حزمة CTRL SHIFT O* سطر واحد تعليق CTRL /* إزالة سطر واحد تعليق CTRL /* التعليق متعدد السطر CTRL SHIFT /* إزالة التعليق متعدد الخطوط CTRL /* حذف سطر CTRL D
4. استخدام Junit
* اختبار الوحدة* كائن الاختبار هو طريقة في فئة* Juint ليست جزءًا من Javase ، أريد استخدام حزمة الاستيراد JAR ** ومع ذلك ، يتم إحضار حزمة JAR مع JUNIT في myeclipse* أولاً وقبل كل شيء ، عند إصدار JUNIT 3.X 4.X* طريقة اختبار الوحدة ، طريقة تسمية طريقة الفراغ العامة () testpublic void testadd1 () {testJunit test01 = new testJunit () ؛ test01.testadd (2 ، 3) ؛ كـ --- اختبار Junit ** @ignore: يعني أن هذه الطريقة ليست اختبار الوحدة ** @before: تشغيل على كل طريقة ** @After: تشغيل بعد كل طريقة ** assert.assertetequals ("اختبر القيمة المتوقعة" ، "القيمة الفعلية للطريقة التي يتم تشغيلها") انعكاس5.
* لماذا استخدام الأدوية؟ - يستخدم بشكل عام على المجموعات ** على سبيل المثال ، ضع الآن قيمة نوع السلسلة في المجموعة. في هذا الوقت ، بعد وضع هذه القيمة في المجموعة ، يمكن أن يكون النوع الذي يفقد قدرته هو نوع الكائن فقط. في هذا الوقت ، على سبيل المثال ، إذا كنت ترغب في كتابة تحويل هذه القيمة ، فمن السهل أن يكون لديك أخطاء تحويل النوع. كيفية حل هذه المشكلة يمكن استخدام هذه المشكلة لحل هذه المشكلة باستخدام الأدوية الجينية*كيفية استخدام الأدوية العامة على مجموعات - مجموعات تعيين شائعة الاستخدام MAP- مجموعة بناء الجملة العامة <string> على سبيل المثال ، القائمة <String>*مكتوبة ككائن في فئة ملفات عامة ، ولا يمكن لسلسلة كتابة أنواع البيانات الأساسية ، مثل int (****) - DoubleChar - حرف Boolean - Boolean* ثلاثة تطبيقات لاستخدام القوائم العامة في قائمة ArrayList LinkedList Code: Testpublic void testlist () {list <string> list = new ArrayList <string> للحصول على حلقة Iterator تعزيز // العادية للحلقة (int i = 0 ؛ i <list.size () ؛ i ++) {string s = list.get(i);System.out.println(s);}System.out.println("============================================================================== ================================================================= ================================================================= ================================================================ ================================================================= ================================================================= ================================================================= هذه الاختلافات الثلاثة * استخدم رمزًا عامًا على المجموعة: // استخدم menerics set على setTestpublic void testset () {set <string> set = new hashset <string> () ؛ set.add ("www") ؛ set.add ("qqq") ؛ set.add ("zzz") ؛ لـ // استخدم تحسينًا للالتحاق (السلسلة S2: SET) {system.out.println (s2) ؛} system.out.println ("================================================= ========================================================================================= ========================================================================================= ============================================================================================== = set.iterator () ؛ بينما (it1.hasnext ())) {system.out.println (it1.next ()) ؛}}* استخدم بنية خريطة menerics على الخريطة: رمز نموذج المفتاح: // باستخدام generics على testpublic void testmap () {map <string> map = new hasmap <string> "111") ؛ map.put ("bbb" ، "222") ؛ map.put ("ccc" ، "333") ؛ // Transip Map ، هناك عدة طرق لتجارة // 1. الحصول على جميع المفاتيح واحصل على القيمة من خلال استخدام المفتاح الحصول على طريقة // 2. (مفتاح السلسلة: مجموعات) {// الحصول على قيمة valuestring = map.get (مفتاح) ؛ system.out.println (مفتاح+": "+قيمة) ؛} system.out.println (" =========================================================================== =========================================================================================================================================== =========================================================================================================================================== ================================================================================================================================================= {// الإدخال هو العلاقة بين المفتاح وسلسلة القيمة keyv = interpling.getKey () ؛ string valuev = interpling.getValue () ؛ system.out.println (keyv+":"+valuev) ؛}}6. يتم استخدام الأدوية الجيرية في الطرق
* تحديد صفيف لتنفيذ تبادل عناصر الصفيف في الموضع المحدد* منطق الطريقة هو نفسه ، ولكن أنواع البيانات مختلفة. في هذا الوقت ، استخدم الطرق العامة* /** استخدم طرقًا عامة لتحديد نوع باستخدام أحرف رأس المال لتمثيل T: يمثل هذا t أي نوع* قبل كتابة قيمة الإرجاع <T>* ========== تحديد نوع. هذا النوع هو t* هنا يمكنك استخدام هذا النوع t**/static public static <t> swap1 (t [] arr ، int a ، int b) {t temp = arr [a] ؛ arr [a] = arr [b] ؛ arr [b] = temp ؛7. استخدام الأدوية الجيلية على الفصول (فهم)
* تحديد نوع على فئة ، يمكن استخدام هذا النوع مباشرة في الفئة * الفئة العامة testDemo04 <T> {// يمكنك استخدام t -type taa في الفصل ؛ اختبار public void test11 (t bb) {} // اكتب عامًا محددًا بواسطة طريقة ثابتة في الفصل ، ولم يعد بإمكانك استخدام طريقة ثابتة عامة ثابتة <A> test12 (A cc) {}}8. مقدمة في التعداد
* ما هو التعداد؟ ** تحتاج إلى أخذ قيمة ضمن نطاق معين ، ويمكن أن تكون هذه القيمة فقط أي واحدة من النطاقات. ** مشهد واقعي: إشارات المرور ، هناك ثلاثة ألوان ، ولكن واحدة فقط من الألوان الثلاثة يمكن أن تكون مشرقة في وقت واحد* استخدم كلمة رئيسية واحدة ** enum color3 {Red ، Green ، أصفر ؛ أعد كتابة هذه الطريقة التجريدية في كل مثيل من التعداد9. تشغيل واجهة برمجة التطبيقات المذكورة
** name (): إرجاع اسم التعداد ** ordinal (): المفرد من التعداد ، يبدأ المنشور من 0 ** valueof (الفئة <T> enumtype ، اسم السلسلة): الحصول على كائن التعداد ** هناك طريقتان آخران ، كلاهما لا في API ، و اثنين من الطريقين يتم إنشاءهما أثناء التجميع *** valueof) بين كائنات التعداد ، و consult consumprict ، وتمثيل اسم كائن التعداد- // تعرف على كائن التعداد ، احصل على اسم التعداد و testpublic void test1 () {// احصل c100.Ordinal () ؛ system.out.println (name+""+idx) ؛}- // تعرف على اسم التعداد ، احصل على الكائن والانتشار من التعداد testpublic void test2 () {string name1 = "green" ؛ c1.ordinal () ؛ system.out.println (idx1) ؛}- // تعرف على ترجمة التعداد ، احصل على كائن واسم التعداد testpublic void test3 () {int idx2 = 2 ؛ cs [idx2] ؛ // احصل على اسم سلسلة اسم التعداد = c12.name () ؛ system.out.println (name) ؛}10. استيراد ثابت (فهم)
* يمكنك استخدام طريقة الاستيراد الثابتة مباشرة في الكود لاستيراد الأساليب أو الثوابت الثابتة* استيراد XX.xx.xxx الثابت
11. التفريغ التلقائي والتجميع
* Box ** قم بتحويل نوع البيانات الأساسي إلى فئة التغليف* unboxing ** قم بتحويل فئة التغليف إلى نوع البيانات الأساسي ** // atoBox Integer I = 10 ؛ // Autobox int m = i ؛ ** how to box and unbox in jdk1.4 - // autobox in jdk1.4 public void test1 () {// box inte m = 10 // unbox int a = m.intvalue () ؛} ** jdk متوافق مع الوراء - على سبيل المثال ، يمكن أن يتم تشغيل الرمز المكتوب في jdk1.4 أيضًا في 5.0 ** التمرين: متوافق مع الخلف == نتيجة التنفيذ هي استدعاء dosomething (double m) == أولاً ، يجب استدعاء هذه الطريقة في JDK1.4. إذا تم استدعاء الطريقة التالية ، فسيكون هناك حاجة إلى تحويل النوع ، ولكن JDK1.4 لا يمكن أن يدرك إلغاء اللاثني التلقائي == نظرًا لأن JDK متوافق للخلف ، إذا تم استدعاء هذه الطريقة في JDK1.4 ، فستظل هذه الطريقة في حالة صوتية عامة (DOSOMENT) {system.out.println ("double ...") ؛} public static void dosomething (integer a) {system.out.println ("integer ......") ؛} **12. محسّن للحلقة (*****)
* بناء جملة لـ (القيمة التي تم اجتيازها: المجموعة المراد عبورها) {}- لـ (سلسلة S: قائمة) {system.out.println (s) ؛}* السيناريوهات: Array ؛ يمكن أن تستخدم المجموعات التي تنفذ الواجهة المطلقة المحسّنة للحلقة* المحسّنة للحلقة لاجتياز القائمة المحددة على المجموعة التي يتم تنفيذ واجهة ITERATAR ، لذلك لا يمكن استخدام المحسّن للحلقة ، ولا يمكن تطبيق واجهة ITERATAR ، لذلك لا يمكن استخدام المحسّنة للحلقة. لا يمكن تنفيذ واجهة التكرار ، لذلك لا يمكن استخدام المحسّنة للحلقة. يظهر الغرض من المحسّن للحلقة: لاستبدال التكرار ** يتم تنفيذ الطبقة الأساسية للتحسين من قبل المتكرر13. ملحق المحتوى
(1) محو عام* أولاً وقبل كل شيء ، تظهر الأدوية الجنيسة فقط في مرحلة الكود المصدر. عند التجميع ، لم تعد الأداء موجودًا (2) التمرين: تنفيذ طريقة عامة ، وقبول المصفوفات من أي نوع ، وعكس جميع رموز العناصر في المصفوفة العامة الثابتة <T> الفراغ ينعكس (T [] ARR1) {/** الفكرة الأساسية: تبديل العنصر الأول مع العنصر الأخير ، وتبديل العنصر الثاني بالعنصر القابل. . . . *طول المبادلة/2**/// transweep الصفيف لـ (int i = 0 ؛ i <arr1.length/2 ؛ i ++) {/*int temp = arr1 [0] ؛ arr1 [0] = arr1.14. المعلمات المتغيرة
* في أي سيناريو يمكن تطبيق المعلمات المتغيرة: ** تنفيذ إضافة رقمين ، وتنفيذ إضافة ثلاثة أرقام وأربعة أرقام- إذا تم تنفيذ طرق متعددة ، فإن المنطق في هذه الطرق هو نفسه بشكل أساسي. الفرق الوحيد هو عدد المعلمات التي تم تمريرها. يمكنك استخدام المعلمات المتغيرة* طريقة تعريف طريقة بيانات المعلمات المتغيرة ... يُفهم اسم الصفيف* على أنه صفيف ، والذي يخزن المعلمات التي تم تمريرها الفراغ الثابتة الثابتة add1 (int ... nums) {// nums int intray ، والتي تخزن المعلمات التي تم تمريرها i = 0 ؛ i <nums.length ؛ i ++) {sum+= nums [i] ؛ المعلمة - add1 (int a ، int ... nums)15. مبدأ التفكير (************)
* يتم تطبيقها في بعض الرموز ذات التنوع الأعلى* يتم تنفيذ معظم الأطر المستفادة لاحقًا باستخدام الانعكاس* في تطوير الإطار ، ويتم تطويرها استنادًا إلى ملف التكوين ** في ملف التكوين ، ويمكن الحصول على جميع المحتويات في الفصل ، ويمكن الحصول على مُنشئات ، ويمكن استخدام طريقة في الفئة*. الانعكاس* أولاً ، تحتاج إلى حفظ ملف Java إلى Disk.Java* المحلي - قم بتجميع ملف Java وتصبح ملف .class* استخدم JVM لتحميل ملف الفئة في الذاكرة من خلال تحميل الفئة* كل شيء كائن ، ويتم تمثيل ملف الفصل بواسطة فئة فئة في الذاكرة* عند استخدام الانعكاس ، تحتاج أولاً إلى الحصول على الفئة. بعد الحصول على هذه الفئة ، يمكنك الحصول على جميع المحتويات في ملف الفصل - بما في ذلك مُنشئات السمات ، يتم تقديم سمات الأساليب العادية*
16. استخدم طريقة البناء بدون المعلمة في فئة تشغيل الانعكاس (** ستكتب **)
* احصل أولاً على فئة الفصل - // الحصول على فئة الفصل الدراسي clazz1 = person.class ؛ class clazz2 = new person (). getClass () ؛ class clazz3 = class.forname ("cn.itcast.test09 - // الحصول على classclass c3 = class.forname ("cn.itcast.test09 class.forname ("cn.itcast.test09.person") ؛ // احصل على مثيل الشخص الشخصي p = (person) c3.newinstance () ؛ // تعيين القيمة p.setName ("Zhangsan") ؛ System.out.println (p.getName ()) ؛}17. استخدم عملية الانعكاس للحصول على طريقة بناء المعلمات (** ستكتب **)
. فصل. cs = c1.getConstructor (string.class ، string.class) ؛ // قم بتعيين القيمة من خلال المُنشئ مع المعلمات // إنشاء مثيل الشخص من خلال المُنشئ مع المعلمات p1 = (person) cs.newinstance ("lisi" ، "100")18. استخدم خصائص عملية الانعكاس (** ستكتب **)
* // تشغيل الاسم السمة testpublic void test3 () {try {// الحصول على فئة الفئة c2 = class.forname ("cn.itcast.test09 الطريقة ، المعلمة هي اسم حقل السمة F1 = C2.GetDeclaredField ("الاسم") ؛ // العملية هي خاصية خاصة ، ولا يُسمح بالعملية. تحتاج إلى تعيين خاصية خاصة SetAccessible (TRUE) ، والتي يمكنها تشغيل الخاصية الخاصة F1.SetAccessible (True) ؛ // تعيين طريقة مجموعة قيمة الاسم ، معلمتان: مثيل المعلمة الأول ، والمعلمة الثانية هي القيمة المحددة F1.set (P11 ، "Wangwu") ؛ // يعادل p.name = "wangwu" ؛ system.out.println (f1.get (p11)) ؛ // ما يعادل P.Name} catch (استثناء e) {e.printstacktrace () ؛}}19. استخدم طرق التشغيل العامة (** يمكن كتابة **)
* استخدم فئة الطريقة لتمثيل الأساليب العادية* رمز // تشغيل الطرق العادية ، مثل تشغيل setName@testpublic void test4 () يلقي استثناء {// الحصول على فئة c4 = class.forname ("cn.itcast.test09.person") الطريقة // c4.getDeclaredMethods () ؛ // الحصول على جميع الأساليب العادية // نقل معلمتين: المعلمة الأولى ، اسم الطريقة ؛ المعلمة الثانية ، نوع المعلمة في طريقة الطريقة M1 = C4.GetDeclaredMethod ("setName" ، string.class) ؛ // دع طريقة setName تنفذ ، تنفيذ القيمة المحددة // استخدم Invoke (p4 ، "niuqi") ؛ تمرير معلمتين: المعلمة الأولى ، مثيل الشخص ؛ المعلمة الثانية ، SET VALUE // بعد تنفيذ طريقة الاستدعاء ، تعادل تنفيذ طريقة setName ، وفي الوقت نفسه ، يتم تعيين قيمة لتكون niuqim1.invoke (p4 ، "niuqi") ؛ system.out.println (p4.getName ()) ؛}* // يجب ضبط الطريقة الخاصة للعملية على صحيح* //m1.setAccessible(true) ؛ in عندما تكون طريقة التشغيل طريقة ثابتة ، لأن الطريقة الثابتة تسمى اسم الفصل. اسم الطريقة ، لا توجد حاجة إلى مثيل للفئة* عند استخدام الانعكاس لتشغيل الطريقة الثابتة ، لا يلزم أي مثيل* في المعلمة الأولى من طريقة الاستقصاء ، كتابة null- m1.invoke (null ، "niuqi") ؛ما سبق هو الإصدار المعزز Java Basic من برنامج Java Web Basic الذي قدمه المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!