fun方法JAVA_Java基础 -- Java方法

Java方法

什么是方法?

Java方法是语句的集合,他们在一起执行一个功能。

方法是解决问题步骤的有序集合。

方法包含于类或对象中。

方法在程序中被创建,在其他地方被引用。

设计方法原则:一个方法只完成一个功能。

方法的本意是功能块,即实现某个功能的语句块的集合。我们设计方法的时候最好保持方法的原子性,就是一个方法只完成一个功能。

方法的定义

Java方法类似函数,一段完成特定功能的代码。

方法包含一个方法头和方法体。包含:修饰符,返回值类型,方法名,参数类型,方法体

格式:

/*

修饰符 返回值类型 方法名(参数类型 参数名){

...

方法体

...

return 返回值;

}

*/

public static int max(int num1,int num2){

int result = 0;

if (num1==num2){

System.out.println("num1=num2");

return 0;//终止方法

}

int result =num1>num2?num1:num2;

return result;

}

方法的调用

语法:对象名.方法名(实参列表)

Java支持两种调用方式,根据是否有返回值来选择。

两种方式:

int larger = max(30,40);

System.out.println("Hello,World!");

课后拓展:

值传递:传原实参副本,不改变实参变量。

引用传递:传内存地址,操作该地址的变量,原实参发生改变。

Java只存在值传递。

public static void main(String[] args) {

//StringBuilder sb = new StringBuilder("iphone");

//foo(sb); // sb 没有被改变,还是 "iphone"。

//Java中只有值传递

int count = 66;

fun(count);

String str = "abc";

fun1(str);

}

/*

值传递:调用方法将实参作为副本放入方法中,无论方法中如何修改不影响原实参

引用传递:将变量的内存地址传给方法,操作时会找到保存在地址内的变量,一旦修改会对原实参产生影响

*/

//fun方法

static void fun(int count){

count = 666;

}

//fun1

static void fun1(String str){

str = "aabbcc";

}

// static void foo(StringBuilder builder) {

// builder = new StringBuilder("ipad");

// }

方法的重载

定义:一个类中,函数名相同,形参不同。

规则:

方法名必须相同

参数列表必须不同(个数/类型/顺序不同)

方法返回值类型可以相同可以不同

仅仅返回值不同不足以成为方法的重载

实现理论:

方法名相同时,IDE根据调用方法的参数个数,类型,顺序注意匹配,以选择对应方法,如匹配失败,则IDE报错

public static void main(String[] args) {

double max = max(10.0, 20.0);

System.out.println(max);

}

/*方法的重载:

1.方法名必须相同

2.参数列表必须不同(参数个数,类型,排列顺序)

*/

public static double max(double a,double b){

double result = 0;

if (a==b){

System.out.println("a=b");

return 0;//终止方法

}

if (a>b){

result = a;

}else{

result = b;

}

return result;

}

public static int max(int a,int b){

int result = 0;

if (a==b){

System.out.println("a=b");

return 0;//终止方法

}

if (a>b){

result = a;

}else{

result = b;

}

return result;

}

命令行传参

代码:

public class Demo03 {

public static void main(String[] args) {

/*

命令行传参

*/

for (int i = 0; i

System.out.println("args["+i+"]:"+args[i]);

}

}

}

在文件夹下 javac CommandLine.java

返回src目录cd ../../../

java com.wang.method.Demo03 this is wang

13170290.html

可变参数

jdk1.5后,java支持互残笛同类型可变参数给一个方法

方法声明中,在指定参数类型后加一个...

一个方法中至指定一个可变参数,它必须是方法的最后一个参数。

public static void main(String[] args) {

Demo04 demo04 = new Demo04();

// demo04.test(1,2,3,4,5,6,7,8);

//调用可变参方式

printMax(5,8,13,46,95,56,67,82,1);

printMax(new double[]{1,2,3});

}

//可变参数

public void test(int x,int ... i){

System.out.println(x);

System.out.println(i[0]);

System.out.println(i[1]);

System.out.println(i[2]);

System.out.println(i[3]);

System.out.println(i[4]);

}

public static void printMax(double ... numbers){

if (numbers.length==0){

System.out.println("No arguement passed");

return;

}

double result = numbers[0];

//排序

for (int i = 1; i

if (numbers[i]>result){

result = numbers[i];

}

}

System.out.println("The max value is "+result);

}

递归(小计算使用)

public static void main(String[] args) {

System.out.println(fac(3));

}

/*递归:

1.自己调用自己

2.用有限语句定义对象无限集合

结构:1.什么时间不调用自己 2. 什么时间调用自己

边界条件: 前阶段 --> 返回阶段

*/

public static int fac(int n){

if (n==1){

return 1;

}else{

return n*fac(n-1);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值