Tôi đang làm bài tập về nhà cho lớp học lập trình của tôi liên quan đến việc triển khai giao diện. Vấn đề ở đây là tôi thực sự chỉ phẳng ra không hiểu giao diện hoặc những gì họ được sử dụng cho (giáo sư không phải là rất tốt về giải thích nó).Java - Thực hiện giao diện
Nhiệm vụ là tạo một siêu xe "Xe", và hơn ba lớp con, một cái gì đó như "Xe tải" hoặc "Xe Jeep" mà mỗi người sẽ có một vài đặc điểm riêng. Lớp "Xe" phải triển khai giao diện có thể so sánh, mà tôi nghĩ rằng tôi đã tìm ra (tôi có phương pháp compareTo()
được viết so sánh số cửa trên xe) và một lớp khác cũng phải triển khai lớp "Hybrid" (tôi không có ý tưởng điều này có nghĩa là gì). Sau đó, chúng tôi phải triển khai các phương pháp toString()
, equals(Object o)
và compareTo(Object o)
.
Tôi nghĩ rằng mình bị giảm compareTo()
, nhưng với số equals()
tôi không biết. Điều cuối cùng chúng ta phải làm là viết một Main để kiểm tra, điều này liên quan đến việc tạo ra một mảng các đối tượng Vehicle, in chúng ra, phân loại chúng, và sau đó in lại chúng. Nó cũng nên lặp qua mảng và in ra giá cao hơn cho các giống lai, và sử dụng phương pháp equals(Object o)
để so sánh 2 Phương tiện.
Đây là mã cho "xe" của tôi cha
package vehicle;
abstract public class Vehicle implements Comparable {
private String color;
private int numberOfDoors;
// Constructor
/**
* Creates a vehicle with a color and number of doors
* @param aColor The color of the vehicle
* @param aNumberOfDoors The number of doors
*/
public Vehicle(String aColor, int aNumberOfDoors) {
this.color = aColor;
this.numberOfDoors = aNumberOfDoors;
}
// Getters
/**
* Gets the color of the vehicle
* @return The color of the vehicle
*/
public String getColor() {return(this.color);}
/**
* Gets the number of doors the vehicle has
* @return The number of doors the vehicle has
*/
public int getNumberOfDoors() {return(this.numberOfDoors);}
// Setters
/**
* Sets the color of the vehicle
* @param colorSet The color of the vehicle
*/
public void setColor(String colorSet) {this.color = colorSet;}
/**
* Sets the number of doors for the vehicle
* @param numberOfDoorsSet The number of doors to be set to the vehicle
*/
public void setNumberOfDoors(int numberOfDoorsSet) {this.numberOfDoors = numberOfDoorsSet;}
@Override
public int compareTo(Object o) {
if (o instanceof Vehicle) {
Vehicle v = (Vehicle)o;
return this.numberOfDoors - v.getNumberOfDoors();
}
else {
return 0;
}
}
/**
* Returns a short string describing the vehicle
* @return a description of the vehicle
*/
@Override
public String toString() {
String answer = "The car's color is "+this.color
+". The number of doors is"+this.numberOfDoors;
return answer;
}
}
Và tôi cũng sẽ gửi một trong những lớp con của tôi
package vehicle;
abstract public class Convertible extends Vehicle {
private int topSpeed;
// Constructor
/**
* Creates a convertible with a color, number of doors, and top speed
* @param aColor The color of the convertible
* @param aNumberOfDoors The number of doors of the convertible
* @param aTopSpeed The top speed of the convertible
*/
public Convertible (String aColor, int aNumberOfDoors, int aTopSpeed) {
super(aColor, aNumberOfDoors);
this.topSpeed = aTopSpeed;
}
// Getters
/**
* Gets the top speed of the convertible
* @return The top speed of the convertible
*/
public int getTopSpeed() {return(this.topSpeed);}
// Setters
/**
* Sets the top speed of the convertible
* @param topSpeedSet The top speed to set to the convertible
*/
public void setTopSpeed(int topSpeedSet) {this.topSpeed = topSpeedSet;}
/**
* Returns a short description of the convertible
* @return a short description of the convertible
*/
@Override
public String toString() {
String answer = "The car's color is "+super.getColor()
+", the number of doors is "+super.getNumberOfDoors()
+", and the top speed is "+this.topSpeed+" mph.";
return answer;
}
}
Tôi chắc chắn không yêu cầu bất cứ ai để làm việc cho tôi, nhưng nếu ai đó có thể làm sáng tỏ một chút về cách giao diện hoạt động và bài tập về nhà này thực sự yêu cầu điều đó sẽ tuyệt vời như thế nào.
Tất cả trợ giúp được đánh giá rất nhiều
Cảm ơn!
Giao diện về cơ bản là hợp đồng cho một lớp học. Nó nói rằng nếu bạn muốn gọi cho mình một 'Comparable', bạn cần phải thực hiện các phương thức này tạo nên một' Comparable'. –
Giao diện chỉ là một cách để buộc các lớp học nhìn và hành xử theo cách được chuẩn hóa. Khi một giao diện định nghĩa một phương thức, mỗi lớp thực hiện giao diện đó phải ghi đè lên phương thức đó, điều này đảm bảo rằng lớp đó sẽ có phiên bản riêng của phương thức đó. – Hassan
tôi hy vọng giáo sư ur sẽ không đọc câu hỏi này. :) – Dhananjay