"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تظهر لي رسالة الخطأ \"لا يمكن عمل مرجع ثابت إلى حقل غير ثابت\" في Java؟

لماذا تظهر لي رسالة الخطأ \"لا يمكن عمل مرجع ثابت إلى حقل غير ثابت\" في Java؟

تم النشر بتاريخ 2024-11-07
تصفح:528

Why am I getting the \

تجنب الخطأ "لا يمكن إنشاء مرجع ثابت إلى حقل غير ثابت"

في برمجة Java، "لا يمكن إنشاء مرجع ثابت إلى حقل غير ثابت" يحدث خطأ "مرجع إلى حقل غير ثابت" عند محاولة الوصول إلى حقل غير ثابت (المعروف أيضًا باسم متغير المثيل) ضمن طريقة ثابتة.

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

لحل هذا الخطأ، من الضروري تعديل التعليمات البرمجية لاتباع بناء جملة Java المناسب:

  • > إزالة المراجع الثابتة إلى الحقول غير الثابتة:

    • يجب إزالة الإشارات إلى الرصيد ومعدل الفائدة السنوي ضمن الطريقة الرئيسية بسبب إنها متغيرات مثيل يتم الوصول إليها من خلال مرجع كائن (على سبيل المثال، account.getBalance(), account.getAnnualInterestRate())
  • > إنشاء طرق غير ثابتة لمثيلات الطرق :

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

public static void main(String[] args) {
    Account account = new Account(1122, 20000, 4.5);

    account.withdraw(2500);
    account.deposit(3000);
    System.out.println("Balance is "   account.getBalance());
    System.out.println("Monthly interest is "   account.getAnnualInterestRate() / 12);
    System.out.println("The account was created "   account.getDateCreated());
}
الرمز المنقح لطرق السحب والإيداع:

public void draw(double drawAmount) {
    الرصيد -= drawAmount;
}

الإيداع العام الفارغ (مبلغ الإيداع المزدوج) {
    الرصيد = مبلغ الإيداع؛
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3