【问题标题】:from c to java, objects [closed]从c到java,对象[关闭]
【发布时间】:2012-03-07 09:44:52
【问题描述】:

我的第一门语言是 C,但我正在上一门使用 java 的课程,我得到了一个关于制作图书馆和制作两个子类书籍和期刊的评估,两者都有不同的东西,但有一些共同的东西,比如电话号码或检查日期和标题,但我的问题是

超类:库 子类:书籍

说的有什么区别

图书馆书=新图书馆和图书馆书=新书?

我可以做一个循环,例如每次我读一本书就说

library book=new books("发送作者、流派等参数")

如果可能的话,我如何打印所有对象(我认为不可能,但就像我说的我来自 C 语言,我对对象了解不多)

或者我需要一个对象数组吗?有没有办法在没有对象数组的情况下放置这本书的对象?

谢谢

【问题讨论】:

  • 我希望老师没有告诉你让Library 成为BookPeriodical 的超类。如果是这样,那就是你正在上课的危险信号。这没有意义。
  • 他说要为书刊做一个超类,你为什么说没有意义?
  • 好的,然后你会想要查看答案。 ;-) 超类不应该是Library。超类是定义BookPeriodical 共同点的对象的一般类型。下面的一些建议是ResourceMaterial,这是可以接受的。如果我这样做,我可能根本不会使用超类。我可能会使用一个接口,例如LibraryCheckout,并让两个类都实现该接口。但您稍后会了解这一点。

标签: java arrays object superclass


【解决方案1】:
library book=new library();

您正在创建一个库对象并将其分配给一个库引用变量。

library book =new books();

您正在创建一个书籍对象并将其分配给图书馆引用变量。 这意味着即使您只能通过 book 变量访问库属性和方法,但对象是一本书,如果您有覆盖的方法,它们将被执行(从 books 代码),您也可以将 book 转换为 books 类。

我不知道你想用数组做什么,但你可以存储在你定义数组的类型(及其子类型)的数组对象中

最后,¿books 是图书馆的子类型?您想查看:What Is Inheritance?

【讨论】:

【解决方案2】:

我会说图书馆有书籍和期刊的集合。我可能有一个超级书籍和期刊课程;我称之为资源:

package model;

public class Library {
    private List<Resource> resources;
    // other methods here.

}

【讨论】:

    【解决方案3】:

    我认为你需要做一个bit of reading。要创建一个类,您可以执行类似的操作

    public class Material {
       // properties and methods here
    }
    

    然后创建一个你做的子类

    public class Book extends Material {
    
    }
    

    跟踪您创建的实例的最简单方法是保留一个数组,并且每次创建实例时,在数组中放置对它的引用。所以

    Material[] library = new Material[100];
    library[0] = new Book();
    

    这种方法的问题是您需要预先知道要创建的书籍数量。您可以改用任何List implementations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 2012-08-24
      • 2014-01-15
      相关资源
      最近更新 更多