Java基础知识(七)&方法

7 方法

7.1方法的使用

7.1.1方法引入

public class MethodDemo {

	public static void main(String[] args) {
	  //种菜人
		System.out.println("播种");
		System.out.println("施肥");
		System.out.println("拔草");
		System.out.println("浇水");
		System.out.println("除虫");
		System.out.println("收割");
        
      //厨师
		System.out.println("洗菜");
		System.out.println("切菜");
		System.out.println("炒菜");
		System.out.println("装盘");
		System.out.println("上桌");
        
      //咱们
		System.out.println("洗手");
		System.out.println("吃菜");
		

	}

}
 上述问题:把所有功能都放到main()方法里,如果改某一个功能,显得main()太臃肿,不好维护,因此需要把这些功能分开,需要用到该功能,调用就可以了,方便维护,如下:

public class MethodDemo {

	public static void main(String[] args) {
	  //种菜人
		种菜人()
     
      //厨师
		厨师()
            
      //咱们
		咱们()
		

	}

}

7.1.2方法介绍

1、问题
  所有功能的代码都放在main()方法中写,会显得main()方法太乱,代码多,太臃肿->不好维护
 解决:
 将不同功能的代码放到不同方法中,想执行某个功能,直接调用方法名就可以了,对应的代码就执行起来,将来维护的时候,直接找到对应的方法,就可以对其进行修改维护。
 
2、方法:
拥有功能性代码的代码块
将不同的功能放在不同的方法中,给每个方法取名,直接调用方法名,对应的方法执行起来,好维护


3、通用定义格式:
修饰符  返回值类型  方法名(参数){
    方法体
    return 结果
      
}

4、通过通用格式,分为四种类型,如下:
    a、无参无返回值
    b、有参无返回值
    c、无参有返回值
    d、有参有返回值


7.1.3 无参无返回值

1、无参无返回值方法定义
    public static void 方法名(){
    	方法体->实现此方法的具体代码
    
}
2、调用:直接调用
    在其他方法中:方法名()
3、注意事项:
    a、void关键字代表无返回值,写了void,就不要在方法中写return
    b、方法不调用不执行,main()方法是jvm调用的
    c、方法之间不能互相嵌套,方法是平级关系
    d、方法的执行顺序只和调用顺序有关,谁先调用谁先执行。
    

4、各部分解释:
 a、修饰符:public static
 b、返回值类型:
    该方法返回结果的数据类型,eg:return 1 -->返回结果为int类型
   如果没有写返回值,就不要写具体的返回值类型了
 c、方法名
 d、参数:进入到方法内部参与执行的数据(数据类型  变量名)
 e、方法体
    实现该方法具体代码
 f、return 结果,如果有返回值,可以利用return奖结果返回
    
    
    
public class MethodDemo {
	public static void main(String[] args) {
		zhongcai_people();
		cook();
		Me();
	}
	public static void zhongcai_people() {
		System.out.println("播种");
		System.out.println("施肥");
		System.out.println("拔草");
		System.out.println("浇水");
		System.out.println("除虫");
		System.out.println("收割");		
	}
	public static void cook() {
		System.out.println("洗菜");
		System.out.println("切菜");
		System.out.println("炒菜");
		System.out.println("装盘");
		System.out.println("上桌");
	}
	public static void Me() {
		System.out.println("洗手");
		System.out.println("吃菜");
	}
}

7.1.4 有参无返回值

1、格式:
    public static void 方法名(数据类型 变量名){
    	方法体
    
}
2、调用:直接调用
    方法名(具体值)->调用的时候要给参数赋值
    
public class MethodDemo02 {
	public static void main(String[] args) {
		add(23, 5);
		
		
	}
	public static void add(int a,int b) {
		
		int sum=a+b;
		System.out.println("sum="+sum);
		
	}

}

3、执行流程

在这里插入图片描述

7.1.5 无参有返回值

1、格式:
public static 返回值类型 方法名(){
    方法体
     return 结果
}

