方法定义
为了避免程序混乱不便于使用,所以出现方法调用这一状况:
- 注意事项:
- 方法定义的先后顺序无所谓;
- 方法必须是紧挨着的,不能够在一个方法内定义另一个方法;
具体定义代码如下所示:
public static void 方法名称(){
方法体;
}
使用时只需在主程序上面public static void mian(String[] args){}
上写下变量名称便可以执行,如下:
public class DemoMethod {
public static void main(String[] args) {
for (int i = 10; i < 20; i++) {
for (int j = 0; j < 20; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
转换为方法调用的话会变成以下几种样式:
package com.demo.study0614;
/*方法名称:
* public static void 方法名称(){
* 方法体
* }
*
* 定义格式:
* 方法名称();
*/
public class DemoMethod {
public static void main(String[] args) {
printMethod();
}
//public是说明这个是公开的方法,如果仅此class方法使用,定义private
public static void printMethod() {
for (int i = 10; i < 20; i++) {
for (int j = 0; j < 20; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
方法使用
对比有参数和无参数:
package com.demo.study0614;
/*
* 对比有参数和无参数
* 有参数:小括号内之中有内容,当一个方法需要一些数据条件,才能够完成任务
* 数字运算,必须知道两个数值是多少,才能够进行使用
* 无参数:小括号内留空,一个方法不需要任何条件,自己就能独立完成任务,就是无参数
* 定义一个固定方法,打印10次HelloWorld;
*/
public class DemoMethodParam {
public static void main(String args[]) {
System.out.println("参数学习");
method(10, 10);//method方法就是需要有参数,如果不设置数值的化会出现报错
System.out.println("打印10个*结果:");
method2();
}
public static void method(int a,int b) {
int result = a + b;
System.out.println("数值结果是:"+result);
}
public static void method2() {
for (int i = 0; i < 10; i++) {
System.out.print("*");
}
}
}
方法有返回值与无返回值:
注意事项:
- 对于有返回值的,可以单独调用,打印调用或赋值调用
- 对于无返回值的方法,只能使用单独调用
package com.demo.study0614;
/*
* 对比有返回值与无返回值
* 定义一个方法,使用方法 求两个数据之和
*/
public class DemoMethodReturn {
public static void main(String args[]) {
//main方法对getSum进行调用
//main提供数值,getSum方法进行计算
int num = getSum(15, 15);
System.out.println("返回值是:"+num);
System.out.println("=========");
//无返回值的方法
printSum(15, 10);
}
//有返回值int,谁调用便给谁用,把计算结果返回去
public static int getSum(int a,int b) {
int result = a+b;
return result;
}
//没有返回值,不会将输给跟任何人说,自己进行打印输出
public static void printSum(int a,int b) {
int result = a+b;
System.out.println("无返回值调用结果:"+result);
}
}
方法的注意事项
- 方法应该定义在类当中,但是方法中不能够在定义方法,不能够进行方法嵌套
- 方法定义的前后顺序无所谓
- 方法定义之后不会执行,如果一定要执行,一定要进行调用,调用方法有:单独调用,打印调用,赋值调用
- 如果方法有返回值,那么必须必须写上“return”返回值,不能没有 return的返回值数据,必须和返回值类型对应起来
- 对于void的返回值的方法,不能够写return后面的返回值,只能return自己 对于一个void方法中,return可以省略不写
- 一个方法可以有多个return语句,但是必须保证同时只有一个被执行到 return语句可以存着多个,但是两个return语句不能够连写。
package com.demo.study0614;
public class DemoMethodNotice {
public static int method1() {
return 10;//return的值必须要是int型
}
public static void method2() {
System.out.println("AAA");
return;//void的方法没有返回值,期间return的作业是仅仅表示结束方法执行而已
}
public static int getMax(int a,int b) {
//判断写法
// int max;
// if (a>b) {
// max = a;
// } else {
// max = b;
// }
// return max;
//新的写法
if (a>b) {
return a;
} else {
return b;
}
}
}
方法练习
问题: 比较两个数字,定义一个方法,用来判断两数字是否相同
package com.demo.study0614;
/*
* 比较两个数字
* 定义一个方法,用来判断两数字是否相同
*
*/
public class DemoMethodSame {
public static void main(String args[]) {
System.out.println("比较两个数字:");
System.out.println(isSame(10, 10));
System.out.println(isSame1(10, 5));
}
/*
* 三要素:
* 返回值类型,boolean
* 方法名称,isSanme
* 参数列表,int a,int b
*/
public static boolean isSame(int a,int b) {
/*boolean same;
//写法1
// if (a == b) {
// same=true;
// }else {
// same=false;
// }*/
//写法2
// same = a == b ? true:false;
return a == b;//写法4,只判断a是否与b相等
}
public static boolean isSame1(int c,int d) {
// 写法3
boolean same1;
same1 = c==d;
return same1;//必须要保证return后面必须是布尔值
}
}
package com.demo.study0614;
/*
* 定义一个方法,求1-100的所以数值的和
*/
public class DemoMethodSum {
public static void main(String args[]) {
System.out.println("1-100求和结果是:"+getSum());
}
/*
* 返回值:sum,一个int型数据
* 方法名称:getSum
* 参数列表:1-100,数据范围已经固定,不需要告诉任何条件
*/
public static int getSum() {
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
return sum;
}
}
package com.demo.study0614;
/*
* 定义一个方法,用来打印指定次数到Hello world
*/
public class DemoMethodPrint {
public static void main(String args[]) {
System.out.println("打印 helloworld");
System.out.println("=============");
printCount(10);
}
public static void printCount(int num) {
for (int i = 0; i < num; i++) {//参数num
System.out.println("HelloWorld"+(i+1));
}
}
}