Java 获取一个类的某些对象并在另一个类中使用
我想在一个类中使用某个对象,在另一个类中使用,但我不能 例如: 第1类: 问题:我怎样才能在2班中使用1班的radious 第2类:Java 获取一个类的某些对象并在另一个类中使用,java,Java,我想在一个类中使用某个对象,在另一个类中使用,但我不能 例如: 第1类: 问题:我怎样才能在2班中使用1班的radious 第2类: public class calculateArea { private Value value; public double area() { return 3.14*radious*radious; } } 为这两个值创建getter,并在第二个类中访问它们 差不多 public double getRadious(
public class calculateArea
{
private Value value;
public double area()
{
return 3.14*radious*radious;
}
}
为这两个值创建getter,并在第二个类中访问它们 差不多
public double getRadious() {
return this.radious;
}
public double getLenght() {
return this.lenght;
}
为radious制作一个getter方法:
public double getRadious(){
return radious;
}
在主要类别中:
Value v = new Value();
v.setRadious(2.5);/*Set the Radious value*/
public double area()
{
return 3.14*v.getRadious()*v.getRadious();
}
向类值添加getter
public class Value {
public double radious;
public double lenght;
public void setRadious(double radious) {
this.radious = radious;
}
public void setLenght(double lenght) {
this.lenght = lenght;
}
public double getLenght() {
return this.lenght;
}
public double getRadious() {
return this.radious;
}
}
创建类1的实例
public class calculateArea{
public Value;
calculateArea(){
value = new Value();
}
public double area(){
value.setRadious(2.34);//or set ACCORDINGLY
return 3.14 * value.radious * value.radious;
}
}
当使用OOP时,问问自己什么代码去了哪里,需要创建多少类? 对于您的场景,您可以使用聚合或组合,即在另一个类中声明一个类的对象,然后可以使用点表示法和getter setter方法调用所声明对象的方法。所以事情会是这样的
public class Value
{
private double radious;
private double lenght;
public void setRadious(double radious)
{
this.radious = radious;
}
public double getRadious() {
return this.radious;
}
public double getLenght() {
return this.lenght;
}
public void setLenght(double lenght)
{
this.lenght = lenght;
}
}
Class # 2
public class calculateArea
{
private Value value = new Value();
public calculateArea(double rad) {
value.setRadius(rad);
}
public double area()
{
return 3.14*value.getRadious()*value.getRadious();
}
}
此外,您需要在使用radius之前设置它的值。为值类声明getter和setter:
public class Value {
private double radious;
private double lenght;
public Value(double radious, double length) {
this.radious = radious;
this.length = length;
}
public void setRadious(double radious) {
this.radious = radious;
}
public void setLenght(double lenght) {
this.lenght = lenght;
}
public double getRadious() {
return this.radious;
}
public double getLength() {
return this.length;
}
}
使用一些变量实例化对象:
值=新值2.0,3.0
将构造函数添加到CalculateArea类:
public class calculateArea {
private Value value;
public calculateArea(Value value) {
this.value = value;
}
public double area()
{
return 3.14*value.getRadious()*value.getRadious();
}
}
举例说明:
calculateArea cArea=新的calculateAreavalue
并以主方式将结果打印到控制台:
System.out.printlncArea.area 添加getter,但是您还需要一个第一个类的实例。如果没有实例,那么使用这些getter不会有太大的问题。在这段代码中,语法和逻辑错误都很严重。您忘了提到为什么发布的代码无法编译。这不是一个好答案,错误在你的答案中反复出现。你不能这样调用value.setRadious。这充其量只是一个不完整的例子answer@Stultuske因此,请说明为什么不能像那样调用value.setRadious。因为它不在方法或块中。他们将如何设置它?您的代码不提供这样做的可能性
public class calculateArea {
private Value value;
public calculateArea(Value value) {
this.value = value;
}
public double area()
{
return 3.14*value.getRadious()*value.getRadious();
}
}