Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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_Object_Methods_Constructor_Global Variables - Fatal编程技术网

Java 这是怎么回事?如何构造对象和方法

Java 这是怎么回事?如何构造对象和方法,java,object,methods,constructor,global-variables,Java,Object,Methods,Constructor,Global Variables,我是这个网站的新手,我是java的初学者。我正在做一个程序,它接收5个数字,然后把它们吐出来。为什么这个代码不起作用?这是2的第一个.java。我在我认为问题所在的地方做了标记 public class digitExtractor { int tNumber; String sNumber; // OP thinks the problem is here... public digitExtractor(int tNumber) {

我是这个网站的新手,我是java的初学者。我正在做一个程序,它接收5个数字,然后把它们吐出来。为什么这个代码不起作用?这是2的第一个.java。我在我认为问题所在的地方做了标记

public class digitExtractor {
    int tNumber;
    String sNumber;

    // OP thinks the problem is here...
    public digitExtractor(int tNumber) {       


    }
    // ... and here
    public digitExtractor(String sNumber) {



    }

    public void returnInvertedOrderByMath() {
        int Integer1;
        int Integer2;
        int Integer3;
        int Integer4;
        int Integer5;
        Integer1 = (tNumber % 10);
        Integer2 = (tNumber % 100) / 10;
        Integer3 = (tNumber % 1000) / 100;
        Integer4 = (tNumber % 10000) / 1000;
        Integer5 = (tNumber % 100000) /10000;

        System.out.println(Integer1 + "\n" + Integer2 + "\n" + Integer3 + "\n" + Integer4 + "\n" + Integer5);
    }

    public void returnInvertedOrderByString() {
        char part1;
        char part2;
        char part3;
        char part4;
        char part5;
        part1 = sNumber.charAt(4);
        part2 = sNumber.charAt(3);
        part3 = sNumber.charAt(2);
        part4 = sNumber.charAt(1);
        part5 = sNumber.charAt(0);
        System.out.println(part1 + "\n" + part2 + "\n" + part3 + "\n" + part4 + "\n" + part5);

    }
}

我认为您需要初始化构造函数中的实例字段

公共数字抽取器(int tNumber)
中,您将有一个这样的主体:

// assigning instance field with constructor's argument value
this.nNumber = tNumber; 
// assigning instance field with constructor's argument value
this.sNumber = sNumber; 
public digitExtractor(String sNumber)
中,您将拥有这样一个主体:

// assigning instance field with constructor's argument value
this.nNumber = tNumber; 
// assigning instance field with constructor's argument value
this.sNumber = sNumber; 
这样,您的
returninvertordorder
将引用已初始化的
DigitExtractor
字段,然后执行您想要执行的操作

请注意,这对于
字符串
字段尤其重要,因为如果在代码中引用
NullPointerException
之前未对其进行初始化,则会抛出该字段


如果未初始化,
int
将默认为
0

这应该行得通。请记住,我在程序中添加了一个main方法来测试代码 看看我添加到代码中的注释

public class DigitExtractor {
    private int tNumber;
    private String sNumber;

    public static void main(String[] args){

        //this will work because i chose the right constructor
        DigitExtractor d = new DigitExtractor(10000);
        d.returnInvertedOrderByMath();

        //this wont work because sNumber is null
        //d.returnInvertedOrderByString
    }

    public DigitExtractor(int tNumber) {
        this.tNumber = tNumber;
    }
    public DigitExtractor(String sNumber) {
        this.sNumber = sNumber;
    }

    public void returnInvertedOrderByMath() {
        int Integer1 = (tNumber % 10);
        int Integer2 = (tNumber % 100) / 10;
        int Integer3 = (tNumber % 1000) / 100;
        int Integer4 = (tNumber % 10000) / 1000;
        int Integer5 = (tNumber % 100000) /10000;

        System.out.println(Integer1 + "\n" + Integer2 + "\n" + Integer3 + "\n" + Integer4 + "\n" + Integer5);
    }

    public void returnInvertedOrderByString() {
        char part1 = sNumber.charAt(4);
        char part2 = sNumber.charAt(3);
        char part3 = sNumber.charAt(2);
        char part4 = sNumber.charAt(1);
        char part5 = sNumber.charAt(0);

        System.out.println(part1 + "\n" + part2 + "\n" + part3 + "\n" + part4 + "\n" + part5);

    }
}

你能详细说明一下“不起作用”吗?它编译吗?有什么错误吗?错误说明了什么?首先,没有提到任何症状。欢迎来到这里。请阅读和,以获取撰写好问题的提示。从你的描述中很难看出你想要完成什么。如果您要求某人在
digitExtractor(…)
构造函数中填写缺少的代码(按照惯例应该是
digitExtractor
),这是错误的地方。您需要努力解决自己的问题,而不仅仅是发布一些代码并期望其他人为您完成它。如果sNumber为null,则digitExtractor(字符串)中的代码将不会分配this.sNumber。我已经提交了修改建议。@JasonC忘记了这个!这就是IDE需要援救的时候。谢谢