Latest web development tutorials

طريقة جافا

في الفصول القليلة الأولى، ونحن غالبا ما تستخدم لSystem.out.println ()، ثم ما هو عليه؟

println () هو أسلوب (الطريقة)، والنظام هو من الدرجة نظام (الفئة)، من هو كائن الإخراج القياسي (كائن). استخدام هذا البيان هو دعوة الطبقة نظام الإخراج القياسي نظام الاعتراض خارج طريقة println ().

فما هو السبيل لتحقيق ذلك؟

ضبط طريقة جافا البيانات التي تؤدي معا وظيفة.

  • الطريقة هو مزيج أمر حل فئة من خطوة المشاكل
  • الطرق المدرجة في فئة أو كائن
  • تم إنشاء الأسلوب في البرنامج، المشار إليها في مكان آخر

أساليب محددة

بشكل عام، تعريف طريقة التي تتألف منها الجملة التالي:

修饰符 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

يتضمن الأسلوب رأس طريقة وهيئة الأسلوب. هنا كل جزء من العملية:

  • التعديل: التعديل، الذي هو اختياري، لنقول للمترجم كيفية استدعاء الأسلوب. وهو يحدد نوع الوصول للطريقة.
  • العودة نوع القيمة: طريقة قد ترجع قيمة. returnValueType هو الأسلوب بإرجاع نوع بيانات القيمة. بعض طرق أداء العمل المطلوب، ولكن لا قيمة الإرجاع. في هذه الحالة، returnValueType الكلمة الفراغ.
  • اسم الأسلوب: الاسم الفعلي للطريقة. اسم الأسلوب وقائمة المعلمة تشكل معا توقيع الأسلوب.
  • المعلمة نوع: المعلمة مثل نائبا. عندما يتم استدعاء الأسلوب، مرت القيمة إلى المعلمة. وهذا ما يسمى قيمة حجة أو متغير. قائمة المعلمة عدد من نوع المعلمة من طريقة، من اجل والمعلمات. المعلمة اختيارية، قد لا يحتوي على طريقة أية معلمات.
  • طريقة الجسم: يتألف أسلوب بيان محدد لتحديد وظيفة من طريقة.

مثل:

public static int age(int birthday){...}

هل يمكن أن يكون أكثر من معلمة واحدة:

static float interest(float principal, int year){...}

ملاحظة: في يشير بعض الطرق لغات أخرى لهذه العملية وظائف. وهناك نوع عودة غير باطلا من قيمة الإرجاع من استدعاء أسلوب وظيفة، الأسلوب بإرجاع قيمة العائد من نوع باطلة تسمى العملية.

أمثلة

يحتوي الأسلوب التالي معلمتين NUM1 وNUM2، تقوم بإرجاع القيمة القصوى من هذه المعلمتين.

/** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

طريقة الاحتجاج

جافا يدعم طريقتان لاستدعاء الأسلوب، وفقا لما إذا كانت قيمة طريقة العائد لاختيار.

عند استدعاء البرنامج وسيلة، ويسمى برنامج للسيطرة على الأسلوب. عندما يتم تنفيذ بيان عودة استدعاء أسلوب أو حتى الجسم من الأسلوب عند إغلاق السيطرة قوسين عودة إلى البرنامج.

عندما يعود طريقة قيمة، يتم التعامل مع الاحتجاج طريقة عموما كقيمة. على سبيل المثال:

int larger = max(30, 40);

إذا كانت قيمة طريقة العائد هو باطل، ويجب أن يكون استدعاء الأسلوب بيان. على سبيل المثال، println الأسلوب بإرجاع باطلا. الدعوة التالية هي بيان:

System.out.println("Welcome to Java!");

مثال

يوضح المثال التالي كيفية تعريف أسلوب، وكيف أن نسميها:

public class TestMax {
   /** 主方法 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println("The maximum between " + i +
                    " and " + j + " is " + k);
   }

   /** 返回两个整数变量较大的值 */
   public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result; 
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

The maximum between 5 and 2 is 5

يحتوي هذا البرنامج على الأسلوب الرئيسي وطريقة كحد أقصى. يتم استدعاء أسلوب JVM الرئيسي، بالإضافة إلى ذلك، الرئيسية وغيرها من الأساليب لا فرق.

رئيس الأسلوب الرئيسي هو نفس المثال المعروض، مع المعدلات العامة وثابتة، وقيمة من نوع عودة باطل، اسم الأسلوب هو الرئيسي، بالإضافة مع سلسلة المعلمات نوع []. سلسلة [] أن الحجة هي مجموعة من السلاسل.


الفراغ الكلمات الرئيسية

يوضح هذا القسم كيفية تعريف واستدعاء أسلوب الفراغ.

يعلن المثال التالي أسلوب المسمى printGrade، والذي يطلق عليه لطباعة النتيجة معين.

مثال

public class TestVoidMethod {

