وظائف الدائرة لا تتصرف كما هو متوقع في Java Class

StackOverflow https://stackoverflow.com/questions/816226

  •  03-07-2019
  •  | 
  •  

سؤال

لذلك قمت بإنشاء فئة دائرة تضع نصف القطر ، ويجب أن تخرج نصف القطر ، والمحيط والمنطقة ، ومع ذلك ، إذا قمت بإدخال نصف القطر ، نصف القطر ، محيط ، لن يخرج المنطقة ، يظهر فقط 0.0 Heres My Circle.java

public class Circle
{
    private double radius;
    private double PI = 3.14159;

    public void setRadius(double rad)
    {
            radius = rad;
    }

    public double getRadius()
    {
            return radius;
    }

    public double getArea()
    {
            return PI * radius * radius;
    }

    public double getDiameter()
    {
            return 2 * radius;
    }

    public double getCircumference()
    {
            return 2 * PI * radius;
    }

}

وهنا Circledemo.Javahttp://pastie.org/466414- التنسيق لم يكن جيدًا هنا

أولاً أقوم بإدخال نصف القطر، ولكن عندما أقوم باستدعاء getRadius، محيط، منطقة، فإنه يخرج فقط 0.0

هل كانت مفيدة؟

المحلول

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

لاحظت أي شيء غريب هنا؟

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

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top