[英]How to assign an object property value to a variable in Java?
以下代碼是我遇到的問題理解:
public class Rectangle {
public Rectangle() {
double width = 1;
double height = 1;
}
public Rectangle(double w, double h) {
double width = w;
double height = h;
}
public double getArea(double w, double h) {
return (w*h);
}
public double getPerimeter(double w, double h) {
return ((2*w)+(2*h));
}
public static void main(String[] args) {
Rectangle oldRectangle = new Rectangle(4, 40);
Rectangle newRectangle = new Rectangle(3.5, 35.9);
double height1 = oldRectangle.height;
double height2 = newRectangle.height;
double width1 = oldRectangle.width;
double width2 = newRectangle.width;
System.out.println("Width of Rectangle 1 is: " + 4);
System.out.println("Height of Rectangle 1 is: " + 40);
System.out.println("Area of Rectangle 1 is: " + oldRectangle.getArea(4, 40));
System.out.println("Perimeter of Rectangle 1 is: " + oldRectangle.getPerimeter(4, 40));
System.out.println("Width of Rectangle 1 is: " + 3.5);
System.out.println("Height of Rectangle 1 is: " + 35.9);
System.out.println("Area of Rectangle 1 is: " + newRectangle.getArea(3.5, 35.9));
System.out.println("Perimeter of Rectangle 1 is: " + newRectangle.getPerimeter(3.5, 35.9));
}
}
我被指示為Rectangle類創建兩個構造函數-一個沒有參數,但為變量width和height分配默認值1。 第二個構造函數將包含參數,該參數將以兩倍的形式被分配給其適當的變量。
然后,我被告知要創建兩個'get()'方法,它們返回各自的值-在我的例子中,它們是所述矩形的周長和面積。
然后,我被要求創建兩個Rectangle實例,一個Rectangle實例的寬度為4,高度為40,另一個實例的寬度為4.5,高度為35.9。 因此,我做到了,並且制作了兩個新的Rectangle對象,如您所見。
最后,我被指示打印兩個矩形對象的寬度,高度,周長和面積。 我的問題是我不知道引用它們的方法。 我上了JavaScript的初學者教程課程,如果我沒記錯的話,我記得有一種方法可以通過將對象的屬性值分配給變量來進行引用。 同樣,我說的是“如果我沒記錯的話”,所以我可能是錯的。 有一陣子了...
我確實意識到Java和Java Script本身是完全不同的東西。 Java Script是一種基於Java開發的腳本語言。
無論如何,任何幫助都是巨大的。
請隨時幫助我了解如何通過示例來實現我要嘗試的操作。 您沒有使用我的確切代碼,但是我希望能夠使我的代碼更有意義。.我正在使用Eclipse btw。
您走在正確的軌道上。 您想要做的是這樣的:
public double getArea(Rectangle r){
return r.width*r.height;
}
public double getPerimeter(Rectangle r){
return (2*r.width + 2*r.height);
}
對於打印語句,您可以對不需要的值進行硬編碼。
System.out.println("Width of Rectangle 1 is: " + oldRectangle.width);
System.out.println("Height of Rectangle 1 is: " + oldRectangle.height);
System.out.println("Area of Rectangle 1 is: " + getArea(oldRectangle));
System.out.println("Perimeter of Rectangle 1 is: " + getPerimeter(oldRectangle));
我的問題是我不知道引用它們的方法
由於Java是一種強類型語言,因此要存儲對每個Rectangle(或任何對象)屬性的引用,必須創建與該字段匹配的變量。
首先,您需要矩形具有屬性:
public class Rectangle {
public double width;
public dobule height;
// constructors here...
之后,計算面積和周長的方法:
public double getArea() {
return (width*height);
}
public double getPerimeter() {
return ((2*width)+(2*height));
}
現在,引用它們(我想您仍然是指面積和周長):
double area1 = getArea(newRectangle);
double area2 = getArea(oldRectangle);
和
double perimeter1 = getPerimeter(newRectangle);
double perimeter2 = getPerimeter(oldRectangle);
您的類中沒有width和height屬性,它們僅在構造函數中定義,在類中聲明而不在構造函數中聲明,因此您可以像這樣訪問它們:
public class Rectangle {
double width;
double height;
public Rectangle() {
width = 1;
height = 1;
}
public Rectangle(double w, double h) {
width = w;
height = h;
}
public double getArea(double w, double h) {
return (w*h);
}
public double getPerimeter(double w, double h) {
return ((2*w)+(2*h));
}
//....
}
注意:最好將它們聲明為private並使用getter和setter進行訪問,請查看Adding Setter和Getter Methods了解更多信息。
編輯:
在您的情況下,您不需要將參數傳遞給您的方法(因為計算需要此矩形的寬度和高度),只需使用您的類字段進行計算即可,如下所示:
public double getArea() {
return (width*height);
}
public double getPerimeter() {
return ((2*width)+(2*height));
}
這是您需要訪問變量的步驟:
public static void main(String[] args) {
Rectangle oldRectangle = new Rectangle(4, 40);
Rectangle newRectangle = new Rectangle(3.5, 35.9);
//In the following you access all the object variables and methods
System.out.println("Width of Rectangle 1 is: " + oldRectangle.width);
System.out.println("Height of Rectangle 1 is: " + oldRectangle.height);
System.out.println("Area of Rectangle 1 is: " + oldRectangle.getArea());
System.out.println("Perimeter of Rectangle 1 is: " + oldRectangle.getPerimeter());
System.out.println("Width of Rectangle 1 is: " + newRectangle.width);
System.out.println("Height of Rectangle 1 is: " + newRectangle.height);
System.out.println("Area of Rectangle 1 is: " + newRectangle.getArea());
System.out.println("Perimeter of Rectangle 1 is: " + newRectangle.getPerimeter());
}
並回答有關使用構造函數的問題,請按如下所示調用參數化的構造函數:
Rectangle oldRectangle = new Rectangle(4, 40);
等效於:
// create the object
Rectangle oldRectangle = new Rectangle();
//And then assigning the values 4 and 40 to its width and height
oldRectangle.width=4;
oldRectangle.height=40;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.