Latest web development tutorials

معدلات جافا

توفر لغة الجافا العديد من المعدلات، وتنقسم الى الفئات التالية:

  • معدل وصول
  • معدل عدم الوصول

معدل يستخدم لتحديد فئة أو أسلوب أو متغير، عادة في مقدمة البيان. من خلال المثال التالي لتوضيح:

public class className {
   // ...
}
private boolean myFlag;
static final double weeks = 9.5;
protected static final int BOXWIDTH = 42;
public static void main(String[] arguments) {
   // 方法体
}

معدل التحكم في الوصول

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

افتراضيا، المعروف أيضا باسم الافتراضي، مرئية داخل نفس الحزمة، لا تستخدم أي معدل.

الخاصة، ليتم تحديد معدل الخاص، واضحة ضمن نفس الفئة.

هناك، من أجل تحديد المعدل العام، مرئية لجميع الطبقات.

يحدد المحمية، معدل لمحمية، لجميع الطبقات والفئات الفرعية ضمن نفس الحزمة مرئية.

المعدل الوصول الافتراضية - لا تستخدم أي كلمات

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

على سبيل المثال:

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

String version = "1.5.1";
boolean processOrder() {
   return true;
}

مدخل خاص معدل القطاع العام والخاص

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

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

مدخل خاص معدل تستخدم في المقام الأول للحصول على تفاصيل تطبيق فئة الحماية والبيانات وراء الطبقة.

الطبقات التالية تستخدم المعدل مدخل خاص:

public class Logger {
   private String format;
   public String getFormat() {
      return this.format;
   }
   public void setFormat(String format) {
      this.format = format;
   }
}

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

وصول الجمهور معدل تهاني الواسمي

وأعلنت أنها الطبقات العامة والطرق والمنشئات، ويمكن أن يكون واجهات أي نوع آخر من الوصول.

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

وظائف التالية تستخدم في التحكم في الوصول العامة:

public static void main(String[] arguments) {
   // ...
}

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

معدلات الوصول المحمي المحمية بواسطة

وأعلنت أنها محمية المتغيرات والأساليب والصانعين في نفس الحزمة يمكن أن يكون أي نوع آخر من الوصول إليها، ويمكن الوصول إليها في مجموعات مختلفة الفئات الفرعية.

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

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

يستخدم الفئة الأصل بعد التعديل الوصول المحمي فرعية تجاوز أسلوب openSpeaker () من الفئة الأصل.

class AudioPlayer {
   protected boolean openSpeaker(Speaker sp) {
      // 实现细节
   }
}

class StreamingAudioPlayer {
   boolean openSpeaker(Speaker sp) {
      // 实现细节
   }
}

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

التحكم في الوصول والميراث

يرجى ملاحظة الطرق التالية رثت القواعد:

  • يجب أن الفئة الأصل أعلنت وسائل عامة في فئة فرعية أيضا أن يكون العام.

  • الفئة الأصل أعلنت أنها محمية الأسلوب في فئة فرعية أو إعلانها محمية، سواء أعلن والجمهور. لا يمكنك أن أعلن الخاص.

  • الفئة الأصل أعلن كطريقة الخاص لا يمكن أن تكون وراثية.


معدل عدم الوصول

من أجل تحقيق عدد من الميزات الأخرى، يوفر جافا أيضا عددا من معدلات عدم الوصول.

يستخدم معدل ثابت لخلق أساليب الفئة والمتغيرات الطبقة.

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

معدل مجردة تستخدم لخلق فئات مجردة وأساليب مجردة.

تزامن والمعدلات المتقلبة، وذلك أساسا عن المواضيع البرمجة.

معدل ثابت

  • المتغيرات ثابتة:

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

  • أساليب ثابتة:

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

الوصول إلى المتغيرات الطبقية وأساليب يمكن استخدامها classname.variablename مباشرة وclassname.methodname من الوصول.

