在java中导入一个类

时间:2011-05-15 04:45:16

标签: java class import

如果我导入的类与我要导入的类位于同一个包中,我是否应该导入java类(我正在尝试扩展前一类,savingsAccount和SpecialSavings都在同一个帐户中)?此外,我试图从子类访问我的父类中的私有变量,但它不会让我。这是我的代码:

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;
}



 }

4 个答案:

答案 0 :(得分:1)

  1. 您无需从同一个包中导入类。
  2. 您不能从不同的类访问类的私有变量(除非它是内部类)如果您想让变量对子类可见,请使用protected,而不是private。< / LI>

    另外,你试图在任何区域之外调用super.getBalance(),这是非法的,你应该把它移到你的某些方法中。对于示例

    public void modify()
    {
        if (super.getBalance() > 10000)
        {
            modifyInterestRate(10);
        }
    }
    

答案 1 :(得分:0)

没有。命名空间中的所有类都是可见的和可用的,无需显式导入它们。

答案 2 :(得分:0)

要访问super class变量,请使用protected,但更好的解决方案是为protected setter/getters实例变量设置private并改为使用它们。

答案 3 :(得分:0)

3 access modifier

  1. 私人
  2. 受保护的
  3. 公共
  4. 4 access control

    1. 私人
    2. 默认
    3. 受保护 4公众
    4. 当您在相同的套餐中时,无需进口

      并且您想要从其子类访问父类私有成员非法。 如果子类位于同一个包中,则可以将要访问的Parent类的成员设置为Default (即不写入任何访问修饰符),或者如果子类位于父包,然后使用受保护或公开。