[JAVA学习笔记] 21天学习挑战赛之方法

​写在前面

本文介绍了JAVA方法的相关学习以及使用过程中的一些书写规范,方法的修饰符(访问,静态等)若有需要,请在评论区留言,会在后续补充。

JAVA学习之方法

定义

格式

作用

方法重载

书写规范

缓存方法调用的值

 避免冗长的参数列表

活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

**

JAVA学习之方法

**
定义

一种语法结构,将一段代码封装成一个功能,以方便重复调用。

格式

[访问修饰符] [static] [返回值类型|void] functionName(Object params){
    //Todo...
}

tips:

若方法不需要返回值,则必须被void关键字修饰;

若定义了方法的返回值类型,则必须有return且return与}之间不能有其他代码;

参数列表可以没有,直接通过functionName()调用方法.

作用

方法可以将功能拆分出来,使代码的逻辑更为清晰;

将功能拆分出来有利于提高代码的复用性,避免代码冗杂。

方法重载

是Java多态性的代表之一

在同一个类中,多个方法名相同,形参列表不同

用于实现功能相似的场景,保持代码具有良好的可读性。

书写规范

缓存方法调用的值

调用有返回值的方法,应定义对应变量保存返回值,防止对方法重复调用(平时写代码时没怎么注意,但在项目中有打印log的需求时发现了这个问题,方法被我多次调用,导致我输出的log重复打印了多次),提高运行效率。

 避免冗长的参数列表

当参数列表很长时,可以将该参数列表封装一个类,保持代码的整洁性与良好的可读性(一个方法的参数列表长度尽量不要超过5个),然后通过setter与getter方法去为参数赋值与取值。

下面是作者做项目时写的一个方法:

protected String doConversionForBase(String sheet, String type, String data, String key, String[] headers,int row) {
    //TODO...
}

 显然,方法的参数很长,很影响代码的可读性

 将参数列表封装成Data类

public class Data {
	private String sheet;
    private String type
	private String data;
	private String key;
	private String[] headers;
	private int row;
	public Data() {
		super();
	}
	public String getSheet() {
		return sheet;
	}
	public void setSheet(String sheet) {
		this.sheet = sheet;
	}
    public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getData() {
		return data;
	}
	public void setData(String data) {
		this.data = data;
	}
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public String[] getHeaders() {
		return headers;
	}
	public void setHeaders(String[] headers) {
		this.headers = headers;
	}
	public int getRow() {
		return row;
	}
	public void setRow(int row) {
		this.row = row;
	}
}

方法便可以定义为:

protected String doConversionForBase(Data rowdata) {
	String sheet = rowdata.getSheet();
    String type = rowdata.getType();
	String data = rowdata.getData();
	String keys = rowdata.getKey();
	String[] headers = rowdata.getHeaders();
	int row = rowdata.getRow();
    //TODO...
    return "";
}

调用方法前只需要实例化Data类,调用setter方法传递属性值便可以了。

Data rowdata = new Data();
rowdata.setHeaders(headers);
rowdata.setType(type);
rowdata.setData(data);
rowdata.setKey(key);
rowdata.setSheet(sheet);
rowdata.setRow(row);
String result = co.doConversionForBase(rowdata);

代码现在看起来就很清晰了。 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸海鹿林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值