首页 > 编程语言 >java参数值传递

java参数值传递

时间:2023-04-18 10:03:07浏览次数:42  
标签:printAreas java 传递 radius 半径 new Circle 方法 参数值


题目: (1)定义一个Circle类,包含一个double型的radius属性代表圆的半径
 * 一个findAre()方法返回圆的面积。
 * 
 * (2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:
 * 
 * public void printAreas(Circle c, int time)
 * 在printAreas 方法中打印输入1到time之间的每个整个半径值,以及对应的面积。
 * 
 * 例如,times 为5,则输出半径   1,2,3,4,5, 以及对应的圆面积。
 * 
 * 
 * (3)在main方法中调用printAreas()方法,调用完毕后输出当前半径值。

参考代码:

package prectice;

/**
 * 
 * (1)定义一个Circle类,包含一个double型的radius属性代表圆的半径
 * 一个findAre()方法返回圆的面积。
 * 
 * (2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:
 * 
 * public void printAreas(Circle c, int time)
 * 在printAreas 方法中打印输入1到time之间的每个整个半径值,以及对应的面积。
 * 
 * 例如,times 为5,则输出半径   1,2,3,4,5, 以及对应的圆面积。
 * 
 * 
 * (3)在main方法中调用printAreas()方法,调用完毕后输出当前半径值。
 * 
 * @author ZZ1299
 *
 */

public class Circle {

	double radius;//半径
	
	//求圆的面积
	public double findArea(){
		return Math.PI*radius*radius;
	}
	
}
package prectice;

/**
 * 考察参数的值传递
 * 
 * 参数传递的编码练习
 * 
 * 参数传递一般有两种,一种是“传值”,另一种是“传地址值”。传值是指在调用方法时,把参数的值传递给方法,
 * 而传地址值则是给方法提供参数的地址值。Java中的参数传递方法都为传值调用。
 * @author ZZ1299
 *
 */


public class PassObject {
	
	public  static void main(String[] args){
		PassObject test = new PassObject();
		
		
		/**
		 * 第三题想这么考察
		 * 输出   Circle c = new Circle();中 System.out.println 的c.radius的半径,此时半径是0.0
		 * 当		test.printAreas(c, 5);   引用放进来之后
		 * Circle c = new Circle()的地址就被传进
		 * 由于public void printAreas(Circle c, int time)  中的 Circle c   传递的是地址
		 * 所以操作for循环的半径相当于在操作Circle c = new Circle()的   c
		 * 
		 * 包括下文c.radius = time+1;半径被改成6,
		 * 实际上也是修改唯一的对象Circle c = new Circle()中的值
		 * 输出也因此改成6
		 * 
		 */
		
		
		Circle c = new Circle();
	
		test.printAreas(c, 5);
		/**
		 * 如果用匿名方法
		 * 可以这么写	test.printAreas(new Circle(), 5);
		 */
		
		System.out.println("now radius is "+ c.radius);
		/**
		 * 这里输出的是 now radius is 5.0
		 * for(int i = 1; i <=time; i++){  //①因为这里的time是5, 赋值结束之后i++变成6的时候没进去
			
			//设置圆的半径
			c.radius = i;	②所以这一行没有操作到
		}
		 
		//③因此可以在这里重新赋值, 让半径加1
		
		c.radius = time+1;
		* 
		 */
	}
	

	public void printAreas(Circle c, int time){
		
		System.out.println("Radius\t\tArea");
		
		for(int i = 1; i <=time; i++){
			
			//设置圆的半径
			c.radius = i;
			System.out.println(c.radius +"\t\t" +c.findArea());
			
			
			/**
			 * System.out.println(c.radius +"\t\t" +c.findArea());当中,对于编译器来讲,		
			 * c.findArea()返回的是一个double型的变量,因此这里可以看成是一个变量。
			 * 
			 * 如果不适应这个写法,可以像下边这么写:
			 * 	double area = c.findArea();
			 *	System.out.println(c.radius +"\t\t" +area);
			 *	这里其实和变量是一回事,只是没有给他显式添加变量而已
			 */
		}
		//③因此可以在这里重新赋值, 让半径加1
		c.radius = time+1;
		
		
		/**
		 * 对于第三题,有人把它改成这样
		 * int i = 1;
		 * for(int i = 1; i <=time; i++){
			
			//设置圆的半径
			c.radius = i;
			System.out.println(c.radius +"\t\t" +c.findArea());
			}
			
			//输出当前的i的值就可以了   因为i 已经不是在for中定义的了
			c.radius = i;
			
		 * 
		 */
		
		
	}
}

运行结果:

java参数值传递_赋值

标签:printAreas,java,传递,radius,半径,new,Circle,方法,参数值
From: https://blog.51cto.com/u_14381196/6202389

相关文章

  • java 递归方法 计算1-100之间的所有自然数的和 计算1-100之间所
    packageprectice;/***递归方法的使用**递归方法的定义:一个方法体内调用他自身**①方法递归包含了一种隐式循环,它会重复执行某段代码,但这种重发执行无须循环控制。*②递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似死循环。** 例1:计......
  • java笔试题目——要求:仅打印出a=100,b=200,请写出method方法的代码
    //题目:publicclassTest{publicstaticvoidmain(String[]args){inta=10;intb=10;method(a,b);//需要在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码。System.out.println("a="+a);S......
  • Java 实现Arrays 数组工具类
    ClassArrays是java工具包自带的非常强大的数组工具类,今天手工实现了一部分功能,部分参考实现如下publicclassMyArrays{//最大值/***获取int数组最大值**@paramarr:代遍历的数组*@return数组最大值*/publicintgetMax(......
  • java集合的stream操作
     //获取user里面所有id集合List<String>idList=list.stream().map(User::getId).collect(Collectors.toList());//list转换为id为key的mapMap<String,User>userMap=list.stream().collect(Collectors.toMap(User::getId,a->a,(k1,k2)->k1));//li......
  • java如何将JSONObject转成实体对象
    importcom.google.gson.Gson;importorg.json.JSONObject;//...JSONObjectjson=newJSONObject("{\"name\":\"JohnSmith\",\"age\":30}");Gsongson=newGson();Personperson=gson.fromJson(json.toString()......
  • Java-Day-10(Object 常用类 + JDK 源码 + 断点调试)
    Java-Day-10Object常用类equals方法==与equals==是一个比较运算符既可以判断基本类型,又可以判断引用类型如果判断基本类型,判断的是值是否相等如果判断引用类型,判断的就是地址是否相同,即判断是否是一个对象equals是Object类中的方法,只能判断引用类型默认......
  • Java-Day-11(项目零钱通 + 章节练习)
    Java-Day-11项目零钱通功能搭建菜单显示完成零钱明细完成收益入账完成消费功能实现退出完善,进行y/n确认判断入账、消费金额的合理性面向过程的代码packagecom.hspJava;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanne......
  • java进程保持运行
    将jar包放进服务器,运行java-jarxxx.jar是可以跑起来的,但是把XShell关闭后,就表示与服务器断开了,网页也就进不去了。那么让jar包一直处于运行状态的方法是nohupjava-jarxxx.jar&按下回车后再输入exit注意,一定要输入exit,才能让其一直运行,这是最重要的一步然后关闭XShell,也......
  • java 日志脱敏处理
    1publicstaticvoidmain(String[]args)throwsException{2Patternpattern=Pattern.compile("[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}");3Stringtext="\"Joe1\"55656kkk;[email protected]&......
  • java面试提问记录
    面试官-薪资问题?区间如18~22k 怎样考虑?工作职责范围,复杂度,如技术加管理?适当上浮(1k、2k)工作强度,比较常加班?适当上浮(1k、2k)工作福利,是否有,啥都没有?适当上浮(1k、2k) 面试者(自己)提问试用期是否能提供全薪?是否有减薪的操作?比如绩效......