اذهب إلى المحتوى

السؤال

نشر (معدل)
package Java;

public class Fan {
  final SLOW =1;
  final MEDIUM =2;
  final FAST =3;
  private int speed =1;
  private boolean on =false ;
  private double radius =5;
  String color blue;

  public Fan(){

  }

  public void setSpeed(int speed){
    this.speed = speed;
  }

  public void setOn(boolean on){
    this.on = on;
  }

  public void setRadius(double radius){
    this.radius = radius;
  }

  public void setColor(String color){
    this.color = color;
  }

  public int getSpeed(){
    return speed;
  }

  public boolean getOn(){
    return on;
  }

  public double getRadius(){
    return radius;
  }

  public String getColor(){
    return color;
  }

  public String toString(){

    //اذا كانت المروحة on
    if (.......)
      return "speed "+speed+"\n"+"color"+color+"\n"+"radius"+radius+"\n";
    //اذا كانت المروحة not on
    else {
      return "color"+color+"\n"+"radius"+radius+"\n";
    }
  }
}

كيف اكتب شرط 

onوnot onفي البرنامج؟

وهل هناك طريقة اخرى للحل؟

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

نحن نستعمل الدالة toString في نفس الصنف، أي نفس class لذلك لاداعِ لاستعمال الmethod مثل get set ولكن الأفضل استعمالها مثل:

  public String toString(){

    //اذا كانت المروحة on
    if (getOn())
      return "speed "+speed+"\n"+"color"+color+"\n"+"radius"+radius+"\n";
    //اذا كانت المروحة not on
    else {
      return "color"+color+"\n"+"radius"+radius+"\n";
    }
  }

أي ماعلينا فعله هو استدعاء الدالة ()getOn في المكان الذي نريد فيه استدعاء المتغير، حيث بعد الاستدعاء سيتم تعويض قيمة المتغير on في هذا السطر لأن الدالة تعمل على return on أي سيتم فحص الشطر كما هو مطلوب

يمكن كتابة :

if ( on ) {
	..
}

مباشرة، حيث أن private متاحة ضمن نفس الصنف، إنما لايمكن الوصول لها من الغرض Object مباشرة.

  • 0
نشر

يمكنك استعمال قيمة on مباشرة لأنك داخل نفس الكلاس.

 public String toString(){

    //اذا كانت المروحة on
    if (on)
      return "speed "+speed+"\n"+"color"+color+"\n"+"radius"+radius+"\n";
    //اذا كانت المروحة not on
    else {
      return "color"+color+"\n"+"radius"+radius+"\n";
    }
  }

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...