   public static void main(String[] args) {
      printGrade(78.5);
   }

   public static void printGrade(double score) {
      if (score >= 90.0) {
         System.out.println('A');
      }
      else if (score >= 80.0) {
         System.out.println('B');
      }
      else if (score >= 70.0) {
         System.out.println('C');
      }
      else if (score >= 60.0) {
         System.out.println('D');
      }
      else {
         System.out.println('F');
      }
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

C

هنا طريقة printGrade هو وسيلة لنوع الفراغ، فإنه لا يرجع قيمة.

يجب أن يكون استدعاء الأسلوب الفراغ بيان. وبالتالي، فإنه هو الأسلوب الرئيسي للخط الثالث يدعو في شكل بيان. مثل أي بيان تنتهي بفاصلة منقوطة مثل.


يمر المعلمات من حيث القيمة

استدعاء أسلوب عندما تحتاج إلى توفير المعلمات، يجب توفير قائمة المعلمات وفقا للترتيب المحدد.

على سبيل المثال، الأسلوب التالي لالمستمر ن تايمز بطباعة الرسالة:

public static void nPrintln(String message, int n) {
  for (int i = 0; i < n; i++)
    System.out.println(message);
}

مثال

يوضح المثال التالي تأثير مرت من حيث القيمة.

البرنامج يخلق أسلوب يستخدم لتبادل اثنين من المتغيرات.

public class TestPassByValue {

   public static void main(String[] args) {
      int num1 = 1;
      int num2 = 2;

      System.out.println("Before swap method, num1 is " +
                          num1 + " and num2 is " + num2);

      // 调用swap方法
      swap(num1, num2);
      System.out.println("After swap method, num1 is " +
                         num1 + " and num2 is " + num2);
   }
   /** 交换两个变量的方法 */
   public static void swap(int n1, int n2) {
      System.out.println("\tInside the swap method");
      System.out.println("\t\tBefore swapping n1 is " + n1
                           + " n2 is " + n2);
      // 交换 n1 与 n2的值
      int temp = n1;
      n1 = n2;
      n2 = temp;

      System.out.println("\t\tAfter swapping n1 is " + n1
                           + " n2 is " + n2);
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Before swap method, num1 is 1 and num2 is 2
        Inside the swap method
                Before swapping n1 is 1 n2 is 2
                After swapping n1 is 2 n2 is 1
After swap method, num1 is 1 and num2 is 2

تمرير معلمتين إلى استدعاء الأسلوب المبادلة. ومن المثير للاهتمام، بعد أن يتم استدعاء الأسلوب، لم يتغير قيمة الوسيطة.


طرق طاقتها

يستخدم ماكس طريقة ما سبق ينطبق فقط إلى int. ولكن إذا كنت ترغب في الحصول على القيمة القصوى من اثنين بيانات الفاصلة العائمة اكتبه؟

الحل هو إيجاد مقياس آخر بنفس الاسم ولكن بطريقة مختلفة، كما هو موضح في التعليمات البرمجية التالية:

public static double max(double num1, double num2) {
  if (num1 > num2)
    return num1;
  else
    return num2;
}

إذا كان الاتصال يتم تمرير طريقة ماكس معلمة كثافة العمليات، يتم استدعاء أسلوب الحد الأقصى من ذي الحجة كثافة العمليات.

إذا مرت نوع المعلمة مزدوجة، ويسمى نوع مزدوج طريقة خبرة كحد أقصى، وهذا ما يسمى طريقة الحمولة الزائدة.

أن الطريقتين من فئة لها نفس الاسم، ولكن مع قائمة المعلمة مختلفة.

جافا مترجم وفقا لتوقيع الأسلوب لتحديد الطريقة التي ينبغي أن تسمى.

طريقة التحميل الزائد يمكن أن تجعل البرنامج أكثر مقروءا. طريقة التنفيذ هو بشكل وثيق يجب أن المهام ذات الصلة استخدام نفس الاسم.

يجب أن يكون أساليب طاقتها قائمة المعلمة مختلفة. لا يمكنك تستند فقط على أنواع مختلفة من المعدلات أو العودة إلى أساليب طاقتها.


نطاق متغير

متغير مجموعة هو جزء من البرنامج حيث المتغير يمكن الرجوع إليها.

ويطلق على المتغيرات في تعريف الأسلوب المتغيرات المحلية.

نطاق الإعلانات المتغير المحلي من البداية حتى نهاية الكتلة التي تحتوي عليه.

يجب أن يتم تعريف المتغيرات المحلية قبل أن يتمكنوا من استخدامها.

طريقة تغطي مجموعة كاملة من طريقة المعلمات. المعلمة هو في الواقع المتغير المحلي.

التهيئة جزء متغير من لبيان حلقة، في نطاق دورها في الدورة.

لكن بيان متغير الجسم حلقة هو بيان نطاقه منه حتى نهاية الحلقة. وهو يحتوي على متغير أعلن على النحو التالي:

يمكنك بطريقة وكتل غير المتداخلة مختلفة تعلن مرارا متغير محلي يحمل نفس الاسم، ولكن لا يمكن أن تتداخل داخل كتلة مرتين التصريح المتغيرات المحلية.

باستخدام معلمات سطر الأوامر

أحيانا كنت تريد تشغيل البرنامج عندما مرت بعد ذلك الرسالة. هذا يعتمد على تمرير وسائط سطر الأوامر إلى الوظيفة الرئيسية () لتحقيقه.

ويتبع سيطة سطر الأوامر معلومات عن وقت التنفيذ بعد اسم البرنامج.

أمثلة

يطبع البرنامج التالي جميع وسائط سطر الأوامر:

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){
         System.out.println("args[" + i + "]: " +
                                           args[i]);
      }
   }
}

كما هو موضح أدناه، قم بتشغيل البرنامج:

java CommandLine this is a command line 200 -100

النتائج على النحو التالي:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

منشئ

عند إنشاء كائن عند استخدام منشئ لتهيئة الكائن. وكان في منشئ فئة الذي يحمل نفس الاسم، ولكن البناء لا قيمة له العودة.

وغالبا ما تستخدم منشئ إلى مثيل فئة القيم الأولية متغيرة، أو تنفيذ الخطوات الأخرى اللازمة لإنشاء كائن كامل.

أم لا كنت منشئ العرف، وجميع الصفوف الدراسية منشئ لأن جافا يوفر تلقائيا منشئ افتراضي، التي يتم تهيئة كافة الأعضاء إلى الصفر.

مرة واحدة كنت قد حددت منشئ الخاص بك، سوف تفشل منشئ افتراضي.

أمثلة

هنا هو مثال باستخدام منشئ:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

يمكنك استدعاء مثل هذا المنشئ تهيئة كائن:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.x + " " + t2.x);
   }
}

