Java中的方法与参数以及对象的组合
2021/5/17 22:25:25
本文主要是介绍Java中的方法与参数以及对象的组合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
上一篇文章:Java程序的构成
本篇内容
- 方法
- 参数
- 参数传值
- 可变参数
- 对象的组合
方法
在前面的文章中,已经提到过方法的定义,但是不够详细,所以这里再详细介绍一下
定义方法的完整格式为如下:
方法头:是指方法的修饰符(modifier)、返回值类型(return value type)、方法名(method name) 和方法的参数(parameter)
带返回值的方法:value-returning method
无返回值的方法:void method。无返回值的方法仅仅是一个过程(procedure),实现一个具体的功能
形式参数&形参(formal parameter):定义在方法头中的变量,简称形参(parameter)
实际参数&实参(actual parameter & argument):调用方法时给形参传递的一个值
参数列表(parameter list):指明方法中参数的类型、个数和顺序
参数
参数传值
一般参数传值: 一般情况下普通的参数传值,直接将实参的数值复制到形参
引用类型参数传值: “引用”相当于C语言当中的指针,将引用传给形参,在方法中改变引用当中的实体。Java中的数组就是引用类型,包括创建的对象也是引用类型的
class Circle { //Circle类 double radius; //定义一个半径 Circle(double r){ //构造方法,创建对象时给radius赋初值 radius = r; } } class Area { //Area类 double circleArea(Circle cir){ //定义了一个返回值为double型的方法,其中的参数为Circle类,即引用型参数传值 cir.radius = 3.0; //修改圆的半径的值,由原来的5.0变为3.0 return 3.1415926*cir.radius*cir.radius; } } public class Example { public static void main(String args[]){ Circle cir = new Circle(5.0); //创建一个Circle类的对象,并给radius赋值为5.0 Area area = new Area(); //创建一个Area类 System.out.println("圆的半径修改前:"+cir.radius); double area_cir = area.circleArea(cir); //cir为Circle类,引用型参数传值,调用方法 System.out.println("圆的面积为:"+area_cir); System.out.println("圆的半径修改后:"+cir.radius); } }
可变参数
可变参数(the variable arguments): 可变参数是指同一数据类型的形参的个数不确定,用三个点...
来代替。
如public void method_1(int ... a)
,在这个method_1方法头中,从第一个参数直到最后一个参数的个数不确定,统一用变量a
来代替,这个变量a
就像是这些参数的“代表”。
再如public void method_2(double a, int ... b)
,在这个method_2方法头中,第一个参数是一个double型的,从第二个形参开始直到最后一个参数都是int类型的
“参数代表”必须是参数列表的最后一个,public void method_3(int ... x, int y)
是错误的,因为参数代表后面还有一个int型的变量y
class ComputeSum { int c_sum(int ... x){ int a = x.length; //x.length统计传进的参数的个数 int sum = 0; for(int i = 0; i < a; i++){ //可采用下标的方式使用参数代表 sum += x[i]; } return sum; } } public class Example { public static void main(String args[]){ ComputeSum a = new ComputeSum(); System.out.println(a.c_sum(1, 2, 3)); System.out.println(a.c_sum(5, 3, 9, 2, 32, 6)); } }
对象的组合
在一个类体中创建了另外一个类的对象,这就是对象的组合。
在同一个文件夹中保存三个Java源文件,分别如下:
//文件名:Circle.java public class Circle { //类名Circle,源文件的名字应当和类名保持一致 double radius, area; //成员变量radius和area void setRadius(double r){ //void型的方法,参数double型的r radius = r; } double getRadius(){ //double型的方法,返回值为double型 return radius; } double getArea(){ area = 3.14*radius*radius; //计算圆面积并返回值 return area; } }
//文件名:Circular.java public class Circular { Circle bottom; //创建一个Circle类的对象 double height; void setBottom(Circle c){ bottom = c; } void setHeight(double h){ height = h; } double getVolume(){ if(bottom == null) return -1; else return bottom.getArea()*height/3.0; } double getBottomRadius(){ return bottom.getRadius(); } public void setBottomRadius(double r){ bottom.setRadius(r); } }
//文件名:Example.java public class Example { public static void main(String args[]){ Circle circle = new Circle(); //创建一个Circle对象circle circle.setRadius(10.0); Circular circular = new Circular(); //创建一个Circular类的对象,形成对象的组合 System.out.println("circle的引用:"+circle); //直接输出对象的引用 System.out.println("圆锥的bottom的引用:"+circular.bottom); //此时的bottom还是一个空对象null circular.setHeight(5); circular.setBottom(circle); //此时bottom不再是null空对象,而是circle System.out.println("circle的引用:"+circle); //再次输出circle的引用 System.out.println("圆锥的bottom的引用:"+circular.bottom); //现在bottom的引用和circle的引用是一致的 System.out.println("圆锥的体积:"+circular.getVolume()); System.out.println("修改circle的半径,bottom的半径同样变化"); circle.setRadius(50); System.out.println("bottom的半径:"+circular.getBottomRadius()); System.out.println("重新创建circle,circle的引用将发生变化"); circle = new Circle(); System.out.println("circle的引用:"+circle); System.out.println("但是不影响circular的bottom的引用"); System.out.println("圆锥的bottom的引用:"+circular.bottom); } }
运行结果:
这篇关于Java中的方法与参数以及对象的组合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略