जब मैं इस कोड को चलाता हूं तो मुझे 1500 के बजाय 0 क्यों मिलता है?

public class Department {
    private double rate = 0.0;

    public Department {
    }

    public getRate(){
        return rate;
    }

    public setRate(){
        rate = 1 + 2;
    }
}

public class Employe extends Department {

    private double salary = 0;

    public Employe {
    }

    public calculateSalary(){
          salary = getRate() * 500;
    }
}

public static void main(String[] args) throws IOException {

    Department department = New Department();
    department.setRate();

    Employe employe = new Employe();
    System.out.println(employe.calculateSalary());
}
-3
INeedhelp 15 अक्टूबर 2017, 06:48
क्या आप सुनिश्चित हैं कि कोड बिल्कुल संकलित है? इसमें कुछ सिंटैक्स त्रुटियां हैं, उदाहरण के लिए आप अपनी कंस्ट्रक्टर परिभाषाओं में कोष्ठक खो रहे हैं, और आपने कोई विधि वापसी प्रकार निर्दिष्ट नहीं किया है।
 – 
Zoey Hewll
15 अक्टूबर 2017, 06:56

2 जवाब

आपने एक Department बनाया, और फिर उसके rate को 3 पर सेट किया। फिर आपने एक Employee बनाया, उसकी दर निर्धारित नहीं की, इसलिए उसका rate 0 है।

जब आप new कहते हैं तो आपको एक नई वस्तु मिलती है। आप जो चाहते हैं उसे प्राप्त करने के लिए कोड को इसमें बदलें:

Employee employee = New Department();
employee.setRate();
System.out.println(employe.calculateSalary());

आपका पूरा कोड अजीब है, हालांकि, एक विभाग में कर्मचारी हैं। एक कर्मचारी एक प्रकार का विभाग नहीं है। हम एक्सटेंड का उपयोग इस अर्थ में करते हैं कि एक्स एक प्रकार का वाई है।

0
TofuBeer 15 अक्टूबर 2017, 06:53

बच्चा माता-पिता चर का वारिस करता है। हालाँकि, विभाग और कर्मचारी अलग-अलग वस्तु हैं इसलिए वे चर साझा नहीं करते हैं। कृपया इस कोड को आजमाएं:

Employe employe = new Employe();
employe.setRate();
System.out.println(employe.calculateSalary());
0
yihhe 15 अक्टूबर 2017, 06:56