2、调用:返回值返回给谁?哪里调用返回给哪里。  
    a、打印调用:sout(方法名()--->不推荐使用
    b、赋值调用:调用完之后用一个变量接收返回值结果---->推荐
       数据类型 变量名=方法名()
  
    
public class MethodDemo3 {
	public static void main(String[] args) {
		
		//1、打印调用--->不推荐
		System.out.println(add());
		//2、还要使用sum方法结果,怎么办,使用赋值语句
		int result=add();
		System.out.println("result="+result);
		
		
	}
	public static int add() {
		
		int a=23;
		int b=5;
		int sum=a+b;
		
		return sum;
	}

}

在这里插入图片描述

7.1.6 有参有返回值

1、格式:
public static 返回值类型 方法名(数据类型  变量名){
    方法体
     return 结果
}    
    
2、调用:
	赋值调用:调用完之后用一个变量接收返回值结果---->推荐
            数据类型 变量名=方法名()
    
public class MethodDemo04 {
	public static void main(String[] args) {
		int result=add(23,5);
		System.out.println("result="+result);	
	}
	public static int add(int a,int b) {
		int sum=a+b;
		return sum;
	}
}

在这里插入图片描述

3、形式参数和实际参数的区别
    1.形式参数(形参):在定义方法的时候形式上定义的参数,此参数没有值
    2.实际参数(实参):在调用方法的时候给形参赋具体的值

在这里插入图片描述

4、参数和返回值的使用时机
	1.参数:当想将方法A的数据传递到方法B时,定义方法B时就需要带个参数,在方法A中调用方法B时,可以将方法A的数据通过参数传到方法B2.返回值:
    	调用方法A时,想要方法A的结果,去参与其他的操作,那么方法A 就需要将自己的结果返回
	
public class MethodDemo05 {
	public static void main(String[] args) {
		

		int i=34;
		int j=56;
		boolean result =compare(i,j);
		System.out.println("result="+result);
		
		
	}
	public static boolean compare(int a,int b) {
		if(a>b) {
			return true;
		}else {
			return false;
		}
	}
}

运行结果:
 result=false

7.1.7 方法注意事项

1、方法不调用不执行
2、方法的执行顺序只和调用顺序有关
3、方法之间不能嵌套
4void不能和[return 结果]共存,但是void能和[return]共存
   void:代表没有返回值
   return 结果:代表有返回值
               先将结果返回,然后结束方法
   return:仅仅代表结束方法,不代表有返回值
    
public class MethodDemo06 {
	public static void main(String[] args) {		
		method();
	
	}
	public static void method() {
		return;	
	}
}

5、一个方法中不能连续写多个return
6、调用方法的时候看下面有没有这个方法,没有直接调用会报错。

7.1.8 方法练习

1)、判断奇偶性
需求:键盘录入一个整数,将整数传递到另外一个方法中,在此方法中判断这个整数的奇偶性
    
import java.util.Scanner;
public class MethodDemo07 {
	public static void main(String[] args) {	
		Scanner sc =new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int a=sc.nextInt();
		String s=jiouxing(a);
		System.out.println(s);
	}
	public static String jiouxing(int a) {
		if(a%2==0) {
			return "偶数";
		}else {
			return "奇数";
		}
	}
}

2、求1-100的和,并将结果返回
public class MethodDemo08 {
	public static void main(String[] args) {
		int result=add_100();
		System.out.println("result="+result);	
	}
	public static int add_100() {
		int sum=0;
		for(int i=0;i<=100;i++) {
			sum=sum+i;
		}
		return sum;

	}
}

3、打印三次java is beautiful!
    
public class MethodDemo09 {
	public static void main(String[] args) {
		printThree(3);	
	}
	public static void printThree(int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("java is beautiful!");	
		}
	}
} 

4、数组作为方法参数传递参数,并实现遍历数组
public class MethodDemo10 {
	public static void main(String[] args) {
		
		int [] arr = {1,4,6,3,9,32,67,9};
		printarray(arr);	
	}
	public static void printarray(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);	
		}
	}
}

5、数组作为方法返回值返回
public class MethodDemo10 {
	public static void main(String[] args) {
		int [] arrs=printarray();
		for (int i = 0; i < arrs.length; i++) {
			System.out.println(arrs[i]);	
		}
		
		
			
	}
	public static int[] printarray() {
		int [] arr = {11,24,6,9};
		return arr;
		
	}
}
 


