Java 从同一类中的构造函数获取方法中变量的方法?

Java 从同一类中的构造函数获取方法中变量的方法?,java,Java,我对代码非常陌生,我找不到我能理解的解释或解决方案,尽管我很确定这很简单。我希望我的条件也正确。我感到困惑的是: public class Item{ public Item(int number1, int number2, int number3){ //Nothing really significant in here, just some mathematics } public int getNumber(){ //I want to g

我对代码非常陌生,我找不到我能理解的解释或解决方案,尽管我很确定这很简单。我希望我的条件也正确。我感到困惑的是:

public class Item{

   public Item(int number1, int number2, int number3){
      //Nothing really significant in here, just some mathematics
   }

   public int getNumber(){
      //I want to get the values of number 1-3 here, without parameters 
      //or any data structures if possible.^
   }

}
如果有人能给我解释一下,我将不胜感激。我本想多看看,但我已经花了半天的时间来解决这些问题,我还没有完全的经验


谢谢大家!

在构造函数中,您可以初始化类的变量。这些变量属于类的实例,因此在类的方法中可用。使用
新建项(1,2,4)
创建的每个对象都有自己的一组字段

要获取每个变量,最好使用
getter

public class Item {

    private final int number1;
    private final int number2;
    private final int number3;

    // Method with same name as class called Constructor
    public Item(int number1, int number2, int number3){
        this.number1 = number1;
        this.number2 = number2;
        this.number3 = number3;
    }

    public int getNumber1() {
        return number1;
    }

    public int getNumber2() {
        return number2;
    }

    public int getNumber3() {
        return number3;
    }
}

在构造函数中,您可以初始化类的变量。这些变量属于类的实例,因此在类的方法中可用。使用
新建项(1,2,4)
创建的每个对象都有自己的一组字段

要获取每个变量,最好使用
getter

public class Item {

    private final int number1;
    private final int number2;
    private final int number3;

    // Method with same name as class called Constructor
    public Item(int number1, int number2, int number3){
        this.number1 = number1;
        this.number2 = number2;
        this.number3 = number3;
    }

    public int getNumber1() {
        return number1;
    }

    public int getNumber2() {
        return number2;
    }

    public int getNumber3() {
        return number3;
    }
}

如果您希望能够在某个点检索某个值,则必须将其存储在某个位置。这是在初始化阶段使用构造函数创建新对象时完成的。调用构造函数时,需要存储构建对象时所需的值。通过这样做,对象将保留所需的值number1、number2、number3。请注意,如果您需要存储非语义定义的无限数量的数字(例如,您只存储非由给定名称定义的区域、价格、数量的数字),那么您可能应该将它们存储在数组中

public class Item {
   private int number1; // internal attributes
   private int number2; // are initialized
   private int number3; // in the constructor

   public Item(int number1, int number2, int number3) { // constructor
        this.number1 = number1;
        this.number2 = number2; // setup internal attributes
        this.number3 = number3;
   } 
}
然后,在调用getter时,可以获取存储的值。您的类现在有3个新函数

public class Item {
   private final int number1;
   private final int number2;
   private final int number3;

   public Item(int number1, int number2, int number3){
        this.number1 = number1;
        this.number2 = number2;
        this.number3 = number3;
   }

   // add getter methods that only return internal attributes
   // values, so that it would be impossible to modify them
   // from the outside

   public int getNumber1() {
      return number1; // equivalent of return this.number1;
   }

   public int getNumber2() {
      return number2;
   }

   public int getNumber3() {
      return number3;
   }

}

希望这能解决您的问题。

如果您想在某个时候检索到一个值,您必须将它存储在某个地方。这是在初始化阶段使用构造函数创建新对象时完成的。调用构造函数时,需要存储构建对象时所需的值。通过这样做,对象将保留所需的值number1、number2、number3。请注意,如果您需要存储非语义定义的无限数量的数字(例如,您只存储非由给定名称定义的区域、价格、数量的数字),那么您可能应该将它们存储在数组中

public class Item {
   private int number1; // internal attributes
   private int number2; // are initialized
   private int number3; // in the constructor

   public Item(int number1, int number2, int number3) { // constructor
        this.number1 = number1;
        this.number2 = number2; // setup internal attributes
        this.number3 = number3;
   } 
}
然后,在调用getter时,可以获取存储的值。您的类现在有3个新函数

public class Item {
   private final int number1;
   private final int number2;
   private final int number3;

   public Item(int number1, int number2, int number3){
        this.number1 = number1;
        this.number2 = number2;
        this.number3 = number3;
   }

   // add getter methods that only return internal attributes
   // values, so that it would be impossible to modify them
   // from the outside

   public int getNumber1() {
      return number1; // equivalent of return this.number1;
   }

   public int getNumber2() {
      return number2;
   }

   public int getNumber3() {
      return number3;
   }

}
希望这能解决您的问题。

当您调用项(…)时,需要将参数保存在类属性中,以便以后调用getNumber()时可以访问它们

调用项(…)时,需要将参数保存在类属性中,以便以后调用getNumber()时可以访问这些参数


如果没有任何数据结构,就无法在1个整数中获得3个整数。如果你想在手机上安装3张sim卡和1个插槽的话

此外,该函数名为
getNumber()
,这会提出一个问题:哪个数字? 正如其他人所说,您需要以某种形式将参数存储在类中,以便以后重用它们

因此,您应该使用类似于
int[]
List
的东西,或者更好地使用名为
Numbers
的自定义类,方法是
getNumber1
getNumber2
getNumber3


希望有帮助

如果没有任何数据结构,就无法在1个整数中获得3个整数。如果你想在手机上安装3张sim卡和1个插槽的话

此外,该函数名为
getNumber()
,这会提出一个问题:哪个数字? 正如其他人所说,您需要以某种形式将参数存储在类中,以便以后重用它们

因此,您应该使用类似于
int[]
List
的东西,或者更好地使用名为
Numbers
的自定义类,方法是
getNumber1
getNumber2
getNumber3


希望有帮助

检查代码片段:-

 import java.util.*;


 public class MyClass

 {
 public List<Integer> setNumberList = new ArrayList<Integer>();


 public void setNumbers(int number1,int number2,int number3)
  {

   setNumberList.add(number1);
   setNumberList.add(number2);
   setNumberList.add(number3);


  }


  public List<Integer> getNumbers()
  {

  return setNumberList;

  }


  public static void main(String args[])
  {

   MyClass obj = new MyClass();

   obj.setNumbers(9,2,3);
   List<Integer> getyourNumbers= obj.getNumbers();

   //the whole data is save in your list now you can get data by iterating it as you 
   want
   System.out.print(getyourNumbers);

  }

  }
import java.util.*;
公共类MyClass
{
public List setNumberList=new ArrayList();
公共无效集合号(整数1、整数2、整数3)
{
setNumberList.add(number1);
setNumberList.add(number2);
setNumberList.add(number3);
}
公共列表getNumbers()
{
返回setNumberList;
}
公共静态void main(字符串参数[])
{
MyClass obj=新的MyClass();
对象集合号(9,2,3);
List getyourNumbers=obj.getNumbers();
//整个数据保存在您的列表中,现在您可以在访问时通过迭代来获取数据
希望
系统输出打印(获取您的号码);
}
}

检查代码片段:-

 import java.util.*;


 public class MyClass

 {
 public List<Integer> setNumberList = new ArrayList<Integer>();


 public void setNumbers(int number1,int number2,int number3)
  {

   setNumberList.add(number1);
   setNumberList.add(number2);
   setNumberList.add(number3);


  }


  public List<Integer> getNumbers()
  {

  return setNumberList;

  }


  public static void main(String args[])
  {

   MyClass obj = new MyClass();

   obj.setNumbers(9,2,3);
   List<Integer> getyourNumbers= obj.getNumbers();

   //the whole data is save in your list now you can get data by iterating it as you 
   want
   System.out.print(getyourNumbers);

  }

  }
import java.util.*;
公共类MyClass
{
public List setNumberList=new ArrayList();
公共无效集合号(整数1、整数2、整数3)
{
setNumberList.add(number1);
setNumberList.add(number2);
setNumberList.add(number3);
}
公共列表getNumbers()
{
返回setNumberList;
}
公共静态void main(字符串参数[])
{
MyClass obj=新的MyClass();
对象集合号(9,2,3);
List getyourNumbers=obj.getNumbers();
//整个数据保存在您的列表中,现在您可以在访问时通过迭代来获取数据
希望
系统输出打印(获取您的号码);
}
}

public Item(int.
这不会编译。它是作为构造函数构造的(没有返回值),但类名为
myClass
,而不是
Item
公共类myClass这不会编译。class关键字必须是小写的。你的问题基本上是“属性在面向对象编程范式中是如何工作的”。这个问题已经回答了很多次,我不能提供一个简短的答案,我甚至想用图片来回答这个问题。你应该在谷歌上搜索“OOP中的属性是什么”