في المثال التالي، يتم استخدام معدل ثابت لخلق أساليب الفئة والمتغيرات الطبقة.

public class InstanceCounter {
   private static int numInstances = 0;
   protected static int getCount() {
      return numInstances;
   }

   private static void addInstance() {
      numInstances++;
   }

   InstanceCounter() {
      InstanceCounter.addInstance();
   }

   public static void main(String[] arguments) {
      System.out.println("Starting with " +
      InstanceCounter.getCount() + " instances");
      for (int i = 0; i < 500; ++i){
         new InstanceCounter();
          }
      System.out.println("Created " +
      InstanceCounter.getCount() + " instances");
   }
}

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

Started with 0 instances
Created 500 instances

تصفيات النهائية

المتغيرات النهائية:

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

وعادة ما يستخدم معدل النهائي معا لخلق ثابت ثابت الدرجة التعديل.

على سبيل المثال:

public class Test{
  final int value = 10;
  // 下面是声明常量的实例
  public static final int BOXWIDTH = 6;
  static final String TITLE = "Manager";

  public void changeValue(){
     value = 12; //将输出一个错误
  }
}

طريقة النهائي

أساليب الفئة الأخيرة ورثت من الفئات الفرعية، ولكن لا يمكن تعديل الفئات الفرعية.

والغرض الرئيسي من هذه الطريقة لمنع يتم تعديل الإعلان النهائي لهذا الأسلوب.

كما هو مبين أدناه، وذلك باستخدام أساليب التعديل إعلان النهائية.

public class Test{
    public final void changeName(){
       // 方法体
    }
}

الفئة الأخيرة

الطبقات النهائية لا يمكن أن تكون موروثة، لا يمكن لفئة يرث أي من خصائص الطبقة النهائية.

على سبيل المثال:

public final class Test {
   // 类体
}

معدل مجردة

فئة مجردة:

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

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

قد تحتوي فئة مجردة أساليب مجردة وأساليب غير مجردة.

على سبيل المثال:

abstract class Caravan{
   private double price;
   private String model;
   private String year;
   public abstract void goFast(); //抽象方法
   public abstract void changeColor();
}

طريقة مجردة

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

أي فئة فرعية يرث فئة مجردة يجب تنفيذ جميع أساليب مجردة من الفئة الأصل، إلا فئة فرعية هي أيضا فئة مجردة.

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

ينتهي الاعلان طريقة مجردة بفاصلة منقوطة، على سبيل المثال: عينة مجردة العامة ()؛

على سبيل المثال:

public abstract class SuperClass{
    abstract void m(); //抽象方法
}
 
class SubClass extends SuperClass{
     //实现抽象方法
      void m(){
          .........
      }
}

معدل متزامنة

طريقة تزامن الكلمة ليعلن نفس الوقت فقط الوصول موضوع واحد. معدل متزامنة يمكن تطبيقها على معدلات الوصول الأربعة.

على سبيل المثال:

public synchronized void showDetails(){
.......
} 

معدل عابرة

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

يتم تضمين التعديل في تعريف بيان المتغيرات لتجهيزها الفئات نوع البيانات والمتغيرات.

على سبيل المثال:

public transient int limit = 55;   // will not persist
public int b; // will persist

معدلات متقلبة

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

قد يكون مرجع كائن المضطربة فارغة.

على سبيل المثال:

public class MyRunnable implements Runnable
{
    private volatile boolean active;
    public void run()
    {
        active = true;
        while (active) // 第一行
        {
            // 代码
        }
    }
    public void stop()
    {
        active = false; // 第二行
    }
}

في ظل الظروف العادية، ويدعو الموضوع المدى () طريقة (في موضوع مفتوح Runnable) في موضوع آخر المكالمات تتوقف طريقة (). إذا تم استخدام القيمة الفعالة في الصف الأول من المخزن المؤقت، في الصف الثاني عندما دورة النشطة كاذبة لا يتوقف.

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