对象作为参数传递的练习&匿名类对象的使用
package six;
/*
1、将对象作为参数传递给方法。
题目要求:
(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。
(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:
public void printAreas(Cirlce c, int time)
在printAreas方法中打印输出1到time之间的每个整数半径值,以及对应的面积。例如,times为5,则输出半径1,2,3,4,5,以及对应的圆面积。
在main方法中调用printAreas()方法,调用完毕后输出当前半径值。程序运行结果如图所示。
*/
/*
1. 匿名类对象:创建的类的对象是匿名的。
1)当我们只需要一次调用类的对象时,我们就考虑使用匿名的方式创建类的对象。
2)特点:创建的匿名类的对象只能够调用一次!
*/
class Circle{
double radius;
public double findArea(){
return Math.PI * radius * radius;
//return Math.PI * getRadius() * getRadius();
}
public void setRadius(double r){
radius = r;
}
public double getRadius(){
return radius;
}
}
public class PassObject {
public void printAreas(Circle c,int time) {
System.out.println("Radius" + "\t\t" + "Area");
// int temp = 0;
// for(int i = 1;i <= time ;i++,temp = i){
// c.setRadius(i);
// System.out.println(c.getRadius() + "\t\t" + c.findArea());
// }
// c.setRadius(temp);
int i =1;
while(i <= time){
c.setRadius(i);
System.out.println(c.getRadius() + "\t\t" + c.findArea());
i++;
}
c.setRadius(i);
}
public static void main(String[] args) {
PassObject p = new PassObject();
Circle c = new Circle();//此时c的半径为0。
p.printAreas(c,5);
System.out.println("now radius is " + c.getRadius());
System.out.println();
// //匿名类Circle
// p.printAreas(new Circle(), 6);
// new Circle().setRadius(2.3);
}
}
韧桂 2019-12-24