引用变量
引用变量也只是个变量值,只是引用变量中放的并不是对象本身,存放的是存取对象的方法类似于指针。准确的说你无法把对象装进变量中,对象只会存在于堆上。
例
Dog myDog=new Dog();
代表取得对象的方法以字节的形式放进变量myDog,而对象本身并没有放进对象中。
通过引用变量调用对象中的方法。
例
myDog.bark();
代表名为myDog的变量引用Dog对象上的bark()。你可以把它想象成遥控器与上面的按钮。
引用变量就是遥控器,调用bark方法相当于按了遥控器上的名为bark的按钮。
注意事项
虽然引用变量中含有指针,但是不能够对它进行运算。因为Java不是C。
但是同种的引用变量可以相互赋值。
对象的数组
数组
数组犹如杯架
声明一个数组变量nums,它是数组对象的遥控器。
int[ ] nums;
创建大小为7的数组
nums = new int[7];
给每个数组元素赋一个int类型的值
nums[0]=0;
nums[1]=1;
nums[2]=2;
nums[3]=3;
nums[4]=4;
nums[5]=5;
nums[6]=6;
示意图
创建Dog数组
Dog [ ] pets=new Dog[7];
注意此处每个数组元素都是Dog类型的引用变量,所以每个元素都要new一个Dog对象,否则该元素的值就会变成NULL。
例
pets[0]=new Dog();
pets[1]=new Dog();
示意图
对象的行为
状态与行为是相互影响的
也就是实例变量与方法是相互影响的
虽然任一类的对象的方法是相同的,但通过调用不同的实例变量值可表现不同的行为
方法
java中的方法类似于C语言中的函数,调用方法的一方传入实参,方法则运用行参
方法的返回值必须与其定义的类型一样。你也可以传入多个参数,但方法中的形参也要有这麽多。但是Java中只有值传递也就是拷贝传递。
方法中的变量是局部变量必须要初始化,而实例变量可以不用初始化
封装
原则:将你的实例变量标记为私有的(private)并提供公有的(public)方法来控制存取行为