0
Does anyone solve the error?
11 Answers
+ 1
I tried removing show function and added print statement in calcFee function, called calcFee instead of show, it seems to work
https://code.sololearn.com/cL9dW42bgj5z/?ref=app
+ 3
Variable declared within a method will have local scope to method. And does not exist outside of that method. So declare those outside method, class level scope if you access it outside too.
=> about tutionFee, amount variables..
Yes. Another,
Error: calcStipend() vs clacStipend()
+ 2
Hi, the error thrown is a syntax error. The spelling of the method you have defined and used are different. You have defined clacStipend method but have invoked calcStipend. Please fix the typo and try executing.
+ 1
Hi! have you written this code yourself or copied it?
+ 1
Jayakrishna🇮🇳 is it okay now? But Still getting 0.0 in output
interface BasicExp{
double hostelFee=5000.00, examFee=1200;
void calcFee();
}
class Stipend{
double totalStipend;
double tutionFee=75000;
int cgpa;
void clacStipend(int cgpa){
if(cgpa<7){
totalStipend=tutionFee*0.25;
System.out.println("Exc1");
}
else{
totalStipend =tutionFee*0.40;
}
}
}
class TotalFee extends Stipend implements BasicExp{
double amount;
public void calcFee(){
amount =(hostelFee+examFee+tutionFee)-totalStipend;
}
void show(){
System.out.println(amount);
}
}
class Output{
public static void main(String args[]){
TotalFee tf=new TotalFee();
tf.clacStipend(7);
tf.show();
}
}
+ 1
Avi Jit In your code,
tf.calcFee() ; // call this before
tf.show() ;
// no need int cpga; outside method.
+ 1
Updated the code, i didnt realize that the amount is defined both as local variable and class variable. So when local variable amount was updated in calcFee function it didnt reflect, corrected it.
https://code.sololearn.com/cL9dW42bgj5z/?ref=app
+ 1
Thank you guys!
it was a great quest of bug hunting 😁
https://code.sololearn.com/cr8TvLGq4jyO/?ref=app
0
Prathyusha Muppidi
I have corrected the typos but but getting 0.0 in output. Somehow I think "cgpa" value is not passing. Here is the code:
interface BasicExp{
double hostelFee=5000.00, examFee=1200;
void calcFee();
}
class Stipend{
double totalStipend;
double tutionFee=75000;
int cgpa;
void clacStipend(int cgpa){
if(cgpa<7){
totalStipend=tutionFee*0.25;
System.out.println("Exc1");
}
else{
totalStipend =tutionFee*0.40;
}
}
}
class TotalFee extends Stipend implements BasicExp{
double amount;
public void calcFee(){
amount =(hostelFee+examFee+tutionFee)-totalStipend;
}
void show(){
System.out.println(amount);
}
}
class Output{
public static void main(String args[]){
TotalFee tf=new TotalFee();
tf.clacStipend(7);
tf.show();
}
}
0
Prathyusha Muppidi Amazing it works! But if try my method, how to get access the value of "amount" under the method "show()" ?
0
Prathyusha Muppidi just now, I got the bug actually in my code, I am never using the method "calcFee" to compute the "amount" that is how it's showing the default double value 0.0.
See here this working now:
interface BasicExp{
double hostelFee=5000.00, examFee=1200;
void calcFee();
}
class Stipend{
double totalStipend;
double tutionFee=75000;
int cgpa;
void clacStipend(int cgpa){
if(cgpa<7){
totalStipend=tutionFee*0.25;
System.out.println("Exc1");
}
else{
totalStipend =tutionFee*0.40;
}
}
}
class TotalFee extends Stipend implements BasicExp{
double amount;
public void calcFee(){
amount =(hostelFee+examFee+tutionFee)-totalStipend;
}
void show(){
System.out.println(amount);
}
}
class Output2{
public static void main(String args[]){
TotalFee tf=new TotalFee();
tf.clacStipend(7);
tf.calcFee();
tf.show();
}
}