va.i = 20
ValHold vh = new ValHold ()
va = vh
这几行运行以后,要记住一点,
上面的v.i的值是这样一个过程:->10->30->20到此结束。
下面
ValHold vh = new ValHold ()
va = vh
的意思是va重新指向另外一个新的对象,而原来的v指向的对象还是不变。
所以结果就是这样,区别于C++
这个其实原理很简单,关键要搞清楚里面的内存分配情况。
有机会可以给你画画内存的分配,呵呵...
应为你没有对数组的元素初始化,new一下就行了class OOP {public static void main(String[] args) {DVD1[] manager = new DVD1[6]for (int i = 0i <manager.lengthi++) {manager[i] = new DVD1() } manager[0].name = "罗马假日" manager[0].date = "1日" manager[0].state = "可借" manager[0].times = 10manager[1].name = "java编程" manager[1].date = "null" manager[1].state = "可借" manager[1].times = 11manager[2].name = "面向对象" manager[2].date = "null" manager[2].state = "可借" manager[2].times = 1 }}
1、定义一个数组对象
String[] arr = new String[2]//定义一个字符串数组变量arr,数组是一维数组,长度是22、通过数组索引给数组赋值
arr[0] = "a"//给数组第一个赋值字符串aarr[1] = "b"//给数组第二个赋值字符串b