معظم الوقت في حاجة الى المعلمة منشئ.

أمثلة

هنا هو مثال باستخدام منشئ:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass(int i ) {
      x = i;
   }
}

يمكنك استدعاء مثل هذا المنشئ تهيئة كائن:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

النتائج على النحو التالي:

10 20

معلمة متغير

اعتبارا من جدك 1.5، دعم جافا يمر نفس النوع من المعلمات المتغير إلى أسلوب.

أعلن المعلمات متغير من طريقة هي كما يلي:

typeName... parameterName

في بيان الأسلوب المحدد نوع المعلمة بعد إضافة علامة القطع (...).

وهناك طريقة يمكن فقط تحديد معلمة متغير واحد، يجب أن يكون آخر طريقة المعلمة. يجب أن تعلن أية معلمات مشتركة قبل ذلك.

أمثلة

public class VarargsDemo {

   public static void main(String args[]) {
      // 调用可变参数的方法
	  printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

The max value is 56.5
The max value is 3.0

وضع اللمسات الأخيرة) طريقة (

جافا يسمح لك لتحديد الطريقة التي يتم استدعاء كائن قبل المدمر جمع القمامة (إعادة التدوير)، وهذا ما يسمى طريقة وضع الصيغة النهائية ()، والذي يستخدم لمسح الأجسام استردادها.

على سبيل المثال، يمكنك استخدام الصيغة النهائية () لضمان أن يتم إغلاق ملف مفتوح الكائن.

في وضع الصيغة النهائية () الأسلوب، يجب عليك تحديد العملية التي يتعين القيام بها عندما يتم تدمير الكائن.

وضع اللمسات الأخيرة () هو الشكل العام:

protected void finalize()
{
   // 在这里终结代码
}

الكلمة المحمية تصفيات، فإنه يضمن أن طريقة وضع الصيغة النهائية () أبدا يسمى رمز خارج الصف.

بطبيعة الحال، يمكن أن يتم جمع القمامة جاوة تلقائيا من قبل JVM. إذا كنت تستخدم هذا الدليل، يمكنك استخدام الطريقة المذكورة أعلاه.

أمثلة

public class FinalizationDemo {  
    public static void main(String[] args) {  
        Cake c1 = new Cake(1);  
        Cake c2 = new Cake(2);  
        Cake c3 = new Cake(3);  
          
        c2 = c3 = null;  
        System.gc(); //调用Java垃圾收集器
    }  
}  
  
class Cake extends Object {  
    private int id;  
    public Cake(int id) {  
        this.id = id;  
        System.out.println("Cake Object " + id + "is created");  
    }  
      
    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("Cake Object " + id + "is disposed");  
    }  
}  

تشغيل التعليمات البرمجية أعلاه، نتائج الإخراج هي كما يلي:

C:\1>java FinalizationDemo  
Cake Object 1is created  
Cake Object 2is created  
Cake Object 3is created  
Cake Object 3is disposed  
Cake Object 2is disposed