6、需求:定义一个方法,找到数组中最大值的索引
public class TestMaxIndex {
    public static void main(String[] args) {
        int[] arr1 = {12, 65, 23, 64, 167, 71, 37, 80, 60, 3};
        int count = max(arr1);
        System.out.println(count);
 
    }
    //定义最大值方法
    public static int max(int[] arr) {
        int max = arr[0];  //定义第一个元素为最大往后面比较
        int index = 0;      //记录索引的编号
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
                index = i;
            }
        }
        //返回值
        return index;
    }
}

7.2方法重载

1、概述:方法名相同,参数列表不同的方法
2、什么叫参数列表不同:
    a、参数个数不同
    b、参数类型不同
    c、参数类型顺序不同
3、判断两个方法是否为重载方法,和什么无关:
    a、和参数名无关
    b、和返回值无关
需求:定义三个方法,分别求2个整数相加,3个整数相加,4个整数相加
public class Methodoverload {
	public static void main(String[] args) {
		sum(3,5);
		sum(3,5,6);
		sum(3,5,6,7);
		sum(3.5, 5);
		sum(3, 5.3);
	
			
	}
	public static void sum(int a,int b) {
		System.out.println(a+b);

	}
	public static void sum(int a,int b,int c) {
		System.out.println(a+b+c);

	}
	public static void sum(int a,int b,int c,int d) {
		System.out.println(a+b+c+d);

	}
	public static void sum(double a,int b) {
		System.out.println(a+b);

	}
	public static void sum(int a,double b) {
		System.out.println(a+b);

	}
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的进步!!Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 20 四、 面向对象★★★★★ 21 五、 封装(面向对象特征之一)★★★★ 23 六、 继承(面向对象特征之一)★★★★ 25 、 接口(面向对象特征之一)★★★★ 28 八、 多态(面向对象特征之一)★★★★ 30 九、 java.lang.Object 31 十、 异常★★★★ 34 十一、 包(package) 37 十二、 多线程★★★★ 39 为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三、 同步★★★★★ 67 十四、 Lock接口 70 十五、 API 71 String字符串:★★★☆ 71 StringBuffer字符串缓冲区:★★★☆ 73 StringBuilder字符串缓冲区:★★★☆ 74 基本数据类型对象包装类★★★☆ 75 集合框架:★★★★★,用于存储数据的容器。 76 Collection接口 77 Iterator接口 78 List接口 78 Set接口 80 Map接口 81 把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 System 89 Runtime 90 Math 90 .Date:日期类,月份从0—11 92 Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符流与字节流 98 流对象 101 File类 102 Java.util.Properties 103 介绍IO包中扩展功能的流对象 103 十、 网络编程 110 网络基础之网络协议篇 111 UDP传输 124 TCP传输 126 十八、 反射技术 127 十九、 Ajax原理及实现步骤★★★★★ 130 Ajax概述 130 Ajax工作原理 130 Ajax实现步骤 130 详解区分请求类型: GET或POST 131 $.ajax标准写法 134 二十、 正则表达式:其实是用来操作字符串的一些规则★★★☆ 135 二十一、 设计模式★★★★★ 136 设计模式简介 136 单例设计模式:★★★★★ 156 工厂模式★★★★★ 159 抽象工厂模式★★★★★ 163 建造者模式 170 原型模式 177 适配器模式 182 桥接模式 188 过滤器模式 192 组合模式 193 装饰器模式★★★★★ 196 外观模式 201 享元模式 204 代理模式★★★★★ 208 责任链模式 212 命令模式 216 解释器模式 219 迭代器模式 222 中介者模式 224 备忘录模式 226 观察者模式 230 状态模式 233 空对象模式 236 策略模式★★★★★ 238 模板模式 240 访问者模式 244 设计模式总结★★★★★ 247 二十二、 Java其他总结 248 Java JVM知识点总结 248 equals()方法和hashCode()方法 270 数据结构 273 Array方法类汇总 304 Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java 性能优化 362

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值