Java 这是怎么回事?如何构造对象和方法
我是这个网站的新手,我是java的初学者。我正在做一个程序,它接收5个数字,然后把它们吐出来。为什么这个代码不起作用?这是2的第一个.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) {
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需要援救的时候。谢谢