如何使用 类 和 Java 中的方法
How to use classes and methods in Java
我对 Java 和编码还很陌生,但在 Java material 的这一点之前,我还没有 运行 遇到任何问题。我真正无法理解的是 classes 和方法实际上是如何工作的。在过去的几个小时里,我一直在尝试实现这一点,但无济于事:
实现下面 UML 中显示的名为 Cylinder 的 class。构造函数接受并初始化圆柱体的半径和高度,而 accessors 和 mutators 允许在对象构建后更改它们。 class 还包括计算和 return 圆柱体的体积和表面积的方法。最后,它包含一个 toString 方法,该方法 return 是形状的名称、半径和高度。创建一个实例化 4 个 Cylinder 对象(任意参数)的 main 方法,用 toString()
显示它们,更改每个中的一个参数(您的选择),然后再次显示它们。
UML:
这是我目前拥有的代码:
class Cylinder {
private double radius;
private double height;
// Method #1
private void rad (){
}
// Constructor
public Cylinder (double radius, double height){
this.radius = radius;
this.height = height;
}
// Method #2 for calculating volume.
double calcVolume (){
double volume = Math.PI * Math.pow(radius, 2) * height;
return volume;
}
// Method #3 for calculating surface area.
double calcArea (){
double area = (2 * Math.PI * radius * height) + (2 * Math.PI * Math.pow(radius, 2));
return area;
}
// toString method.
public String toString (){
StringBuilder sb = new Stringbuilder();
sb.append(radius).append(height);
return sb.toString();
}
}
public class Murray_A03Q1 {
public static void main(String[] args) {
Cylinder cylinder1 = new Cylinder(5, "can");
System.out.println(cylinder1);
Cylinder cylinder2 = new Cylinder(6, "cup");
Cylinder cylinder3 = new Cylinder(7, "jar");
Cylinder cylinder4 = new Cylinder(8, "paper roll");
}
}
真正不明白的是如何使用'get'和'set'方法。此外,我不完全确定如何实现 toString 方法。
以下我不知道如何更正的错误是:
构造函数 Cylinder()
未定义 -
圆柱体 cylinder1 = new Cylinder();
Stringbuilder 无法解析为 -
StringBuilder sb = new Stringbuilder();
感谢您的帮助!
get
和 set
方法的示例:
double getRadius() {
return radius;
}
void setRadius(r) {
radius = r;
}
The constructor Cylinder() is undefined for - Cylinder cylinder1 = new
Cylinder();
有东西试图调用默认构造函数(一个没有参数的构造函数)。您可以找出调用此错误的确切位置,或者添加默认构造函数:
Cylinder() {
this.radius = 0;
this.height = 0;
}
Stringbuilder can't be resolved to a type for - StringBuilder sb = new Stringbuilder();
StringBuilder
其实就是classjava.lang.StringBuilder
。将此文本放在文件顶部以帮助它解析名称。
import java.lang.StringBuilder;
What I really don't understand is how to use the 'get' and 'set' methods.
getters和setters的目的是为了封装。它们允许您获取或设置 class' 变量的值,而无需将它们声明为 public.
例如,如果您有
public double radius;
public double height;
您将能够以
访问它们
cylinder1.radius = 1;
cylinder2.height = 10;
int a = cylinder3.radius;
int b = cylinder3.height + cylinder4.radius;
等等
现在如果我们有
private double radius;
private double height;
以上代码会失败。这就是为什么我们需要 getter 和 setter。顾名思义,getters "get" 变量。
public double getHeight() {
return height;
}
而 setter "set" 变量。
public void setHeight(double height) {
this.height = height;
}
至于为什么我们这样做,theres a lot of information on that.
Additionally, I'm not completely sure how to implement the toString method.
至于toString()
方法如何实现,只需要return一个String
即可。但至于 String
包含什么,没有硬性规定。一个好的开始是 return 半径和高度,就像你所做的那样。
The constructor Cylinder() is undefined for - Cylinder cylinder1 = new Cylinder();
您的构造函数是 public Cylinder (double radius, double height)
。但是,您正在尝试制作一个 int
和 String
.
的圆柱体
Cylinder cylinder1 = new Cylinder(5, "can");
或者
- 将构造函数更改为
public Cylinder(double radius, String name);
或
使用两个双精度实例化您的圆柱体,一个半径和一个高度。
例如
Cylinder cylinder1 = new Cylinder(1.0, 2.0);
Stringbuilder can't be resolved to a type for - StringBuilder sb = new Stringbuilder();
这里唯一的问题是您忘记将 b
大写。是 StringBuilder
而不是 Stringbuilder
.
我对 Java 和编码还很陌生,但在 Java material 的这一点之前,我还没有 运行 遇到任何问题。我真正无法理解的是 classes 和方法实际上是如何工作的。在过去的几个小时里,我一直在尝试实现这一点,但无济于事:
实现下面 UML 中显示的名为 Cylinder 的 class。构造函数接受并初始化圆柱体的半径和高度,而 accessors 和 mutators 允许在对象构建后更改它们。 class 还包括计算和 return 圆柱体的体积和表面积的方法。最后,它包含一个 toString 方法,该方法 return 是形状的名称、半径和高度。创建一个实例化 4 个 Cylinder 对象(任意参数)的 main 方法,用 toString()
显示它们,更改每个中的一个参数(您的选择),然后再次显示它们。
UML:
这是我目前拥有的代码:
class Cylinder {
private double radius;
private double height;
// Method #1
private void rad (){
}
// Constructor
public Cylinder (double radius, double height){
this.radius = radius;
this.height = height;
}
// Method #2 for calculating volume.
double calcVolume (){
double volume = Math.PI * Math.pow(radius, 2) * height;
return volume;
}
// Method #3 for calculating surface area.
double calcArea (){
double area = (2 * Math.PI * radius * height) + (2 * Math.PI * Math.pow(radius, 2));
return area;
}
// toString method.
public String toString (){
StringBuilder sb = new Stringbuilder();
sb.append(radius).append(height);
return sb.toString();
}
}
public class Murray_A03Q1 {
public static void main(String[] args) {
Cylinder cylinder1 = new Cylinder(5, "can");
System.out.println(cylinder1);
Cylinder cylinder2 = new Cylinder(6, "cup");
Cylinder cylinder3 = new Cylinder(7, "jar");
Cylinder cylinder4 = new Cylinder(8, "paper roll");
}
}
真正不明白的是如何使用'get'和'set'方法。此外,我不完全确定如何实现 toString 方法。
以下我不知道如何更正的错误是:
构造函数
Cylinder()
未定义 - 圆柱体cylinder1 = new Cylinder();
Stringbuilder 无法解析为 - StringBuilder
sb = new Stringbuilder();
感谢您的帮助!
get
和 set
方法的示例:
double getRadius() {
return radius;
}
void setRadius(r) {
radius = r;
}
The constructor Cylinder() is undefined for - Cylinder cylinder1 = new Cylinder();
有东西试图调用默认构造函数(一个没有参数的构造函数)。您可以找出调用此错误的确切位置,或者添加默认构造函数:
Cylinder() {
this.radius = 0;
this.height = 0;
}
Stringbuilder can't be resolved to a type for - StringBuilder sb = new Stringbuilder();
StringBuilder
其实就是classjava.lang.StringBuilder
。将此文本放在文件顶部以帮助它解析名称。
import java.lang.StringBuilder;
What I really don't understand is how to use the 'get' and 'set' methods.
getters和setters的目的是为了封装。它们允许您获取或设置 class' 变量的值,而无需将它们声明为 public.
例如,如果您有
public double radius;
public double height;
您将能够以
访问它们cylinder1.radius = 1;
cylinder2.height = 10;
int a = cylinder3.radius;
int b = cylinder3.height + cylinder4.radius;
等等
现在如果我们有
private double radius;
private double height;
以上代码会失败。这就是为什么我们需要 getter 和 setter。顾名思义,getters "get" 变量。
public double getHeight() {
return height;
}
而 setter "set" 变量。
public void setHeight(double height) {
this.height = height;
}
至于为什么我们这样做,theres a lot of information on that.
Additionally, I'm not completely sure how to implement the toString method.
至于toString()
方法如何实现,只需要return一个String
即可。但至于 String
包含什么,没有硬性规定。一个好的开始是 return 半径和高度,就像你所做的那样。
The constructor Cylinder() is undefined for - Cylinder cylinder1 = new Cylinder();
您的构造函数是 public Cylinder (double radius, double height)
。但是,您正在尝试制作一个 int
和 String
.
Cylinder cylinder1 = new Cylinder(5, "can");
或者
- 将构造函数更改为
public Cylinder(double radius, String name);
或 使用两个双精度实例化您的圆柱体,一个半径和一个高度。 例如
Cylinder cylinder1 = new Cylinder(1.0, 2.0);
Stringbuilder can't be resolved to a type for - StringBuilder sb = new Stringbuilder();
这里唯一的问题是您忘记将 b
大写。是 StringBuilder
而不是 Stringbuilder
.