- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这可能是一个初级问题。但是,我已经读完了 Java Programming for the Absolute Beginner 的第 5 章,并接近了挑战部分。我不太明白这个问题。
问题是:
"Create a Holder class so that it maintains a list of objects, possibly represented by Strings, which you can add to or take from by using its methods. Hint: try overriding the Vector class."
我看过 int [] [] convert --to--> Vector<Vector<Double>>页面并在最后一个回复中看到了一个简单的 Vector 示例,但我仍然难以理解这个问题。
我认为我的主要问题是了解如何覆盖 Holder 类。
这个问题的答案可能会帮助许多新的 Java 程序员理解 vector 和重写。
供您引用:
第二个问题是:
"Create a subclass of the Holder class. Use your imagination. Consider a Refrigerator class that holds food and keeps it cold, or a Wallet that holds money, perhaps. Try overriding methods defined in the Holder class. Try creating some overloaded methods as well.
这是一个完整的问题,我会在本章中添加一些实例,让你更好地理解我的问题出在哪里。我不想要编码答案(除非必要),只是用更基本的术语解释这个问题。
这些是本章中提供的示例:这些是我必须纳入答案的技术吗?
简单类定义:
public class SimpleCardDeck {
String[] cards = {“2C”, “3C”, “4C”, “5C”, “6C”, “7C”, “8C”,
“9C”, “10C”, “JC”, “QC”, “KC”, “AC”,
“2D”, “3D”, “4D”, “5D”, “6D”, “7D”, “8D”,
“9D”, “10D”, “JD”, “QD”, “KD”, “AD”,
“2H”, “3H”, “4H”, “5H”, “6H”, “7H”, “8H”,
“9H”, “10H”, “JH”, “QH”, “KH”, “AH”,
“2S”, “3S”, “4S”, “5S”, “6S”, “7S”, “8S”,
“9S”, “10S”, “JS”, “QS”, “KS”, “AS”};
public void list() {
for (int c=0; c < cards.length; c++) {
System.out.print(cards[c] + “ “);
}
}
}
创建和测试对象:
public class SimpleCardDeckTest {
public static void main(String args[]) {
SimpleCardDeck deck = new SimpleCardDeck();
System.out.println(deck.cards[0]);
System.out.println(deck.cards[10]);
System.out.println(deck.cards[51]);
deck.list();
}
}
一个类的例子:
public class Automobile {
public static final String DEFAULT_COLOR = “white”;
public String name;
public boolean running;
public String color;
public int numMiles;
public Automobile() {
this(false, DEFAULT_COLOR, 0);
}
public Automobile(boolean running, String color, int numMiles) {
this.running = running;
this.color = color;
this.numMiles = numMiles;
name = null;
}
public void start() {
if (running) {
System.out.println(“Can’t start, already running.”);
}
else {
running = true;
System.out.println(“The automobile has been started.”);
}
}
public void shutOff() {
if (!running) {
System.out.println(“Can’t shut off, not running.”);
}
else {
running = false;
System.out.println(“The automobile has been shut off.”);
}
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void drive() {
if (running) {
numMiles += 10;
System.out.println(“You have driven 10 miles”);
}
else {
System.out.println(“You need to start the automobile first.”);
}
}
public int getNumMiles() {
return numMiles;
}
public String toString() {
String str;
str = “name = “ + name
+ “, running = “ + running
+ “, color = “ + color
+ “, numMiles = “ + numMiles;
return str;
}
}
类测试示例:
public class AutomobileTest {
public static void main(String args[]) {
Automobile auto1 = new Automobile();
System.out.println(“Auto 1: “ + auto1.toString());
Automobile auto2 = new Automobile(true, “green”, 37000);
auto2.name = “INGRID”;
System.out.println(“Auto 2: “ + auto2.toString());
System.out.println(“Driving Auto 1...”);
auto1.drive();
System.out.println(“Driving Auto 2...”);
auto2.drive();
System.out.println(“Starting Auto 1...”);
auto1.start();
System.out.println(“Starting Auto 2...”);
auto2.start();
System.out.println(“Giving Auto 1 a paint job...”);
auto1.setColor(“red”);
System.out.println(“Auto 1 is now “ + auto1.getColor());
System.out.println(“Renaming Auto 1...”);
auto1.name = “CHRISTINE”;
System.out.println(“Auto 1 is named “ + auto1.name);
System.out.println(“Shutting off Auto 2...”);
auto2.shutOff();
System.out.println(“Shutting off Auto 2 AGAIN...”);
auto2.shutOff();
System.out.println(“Auto 1: “ + auto1.toString());
System.out.println(“Auto 2: “ + auto2.toString());
}
}
汽车子类:
public class BigTruck extends Automobile {
protected boolean trailer;
public BigTruck() {
this(false, DEFAULT_COLOR, 0);
}
public BigTruck(boolean running, String color, int numMiles) {
super(running, color, numMiles);
trailer = false;
}
public void attachTrailer() {
if (trailer) {
System.out.println(“There is already a trailer attached.”);
}
else {
trailer = true;
System.out.println(“Attached a trailer.”);
}
}
public void detachTrailer() {
if (trailer) {
trailer = false;
System.out.println(“Detached the trailer.”);
}
else {
System.out.println(“There is no trailer attached.”);
}
}
public void haul() {
if (trailer) {
drive();
}
else {
System.out.println(“There is nothing to haul.”);
}
}
public String toString() {
String str = super.toString();
str += “, trailer = “ + trailer;
return str;
}
}
子类测试:
public class BigTruckTest {
public static void main(String args[]) {
BigTruck truck = new BigTruck();
System.out.println(truck);
System.out.println(“Starting...”);
truck.start();
System.out.println(“Driving...”);
truck.drive();
System.out.println(“Attaching Trailer...”);
truck.attachTrailer();
System.out.println(“Hauling...”);
truck.haul();
System.out.println(“Detaching trailer...”);
truck.detachTrailer();
System.out.println(“Shutting off...”);
truck.shutOff();
System.out.println(“Painting...”);
truck.setColor(“black”);
System.out.println(truck);
}
}
vector 维克多:
import java.util.Vector;
public class VectorVictor {
public static void main(String args[]) {
Vector v = new Vector(5, 5);
System.out.println(“size, capacity”);
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Fuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Wuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“was”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“a”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“bear”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Fuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Wuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“had”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“no”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“hair”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Fuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“Wuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“wasn’t”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“fuzzy”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“was”));
System.out.println(v.size() + “, “ + v.capacity());
v.add(new String(“he”));
System.out.println(v.size() + “, “ + v.capacity());
v.trimToSize();
System.out.println(v.size() + “, “ + v.capacity());
String[] str = new String[v.size()];
v.copyInto(str);
for (int s=0; s < str.length; s++) {
System.out.print(str[s] + “ “);
}
}
}
最佳答案
鉴于这本书已有 10 多年的历史,我觉得术语可能有点过时了。我怀疑他们希望您对 Vector 类进行子类化或创建一个类,该类是 Vector 的包装器(即:一个以 Vector 作为成员的类)。泛型使您书中使用的 Vector 类变得无关紧要。我相信 2004 年在 Java 中添加了泛型。参见:Java Generics Tutorial
我还强烈建议您挑选一本新的 Java 书籍来学习。自 2002 年以来,Java 编程语言发生了很大的变化,学习这种过时的语言版本并不能真正让自己受益匪浅。
我强烈建议您查看 Java 教程。它们是了解一般编程和 Java 语言的绝佳方式:Java Tutorials
关于Java Programming for the Absolute Beginner 中列出的 Java 挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081737/
编译此静态方法时出现错误,无法找到 int 数组变量 coord。我在方法中声明了它,它的类型是 int[],但我不明白为什么它不起作用。我有一种感觉,这与静态方法有关,但将其更改为静态是我发现使该方
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit th
正如标题所说,您有任何可用资源来开始为 iPhone 进行开发吗? 书籍、在线资源、工具、开发环境、先决条件以及与 iPhone 编程相关的一切都会很好! 谢谢 最佳答案 假设您是初学者,对于书籍而言
我刚刚用Grails创建了一个项目,并通过键入命令来运行它。但是,我最终收到了一条超长的错误消息。 当我用谷歌搜索解决方案时,我碰到了他们正在讨论解决方案的this thread。但是我不知道如何解决
我下面有一个 Json 函数,需要构造一个具有两个函数的类,我的第二个函数如何“知道”作为第一个函数响应的数据 def results(): json_request = reques
作为我的第一个小项目,我正在尝试设置一个测验。我编写了生成问题和答案的方法。我现在试图强制用户输入 1 或 2 来继续循环,而他没有输入。我现在有点迷失了。我是否遗漏了一些非常明显的东西? publi
我对覆盖有疑问。 class base{ public void amethod(){} } class child extends base{ public void amethod(int i){
在 java 程序中,我希望通过调用单个函数来修改 3 个 arraylist 变量。 我是否认为如果我将这 3 个数组列表作为参数传递给该函数,那么所有 3 个都可以在函数内修改?或者我是否必须在单
我终于开始进行单元测试了,因为我知道我应该这样做一段时间,但我有几个问题: 我是否应该重新测试家长测试 children 是否在类里面没有方法被覆盖? 从概念上讲,您如何测试提交了表格的一部分?我在用
我尝试编写一个使用线程的程序,但无法理解 o/p。我有 2 个线程:s 和 t。但我看不到线程 s 正在工作。 有人可以向我解释一下这种行为吗?谢谢 我的代码: public class Bgroun
好吧,我对此还很陌生,我不知道我的代码发生了什么。它看起来是正确的,但是当我尝试运行它时,它给了我除以零的错误? 老师给我的一页上的代码 1: public class Country { /
所以基本上在过去的几天里我一直在努力让这一切顺利进行。我以前有过 Android 开发经验,但没有坚持下去。关于我的内容已经足够了,更多关于应用程序的内容。 很简单,它由4个类组成: Activity
我正在尝试返回一个包含不超过特定数量的所有素数的列表(如果是欧拉计划问题 7)。我对 Python 非常陌生,但我这里的问题似乎不是语言,而是逻辑错误。 import math import sys
我是 libgdx 的初学者,我有一些问题...... 我发现了很多教程,其中一些建议我可以使用 gdx-setup-ui 来生成我的项目,其他建议我可以使用 gdx-setup 来生成我的项目。最好
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SSC
我在大学学习编程,我们的任务是创建一个程序,允许用户从计算机中打开文件并从所选文件中获取信息。我的作业的一部分内容如下: 逐行搜索文件中的给定字符串。输出必须包含行号,后跟包含搜索参数的行的内容。例如
所以这是一个位操作练习,我对它们如何将字母转换为数字感到困惑,我认为这些不是二进制的,所以我不知道它们是什么意思。任何人都可以建议一种方法吗? Here's two examples of encry
我正在麻省理工学院 OCW 介绍 C++,下面的代码在教授的第一个问题集中给出,作为计算阶乘的基本程序,还有一些相关问题。 #include using std::cout; using std::
到目前为止,我一直在尝试通过在我的项目中立即实现线程来掌握线程。很长一段时间以来,我一直在努力做到这一点。但这并没有产生任何结果,也没有给我任何线程方面的经验。这次尝试给我的唯一印象是 C# 中的线程
我必须为我所有关于 rails 的帖子做序:我是新手。 是否有必要为我的应用程序编写测试以使其正常工作,还是严格用于查找中断? 最佳答案 测试您的应用程序并不是让它工作所必需的,但强烈建议您这样做并且
我是一名优秀的程序员,十分优秀!