為什么我不能在我的圓形類中使用變數 shapeArea?我正在嘗試建立一個具有is-a關系和has-a關系的系列類,這是第一次。這些空的類還沒有真正的用途。我只是想看看我是否可以為最終容納我的代碼的東西創建基本框架。
public class Object {
}
class shape extends Object{
}
class area{
public double area;
}
class TwoDshape extends shape{
area shapeArea = new area() 。
}
class circle extends TwoDshape{
shapeArea.area = 1;
}
uj5u.com熱心網友回復:
你可以在圓環類的任何方法或圓環類的任何型別的建構式中使用它,因為繼承的欄位只能通過子類的建構式和方法來訪問。
uj5u.com熱心網友回復:
我創建了一個Replit snippet。
class Main {
public static void main(String[] args){
Shape2D shape = new Shape2D() 。
System.out.println(shape.area.sqm)。
// Casting objects
//https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html。
Shape2D circle = new Circle() 。
System.out.println(circle.area.sqm)。
Shape2D triangle = new Triangle(2。 0)。)
System.out.println(triangle. area.sqm)。
Rectangle rectangle = new Rectangle()。
rectangle.encreateArea()。
System.out.println(rectangle.area.sqm)。
}
}
/*
擴展了java.lang.Object
但如果你省略這一點,它將隱式擴展。
https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html
https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
*/
class Shape extends Object {
}
class Area {
public double sqm;
}
class Shape2D extends Shape {
Area area = new Area() 。
}
/*
初始化實體成員
https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
*/
class Circle extends Shape2D {
{
area.sqm = 1.0;
}
}
/*
使用一個建構式
https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
*/
class Triangle extends Shape2D {
Triangle(double areaInSquareMetres) {
this.area.sqm = areaInSquareMetres;
}
}
/*
使用一個實體方法
https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
*/
class Rectangle extends Shape2D {
void increaseArea() {
area.sqm = 1.0;
}
}
同樣重要。
uj5u.com熱心網友回復:
在類的層面上,你只能定義變數(靜態或實體)、建構式、方法。你可以做這樣的事情
class Circle extends TwoDshape{
public Circle {
shapeArea.area = 1;
}
}
另外。傾向于用大寫字母開始類名
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/320076.html
標籤:
