+1 امتیاز
قبل در برنامه نویسی توسط (102 امتیاز)
ویرایش شده قبل توسط

کلاس Main در زمان کامپایل خطای cannot find symbol برای متغییر bottom می دهد:

package javatest01;

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {

        Kasr k = new Kasr(3, 7);
        k.add(2, 3);
        JOptionPane.showMessageDialog(null, "top is = " + k.top);
        JOptionPane.showMessageDialog(null, "bottom is = " + bottom);
    }
}
package javatest01;

public class Kasr {

    int top;
    int bottom;

    public Kasr(int t, int b) {
        top = t;
        bottom = b;
    }

    void add(int a, int b) {
        top = top * b + a * bottom;
        bottom = b * bottom;
    }
}
قبل توسط (1.1هزار امتیاز)
لطفا مشخص کنید چه خطایی و در چه خطی دارید.
قبل توسط (1.1هزار امتیاز)
اگر منظورتون قرار دادن کد ها بصورت syntax highlight در سایت هست، می تونید از لینک زیر کمک بگیرید: https://javabyab.com/183

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

نه در کلاس Main و  نه در متد متغییری با نام bottom وجود ندارد و این خطا به این دلیل است.

متغییر k به شیئی از کلاس Kasr اشاره می کند که آن شئ فیلدی به نام bottom دارد:

public class Main {

    public static void main(String[] args) {

        Kasr k = new Kasr(3, 7);
        k.add(2, 3);
        JOptionPane.showMessageDialog(null, "top is = " + k.top);
        JOptionPane.showMessageDialog(null, "bottom is = " + k.bottom);
    }
}

سوالات مشابه

+1 امتیاز
1 پاسخ 640 بازدید
+1 امتیاز
1 پاسخ 732 بازدید
+1 امتیاز
1 پاسخ 756 بازدید
0 امتیاز
1 پاسخ 697 بازدید
0 امتیاز
0 پاسخ 299 بازدید
0 امتیاز
1 پاسخ 539 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
...