JAVA - 使用另一个方法类的方法

时间:2013-05-07 03:32:15

标签: java class methods

我有两节课;第一个有这个代码:

public class Artigo {

private String descricao;
private double preco;
private int stockCorrente;

public Artigo(String descricao, double preco){
    Artigo(descricao, preco, 0);

}
private void Artigo(String descricao, double preco, int stockCorrente){
    this.descricao = descricao;
    if (preco < 0 || stockCorrente < 0) {
        System.out.println("Erro: Valores negativos.");
        System.exit(0);
    } else
        this.preco = preco;
        this.stockCorrente = stockCorrente;
}
public String getDescricao(){
    return descricao;
}
public double getPreco(){
    return preco;
}
public void setPreco(double preco){
        this.preco = preco;
}
public int getStockCorrente(){
    return stockCorrente;
}
public boolean isStockEnough(int nUnits){
    if (stockCorrente < nUnits){
        return false;
    }else{
        return true;
    }
}
public boolean sell(int nUnits){
    if (isStockEnough(nUnits)){
        stockCorrente = stockCorrente - nUnits;
        return true;
    }else{
        return false;
    }
}
public void recharge(int nUnits){
    stockCorrente = nUnits;
}
public boolean equals(Artigo otherProducts){
    return this.descricao.equalsIgnoreCase(otherProducts.descricao);
}
public String toString(){
    return descricao + ", preço: " + preco + ", stock: " + stockCorrente;
}

然后是我的另一堂课:

public class Pack {

private String descricao;
private int nArtigos;
private double DESCONTO;

public Pack(String descricao, double desconto){
    this.descricao = descricao;
    this.DESCONTO = desconto; 
}
public String getDescricao(){
    return descricao;
}   
public int getnArtigos(){
    return nArtigos;    
}
public double getDesconto(){
    return DESCONTO;
}
public int getStockCorrente(){
    return stockCorrente;
}
public boolean equals(Pack otherpacks){
    return this.descricao.equalsIgnoreCase(otherpacks.descricao);
}
public String toString(){
    return descricao + " com os artigos [ " + " ], com desconto de " + DESCONTO + ", com preco de " + "PRECO" + ", com stock corrente de " + "STOCK"   ;
}
public boolean existArtigo(Artigo otherProducts){
}
public boolean addArtigo(Artigo newArtigo){ 
}
public boolean haveStock(int nUnits){   
}
public boolean sell(int nUnits){    
}
public double getPreco(){   
}

在本课程中,所有方法都是必需的。 其中最重要的部分是空的,因为我不知道该怎么做。 我的意思是,我知道该怎么做,我不知道怎么做。

请求是:向包中添加文章,获取每个文章的名称和当前库存。在这里,我需要让他们连接其他类的方法,对吧?但是怎么样?

3 个答案:

答案 0 :(得分:1)

你的问题是将一个类数据访问到其他类这可以通过使用get方法来完成,即使你可以通过保持set方法来设置数据。 例如:

class A
{
private int price;

public int getPrice()
{
return price;
}

public void setPrice()
{
this.price=price;
}
}

现在,如果我想访问B类价格数据,那么

class B
{
//create object of class A in any method where you want to access price data
A a=new A();
int price =a.getPrice();
}

答案 1 :(得分:0)

你应该在Pack中声明一个对象Artigo

private Artigo artigo;

然后你可以在构造函数包

中初始化这个对象
public Pack(String descricao, double desconto){
artigo =new Artigo(descricao,desconto);
this.descricao = descricao;
this.DESCONTO = desconto;
}

之后你可以使用artigo的方法

artigo.sell(1);

如你所愿

答案 2 :(得分:0)

或者您可以从基类扩展

public class Pack extends Artigo{
    public Pack(String descricao, double desconto){
            super(descricao,desconto);
}
}

如果要访问基类的方法,只需输入super.methodname;