私は 4 つの協調するクラスを書きました。そのうちの 1 つは と呼ばれWorkStation
ます。
WorkStation
これがクラスのコードです。
import java.util.ArrayList;
public class WorkStation {
/**
* the pc
*/
private Hardware pc;
/**
* list of available software
*/
private ArrayList<Software> applications;
/**
* whether a web camera is attached or not
*/
private boolean hasWebCamera;
/**
* id number of the Workstation
*/
private final int idNumber;
/*
* Constructor with three parameters
*/
public WorkStation(Hardware pc, boolean hasWebCamera, int idNumber) {
this.pc = pc;
this.hasWebCamera = hasWebCamera;
this.idNumber = idNumber;
applications = new ArrayList<Software>();
}
//------------------------------- Getter Methods ------------------------------
/*
* Gets the pc
*
* @return The pc
*/
public Hardware getPc() {
return pc;
}
/*
* Gets whether there is a web camera
*
* @return True or false
*/
public boolean isHasWebCamera() {
return hasWebCamera;
}
/*
* Gets the id number
*
* @return The id number
*/
public double getIdNumber() {
return idNumber;
}
//--------------------------- Setter Methods -------------------------
/*
* Sets the pc
*
* @param The pc
*/
public void setPc(Hardware pc) {
this.pc = pc;
}
/*
* Sets whether there is a web camera
*
* @param True or false
*/
public void setHasWebCamera(boolean hasWebCamera) {
this.hasWebCamera = hasWebCamera;
}
// --------------------- ArrayList Methods --------------------
/*
* Method to add a piece of software to the list
*/
public void addSoftware(Software software) {
applications.add(software);
}
/*
* Method to remove a piece of software from the list
*/
public void removeSoftware(Software software) {
applications.remove(software);
}
/*
* Method to remove all software from the list
*/
public void clearApplications(Software software) {
applications.clear();
}
/*
* toString Method
*
* @param aPc
*
* @param aHasWebCamera
*
* @param aIdNumber
*/
public String toString() {
return "Pc is " + getPc() + ", web camera is " + isHasWebCamera() +
" and ID number is " + getIdNumber();
}
}//end of class
次に、協調するクラスを 1 つのテスト クラスでテストする必要があります。
Test
これまでのクラスのコードは次のとおりです。
public class Test{
public static void main(String[] args){
//Software
Software s1 = new Software();
s1.setName("Database");
s1.setManufacturer("Microsoft");
System.out.println(s1.toString());
Software s2 = new Software("Drawing Package", "Sony");
System.out.println(s2.toString());
//Hardware
Hardware h1 = new Hardware();
h1.setManufacturer("Dell");
h1.setProcessorType("Dual Core");
h1.setHardDiskCapacity(1);
System.out.println(h1.toString());
Hardware h2 = new Hardware("Oracle", "Intel Core i7", 3);
System.out.println(h2.toString());
//WorkStation
WorkStation w1 = new WorkStation();
私が抱えている問題は、テストクラスにあるものをコンパイルしようとすると、次のようなエラーメッセージが表示されることです。
cannot find symbol
symbol : constructor WorkStation() location: class WorkStation:
WorkStation w1 = new WorkStation();
これがなぜなのか、私には本当に理解できません。WorkStation
クラスが完全にコンパイルされ、クラス内の他のクラスがコンパイルされたので、クラスがクラスでコンパイルされないTest
理由を誰でも見ることができますか?WorkStation
Test