【问题标题】:How to use a class argument in another class in Java如何在 Java 中的另一个类中使用类参数
【发布时间】:2018-01-28 19:02:49
【问题描述】:

首先我要提一下,我是一名初级程序员并正在努力学习。 简而言之,我的问题是这样的:我有 3 个类(主要、作者、书籍)

public static void main(String[] args) {
    Author a=new Author();
    Book b=new Book();
    //creating author
    a.setName("Paulo Coelho", "PC@gmail.com");
    System.out.println("Author : " + a.getName() + "\ne-mail: "+ a.getEmail());
    //creating book
    b.setName("Alchimist");
    b.setYear(2010);
    b.setPrice(15.7);

}
public class Author {
    public static String name;
    public static String email;
    public static void setName(String n, String e){
        name=n;
        email=e;
    }
    public String getName(){
        return name;
    }
    public String getEmail(){
        return email;
    }


public class Book {
    String name;
    int year;
    double price;
    Author a;


    public void setName(String b){
        name=b;
    }
    public void setYear(int y){
        year=y;
    }
    public void setPrice(double p){
        price=p;
    }

    public String getName(){
        return name;
    }
    public int getYear(){
        return year;
    }
    public double getPrice(){
        return price;
    }
    public String getBookDetails(){
        ?????????????
    }
}

如何在作者和书籍之间建立联系,以便在设置书籍详细信息时将它们链接到第一个创建的作者和 当我打印我的 getDetails 时,我会得到正确书籍的详细信息?

【问题讨论】:

标签: java class arguments


【解决方案1】:

您的Book 类中已经有一个属性Author a;

您需要为 Book 类中的权限添加一个设置器,以便您可以从您的 main 方法中设置它:

 // in Book class
 public void setAuthor(Author author){
      this.a = author; 
 }

 // in main:
 b.setAuthor(a);
 b.setName("Alchimist");

之后,您可以在方法getBookDetails() 中访问指定作者的属性。


顺便说一句

在 Java 中,标识符名称的长度实际上是无限的。长标识符名称不会受到任何惩罚。所以在选择名字的时候不要吝啬字母。例如。在您的示例中总是使用author 而不是abook 而不是b。从长远来看,这将使您的生活更轻松...

【讨论】:

    猜你喜欢
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多