我刚开始编程,我想从书中练习,但我不能。那是我的问题:
public class increment {
int increment() {
return this + 1; // aka this++
}
public static void main(String[] args) {
int a = 0;
System.out.println(a.increment());
}
}
正如你肯定已经猜到的那样,它不起作用,我想问你如何将输出的整数增加1,但使用关键字'this'。
对愚蠢的问题表示抱歉和抱歉。
答案 0 :(得分:6)
将类命名为方法很奇怪。 我想你想要这个:
public class Counter {
int val;
public Counter (int start) {
val = start;
}
public void increment() {
val ++;
}
public String toString () {
return Integer.toString (val);
}
public static void main(String[] args) {
Counter counter = new Counter (0);
counter.increment ();
System.out.println(counter.toString ());
}
}
答案 1 :(得分:4)
this
是一个对象(当前对象)。你不能“增加”它。
一种方法是:
public class Increment {
int a = 0;
int increment() {
return a + 1;
// or: return this.a + 1;
// or: a++; return a; if you want a to be incremented from now on
}
public static void main(String[] args) {
Increment inc = new Increment();
System.out.println(inc.increment());
}
}
答案 2 :(得分:2)
Java中的this
关键字是指当前范围的对象实例。在这种情况下,我认为这不是你想要的。
在您的示例中,a
不是类increment
的对象,它是原始int
。为了使用您定义的.increment()
函数,它必须是increment
类型的对象。
您可能正在寻找的一个选项如下:
public class Increment { //Java likes capitalized class names
private int myInt;
public Increment(int a) { //constructor
myInt = a;
}
public int increment() {
return ++myInt;
}
public static void main(String[] args) {
Increment a = new Increment(0);
System.out.println(a.increment());
}
}
在这个例子中,我们创建了一个类increment
的新类,它在内部包含一个整数。它的递增方法递增内部整数,然后返回数字。
答案 3 :(得分:0)
你不能像这样增加一个类。 您必须使用可以递增的成员变量。
public class Test {
private int var;
public Test(int i) {
this.var = i;
}
int increment() {
this.var++;
}
}
public static void main(String[] args) {
Test t = new Test(0);
System.out.println(t.increment());
}
答案 4 :(得分:0)
您正在使用运算符+
作为当前对象(this
)。 java中不支持运算符重载。
答案 5 :(得分:0)
这样的事情会起作用:
class MyInteger {
private int internal;
public MyInteger( int value ){
this.internal = value;
}
public int incerment(){
return ++this.internal;
}
}
public class Increment {
public static void main(String[] args) {
MyInteger a = new MyInteger(0);
System.out.println(a.increment());
}
}
您可以看到,您只能为自己的类实现方法,不能为现有类或int
等基元实现方法。
答案 6 :(得分:0)
我不认为你可以使用它来返回值,除非你正在创建一个像这样的新类:
class Increment1
{
private int a;
public int increment2(int a)
{
this.a=a;
return this.a + 1;
}
}
public class Increment
{
static Increment1 b = new Increment1();
public static void main(String[] args)
{
int a = 0;
System.out.println(b.increment2(a));
}
}
答案 7 :(得分:-1)
这是指该类的当前实例,而不是特定成员。
你想增加一个属性(我猜的是long或int类型),而不是你的增量类的实例(顺便说一下,应该是Increment)。
这样的事情会起作用:
public class increment {
private int innerValue = 0;
int increment() {
innerValue+=1
return innerValue; // aka this++
}
public static void main(String[] args) {
increment a = new increment()
System.out.println(a.increment());
}
}