链接到另一个java类

时间:2014-02-06 18:17:37

标签: java

我在一个文件夹中有三个类:

Waehrung 与Englisch的货币相同!

public abstract class Waehrung {
    public abstract double dollarBetrag();
}

USDOLLAR

public class UsDollar extends Waehrung {
    private double wert;

    public UsDollar(double wert){
        this.wert = wert;
    }

    public double dollarBetrag(){
        return wert;
    }
}

public class Yen extends Waehrung{

double wert;
private static double kurs;

public Yen(double wert){
    this.wert = wert;
}

public void setKurs(double kurs){
    this.kurs = kurs;
}

public double dollarBetrag(){
    return wert * kurs;
}

}

现在我想要另一个应该利用其他的java类: 银行

public class Bank {
    public static void main(String[] args){
        Yen yen = new Yen(34);
        Yen.setKurse = (1.0/130);
        System.out.println(yen.dollarBetrag);
    }
}

我的问题是,我不明白如何链接其他类!我用import package做了一些尝试,但它从未正确编译!我怎么了?或者我该如何解决这个问题!

3 个答案:

答案 0 :(得分:2)

您似乎没有将课程放在任何包中。看这里。

<强> com.currency.Waehrung

package com.currency;
public abstract class Waehrung {
    public abstract double dollarBetrag();
}

com.currency.USDollar class

package com.currency;
public class UsDollar extends Waehrung {
    private double wert;

    public UsDollar(double wert){
        this.wert = wert;
    }

    public double dollarBetrag(){
        return wert;
    }
}

<强> com.currency.Yen

package com.currency;
public class Yen extends Waehrung{

double wert;
private static double kurs;

public Yen(double wert){
    this.wert = wert;
}

public void setKurs(double kurs){
    this.kurs = kurs;
}

public double dollarBetrag(){
    return wert * kurs;
}
}

现在,您已将所有这些类放在com.currency包中。这意味着您确保com\currency文件夹中存在这些类文件(.class)文件。

现在,您可以编写课程

import com.currency.*;
public class Bank {
    public static void main(String[] args){
        Yen yen = new Yen(34);
        yen.setKurs(1.0/130);
        System.out.println(yen.dollarBetrag());
    }
}

现在您可以直接使用这些类。确保文件夹 com \ currency 存在。

您在Bank课程中写的错误是:

Yen.setKurse = (1.0/130);
System.out.println(yen.dollarBetrag);

在第一行中,您使用了Yen这是类名。你应该使用yen作为参考,因为setKurs()是一个方法。同一行中的另一个错误是setKurs()是方法名称而不是实例变量。所以你也应该调用setKurs(),setKurse是错误的'e'是一个错字。

接下来,dollarBetrag是一种方法,因此您应该yen.dollarBetrag()

谢谢:)

答案 1 :(得分:0)

如果您想全部导入它们:

import com.yourpackage.money.*;

如果您的意思是保留对它们的某种形式的引用,我通常会将它们存储在MapArray中。帮助实现toString或以某种方式获取此存储的金钱名称。

Map<String, Waehrung> currency = new HashMap<>();

Waehrung[] money = new Waehrung[]{
    new Yen(),
    new Dollar()
    // etc...
}

for (Waehrung m : money) {
    currency.put(m.getName(), m);
}

答案 2 :(得分:0)

如果类不在同一个包中那么你必须使用import语句应该是那样的

import yourpackageNameofYen.Yen;
import yourpackageNameofUsDollar.USDollar;

您必须将这两个import语句放在第三类Bank

的包声明之下

例如

Package a;
import yourpackageNameofYen.Yen;
    import yourpackageNameofUsDollar.USDollar;
public class Bank {
        public static void main(String[] args){
            Yen yen = new Yen(34);
            Yen.setKurse = (1.0/130);
            System.out.println(yen.dollarBetrag);
        }
    }