java引用类型数据包括数组,接口,等等,当参数是引用类型时,“传值”传递的是变量中存放是“引用”,儿不是变量所引用的实体,下面有两个个很好的例子:
例子1:
首先写一个电池类,和收音机类
package Example1;
//电池类
public class Battery {
int electicityAmount;
public Battery(int amount) {
electicityAmount = amount;
}
}
package Example1;
//收音机类
public class Radio {
void openRadio(Battery battery){
battery.electicityAmount = battery.electicityAmount - 10;
}
}
主函数:
package Example1;
public class Example1 {
public static void main(String args[]){
Battery battery = new Battery(100);
System.out.println("电池的存储电量是:" + battery.electicityAmount);
Radio radio = new Radio();
System.out.println("收音机开始使用电池");
radio.openRadio(battery);
System.out.println("收音机使用后的电量为:" + battery.electicityAmount);
}
}
下面是调试结果:
电池的存储电量是:100
收音机开始使用电池
收音机使用后的电量为:90
例子2
Circle类
package Example2;
public class Circle {
/**
* 定义半径,面积
*/
double radius,area;
/**
* 构造方法
* @param r
*/
Circle(double r) {
radius = r;
}
/**
* 修改半径
* @param r
*/
void setRadius(double r){
radius = r;
}
/**
* 获得半径
* @return
*/
double getRadius(){
return radius;
}
/**
* 求面积方法
*/
double getArea(){
area = 3.14 * radius * radius;
return area;
}
}
Circular 类
package Example2;
public class Circular {
Circle bottom;
double heght;
/**
* 构造方法
*/
Circular(Circle c,double h) {
bottom = c;
heght = h;
}
/**
* 圆锥体积
* @return
*/
double getVolme(){
return bottom.getArea()*heght/3.0;
}
/**
* 获得圆锥底部的半径
*/
double getBottonRadius(){
return bottom.getRadius();
}
/**
* 修改圆锥底部的半径
*/
public void setBottomRadius(double r){
bottom.setRadius(r);
}
}
主函数:
package Example2;
public class Example {
public static void main(String args[]){
Circle circle = new Circle(20);
System.out.println("main方法中circle的引用" + circle);
System.out.println("main方法中circle的半径" + circle.getRadius());
Circular circular = new Circular(circle, 20.0);
System.out.println("circular圆锥中bottom的引用" + circular.bottom);
System.out.println("circular圆锥的半径" + circular.getBottonRadius());
System.out.println("circular圆锥的体积:" + circular.getVolme());
double r =100;
System.out.println("圆锥更改底部圆Bottom的半径:" + r);
circular.setBottomRadius(r);
System.out.println("圆锥的buttom的半径:" + circular.getBottonRadius());
System.out.println("圆锥的buttom的体积:" + circular.getVolme());
System.out.println("main方法中circle的半径:" + circle.getRadius());
System.out.println("修改后main方法中circle的引用" + circle);
System.out.println("修改后Circular方法中button的引用" + circular.bottom);
}
}
调试结果:
main方法中circle的引用Example2.Circle@659e0bfd
main方法中circle的半径20.0
circular圆锥中bottom的引用Example2.Circle@659e0bfd
circular圆锥的半径20.0
circular圆锥的体积:8373.333333333334
圆锥更改底部圆Bottom的半径:100.0
圆锥的buttom的半径:100.0
圆锥的buttom的体积:209333.33333333334
main方法中circle的半径:100.0
修改后main方法中circle的引用Example2.Circle@659e0bfd
修改后Circular方法中button的引用Example2.Circle@659e0bfd