JAVA代码解释:下列程序的输出结果为: public class TestApple { int i=0; Apple(int i){ this.i=i; } Apple increament(){ i++; return this; } void print(){ System.out.println("i="+i); } public static void main(String[] args) { Apple redapple=new Apple(1000); redapple.increament().increament().print(); }
时间: 2024-04-06 11:29:27 浏览: 76
这段Java代码的输出结果为 "i=1002"。
这段代码定义了一个名为 "TestApple" 的公共类,其中包含一个实例变量 "i" 和三个方法:构造函数 "Apple"、 "increment" 方法和 "print" 方法。
构造函数 "Apple" 接受一个整数参数 "i",并将其设置为实例变量 "i" 的值。
"increment" 方法将实例变量 "i" 的值加 1,并返回当前对象的引用。
"print" 方法将实例变量 "i" 的值打印到控制台。
在主方法中,我们创建一个名为 "redapple" 的 "Apple" 对象,传递参数值为 1000。然后,我们对 "redapple" 对象连续调用两次 "increment" 方法,并最终调用 "print" 方法打印实例变量 "i" 的值。由于 "increment" 方法返回当前对象的引用,因此我们可以使用连续调用的方式来多次增加实例变量 "i" 的值。最终输出结果为 "i=1002",说明实例变量 "i" 的值已经加了两次 1,从初始值 1000 变为 1002。
相关问题
import java.util.Arrays; public class Test15{ public static void main(String[] args){ String[] fruits = {"peach", "banana", "orange", "apple"}; Arrays.sort(fruits); for (int i =0;i<fruits.length;i++) { System.out.println(fruits[i]); } } }写出其输出的结果及结果的5条特点
该程序的输出结果为:
```
apple
banana
orange
peach
```
该结果的 5 条特点如下:
1. 输出的字符串按字母顺序排序。
2. 排序是区分大小写的,因此小写字母排在大写字母的前面。
3. 数字和特殊字符的顺序排在字母的前面。
4. 原数组 `fruits` 并没有被改变,排序后的结果存储在一个新的数组中。
5. 排序算法使用的是归并排序(Merge Sort)。
package step4; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Reflect_stu { public static void main(String[] args) throws InvocationTargetException { //使用反射调用 Class clazz = null; try { clazz = Class.forName("step4.Apple"); /********** Begin *********/ Method setPriceMethod = clazz.getMethod("setPrice", double.class); Constructor appleConstructor = clazz.getConstructor(); Object apple = appleConstructor.newInstance(); setPriceMethod.invoke(apple, 14); Method getPriceMethod = clazz.getMethod("getPrice"); System.out.println(getPriceMethod.invoke(apple)); Method getTotal = clazz.getMethod("getTotal", double.class, int.class); System.out.println(getTotal.invoke(apple, 20, 24)); /********** End *********/ } catch (Exception e) { e.printStackTrace(); } } } class Apple { private double price; private int count; public Apple() { } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public double getTotal(double price, int count) { return price * count; } }
这段代码是一个使用反射调用的示例,它包括一个主类 Reflect_stu 和一个 Apple 类。在主类中,首先使用 Class.forName 方法获取 Apple 类的 Class 对象,然后使用 getMethod 方法获取 Apple 类中的 setPrice、getPrice 和 getTotal 方法,并使用 getConstructor 方法获取 Apple 类的默认构造方法的 Constructor 对象。接着使用 newInstance 方法创建一个 Apple 对象,并使用 invoke 方法调用 setPrice 方法设置 Apple 对象的价格为 14,使用 invoke 方法调用 getPrice 方法获取 Apple 对象的价格并输出,最后使用 invoke 方法调用 getTotal 方法计算 Apple 对象的总价并输出。
阅读全文