在java中导入类
如果我要导入的类与我要导入的类在同一个包中(我试图扩展前一个类,savingsAccount和SpecialSavings都在同一个帐户中),我应该导入java类吗?我还试图从子类访问父类中的私有变量,但它不允许我访问。这是我的密码:在java中导入类,java,class,import,Java,Class,Import,如果我要导入的类与我要导入的类在同一个包中(我试图扩展前一个类,savingsAccount和SpecialSavings都在同一个帐户中),我应该导入java类吗?我还试图从子类访问父类中的私有变量,但它不允许我访问。这是我的密码: package finance; import finance.SavingsAccount; public class SpecialSavings extends SavingsAccount { public SpecialSavings(do
package finance;
import finance.SavingsAccount;
public class SpecialSavings extends SavingsAccount
{
public SpecialSavings(double savingsBalance)
{
super.setBalance(savingsBalance);
}
if (super.getBalance() > 10000)
{
modifyInterestRate(10);
}
}
以下是SavingsAccount的代码:
package finance;
public class SavingsAccount
{
private static double annualInterestRate;
private double savingsBalance;//indicates the amount the saver currently has on deposit
public SavingsAccount(double savingsBalance)//default constructor
{
this.savingsBalance = savingsBalance;
}
public double calculateMonthlyInterest()
{
savingsBalance += savingsBalance * ((annualInterestRate/100)/12);
return savingsBalance;
}
public static void modifyInterestRate(double newValue)
{
annualInterestRate = newValue;
}
/*-------------getters and setters------------------------*/
public void setBalance(double newValue)
{
savingsBalance = newValue;
}
public double getBalance()
{
return savingsBalance;
}
}
protected
,而不是private
super.getBalance()
,这是非法的,您应该将其移动到您的某个方法中。对于示例:
public void modify()
{
if (super.getBalance() > 10000)
{
modifyInterestRate(10);
}
}
protected
,而不是private
super.getBalance()
,这是非法的,您应该将其移动到您的某个方法中。对于示例:
public void modify()
{
if (super.getBalance() > 10000)
{
modifyInterestRate(10);
}
}
否。命名空间中的所有类都可见且可用,无需显式导入。否。命名空间中的所有类都可见且可用,无需显式导入。若要访问
超级类
变量,请使受保护,但更好的解决方案是为私有实例变量制作受保护的setter/getter
,并使用它们。要访问超类
变量,请将设为受保护的
,但更好的解决方案是为私有实例变量制作受保护的setter/getter
,并使用它们。有3个访问修饰符
私人的
保护
公开的
和4访问控制
私人的
违约
保护
4公众
由于您在相同的软件包中,因此无需导入
当您想从父类的子类访问父类私有成员时,非法。
如果该子类在同一个包中,您可以将要访问的父类的成员设为默认值(即不编写任何访问修饰符),或者如果子类在父包之外,则使用受保护的或公共的。有3个访问修饰符
私人的
保护
公开的
和4访问控制
私人的
违约
保护
4公众
由于您在相同的软件包中,因此无需导入
当您想从父类的子类访问父类私有成员时,非法。
如果该子类位于同一个包中,则可以将要访问的父类的成员设为默认值(即不写入任何访问修饰符),或者如果该子类位于父包之外,则使用受保护的或公共的。im使用公共的getter?你不能这样做吗?你可以用getters来做,但不能直接做。如果x
是someclass
的私有成员,那么-someclass.getX()
就可以了someclass.x
不是。下面的规范已经将父类方法设置为私有,因此我无法修改它。正如您在上面的代码中所看到的,我正在使用getter和setter,所以eclipse给了我这个错误消息。“隐式超级构造函数SavingsAccount()未定义。必须显式调用另一个构造函数”这是另一个问题。而不是写在评论中——读一下:我使用的getter是公共的吗?你不能这样做吗?你可以用getters来做,但不能直接做。如果x
是someclass
的私有成员,那么-someclass.getX()
就可以了someclass.x
不是。下面的规范已经将父类方法设置为私有,因此我无法修改它。正如您在上面的代码中所看到的,我正在使用getter和setter,所以eclipse给了我这个错误消息。“隐式超级构造函数SavingsAccount()未定义。必须显式调用另一个构造函数”这是另一个问题。不要在评论中写出来,读一下:显示SavingsAccount
的代码,如果是,这也是作业
,将其添加为标记。显示SavingsAccount
的代码,如果是,这也是作业
,将其添加为标记。