Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—获取类内部方法的值_Java - Fatal编程技术网

Java—获取类内部方法的值

Java—获取类内部方法的值,java,Java,我试图将一个类中的方法的值输入到主类中 import java.util.*; public class Auslesen { String a; private int s; double u; public class Scannen { Scanner scanner = new Scanner(System.in); public int Methode() { s =

我试图将一个类中的方法的值输入到主类中

import java.util.*;
public class Auslesen 
{

    String a;
    private int s;
    double u;

    public class Scannen
    {
        Scanner scanner = new Scanner(System.in);

        public int Methode()
        {
            s = scanner.nextInt();
            return s;
        }
    }
}
代码应该允许我使用控制台为变量“a”、“s”和“u”各赋予一个值,然后将值返回到主类

import java.util.*;
public class Auslesen 
{

    String a;
    private int s;
    double u;

    public class Scannen
    {
        Scanner scanner = new Scanner(System.in);

        public int Methode()
        {
            s = scanner.nextInt();
            return s;
        }
    }
}
这是我的主要课程:

public class Start 
{
    public static void main(String[] args)
    {


        Auslesen auslesen = new Auslesen();
        //System.out.println(auslesen); 

        Auslesen.Scannen scannen = auslesen.new Scannen();
        //System.out.println(scannen);

        Auslesen.Scannen.Methode methode = scannen.new Methode();
        System.out.println(methode);
        //my approach which didnt worked out...


    }   
}

Methode
是方法而不是类。您不会使用
new
创建它,也不会为此创建它。方法是在类中定义的,您只需调用它。例如

System.out.println(scannen.Methode());
并删除该行:

Auslesen.Scannen.Methode methode = scannen.new Methode();

另外,还要坚持Java命名约定:类名以大写的方法开头,变量名以小写开头。

首先,为什么要在另一个类中声明一个类?如果您只是想将一个值从一个类返回到另一个类,那么您可以执行以下操作-

String a;
private int s;
double u;
Scanner scanner = new Scanner(System.in);

    public int Methode()
    {
        s = scanner.nextInt();
        return s;
    }
现在在main方法中,只需调用-

Auslesen a=new Auslesen();
System.out.println("The entered number is: "+a.Methode());    

为什么你认为你可以调用像
new[Methodname]”这样的方法?你知道
new`是什么意思吗?只需调用这些方法并存储结果。例如:s=Methode();注意,我想很快你就会遇到一个不同的问题……注意变量的类型,注意你只定义了一个方法签名……考虑一下(public int Methode)…从这个意义上讲,还要注意Java不支持返回类型重载。另外,内部类的原因是什么?如果您真的需要将其包装在一个类中,那么创建一个静态类Auslesen,其中包含静态帮助程序“Methode”。显然,在这种情况下Methode不会设置变量,只需返回到t他扩展了…这取决于OPs任务中是否需要这样做。我的解释是,值将驻留在主类中,并给出OPs注释:“将值返回主类。”