无论出于何种原因,我无法在其他地方找到这个问题,也无法在线找到答案。如果我有以下内容:
package temp1;
public class MainClass {
public static void main(String[] args) {
}
public MainClass(int radius_x, int area_x, int circumference_x) {
int radius = radius_x;
int area = area_x;
int circumference = circumference_x;
}
}
假设这甚至是正确的用法,那么我如何实际使用在构造函数中定义的变量?由于范围的原因,它们只能在构造函数内部工作。
答案 0 :(得分:2)
你提供的代码没有意义,这是对的。更常见的情况是使用构造函数初始化一些实例变量,然后可以在整个类中使用它们。
public class MainClass {
private int radius;
private int area;
private int circumference;
public static void main(String[] args) {
}
public MainClass(int radius_x, int area_x, int circumference_x) {
this.radius = radius_x;
this.area = area_x;
this.circumference = circumference_x;
}
}
答案 1 :(得分:0)
重用构造函数参数的一种方法是使用构造函数的参数值分配实例变量。
因此:
package temp1;
public class MainClass {
private int radiusX;
private int areaX;
private int circumferenceX;
public static void main(String[] args) {
}
public MainClass(int radius_x, int area_x, int circumference_x) {
this.radiusX = radius_x;
this.areaX = area_x;
this.circumferenceX = circumference_x;
}
// TODO getters [and setters] for instance variables
}
答案 2 :(得分:0)
package temp1;
public class MainClass {
int radius ;
int area;
int circumference;
public static void main(String[] args) {
}
public MainClass(int radius_x, int area_x, int circumference_x) {
this.radius = radius_x;
this.area = area_x;
this.circumference = circumference_x;
}
}
答案 3 :(得分:0)
您创建了一个构造函数,但是里面的变量只是构造函数本身的本地变量而不是它的外部。为此,您需要类成员字段:
public class MainClass {
private int radius;
private int area;
private int circumference;
public static void main(String[] args) throws Exception {
MainClass m = new MainClass(5, 6, 7);
System.out.println("The radius is " + m.getRadius());
}
public MainClass(int radius_x, int area_x, int circumference_x) {
radius = radius_x;
area = area_x;
circumference = circumference_x;
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
public int getArea() {
return area;
}
public void setArea(int area) {
this.area = area;
}
public int getCircumference() {
return circumference;
}
public void setCircumference(int circumference) {
this.circumference = circumference;
}
}
请注意,无需传入area_x
和circumference_x
这些内容可以来自radius_x
。这是假设你忠实于术语的含义,而不是只是玩变量来学习语言。