Jave 之方法-函数(5)
如何定义Java中的方法:
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。 (方法在C语言中被称为函数)
一般情况下,定义一个方法的语法是:
其中:
1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,
其中 public 表示该方法可以被其他任何代码调用
2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;
如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值
3、 方法名:定义的方法的名字,必须使用合法的标识符
4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数
由参数类型和参数名组成,以空格隔开
根据方法是否带参、是否带返回值,可将方法分为四类:
Ø 无参无返回值方法
Ø 无参带返回值方法
Ø 带参无返回值方法
Ø 带参带返回值方法
举个栗子:
public class HelloWorld { //定义了一个方法名为 print 的方法,实现输出信息功能
public void print() {
System.out.println("Hello World");
} public static void main(String[] args){ //在 main 方法中调用 print 方法
HelloWorld test=new HelloWorld();
test.print();
}
}
Java中无参无返回值方法的使用方法
如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。
方法的使用分两步:
第一步,定义方法
例如:下面代码定义了一个方法名为 show ,没有参数,且没有返回值的方法,执行的操作为输出 “ welcome to imooc. ”
public void show(){ // void 为返回值类型 show为 方法名
System.out.println("Welcome to my blog!"); // 方法体
}
注意哦:
1、 方法体放在一对大括号中,实现特定的操作
2、 方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式
第二步,调用方法
当需要调用方法执行某个操作时,可以先创建类的对象,然后通过 对象名.方法名(); 来实现
(关于类和对象的概念在后面会详细讲解滴,先熟悉语法,表着急哦~~)
例如:在下面的代码中,我们创建了一个名为 hello 的对象,然后通过调用该对象的 show( ) 方法输出信息
public class HelloWorld{
public static void main(String[] args){
// 创建对象,对象名为hello
HelloWorld hello = new HelloWorld();
// 通过对象名.方法()的形式调用方法
hello.show();
}
}
// 定义方法
public void show(){
System.out.println("Welcome to my blog!");
}
运行结果为: welcome to my blog!
Java中无参带返回值方法的使用
如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。
例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,
执行的操作为计算两数之和,并返回结果
public int calcSum(){
int a = 5;
int b = 12;
int sum = a+b;
return sum;
}
在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值。
调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。如:
public class HelloWorld{
public static void main(String[] args){
// 创建对象 对象名为hello
HelloWorld hello = new HelloWorld();
// 调用方法并接收方法的返回值 保存在变量sum中
int sum = hello.calcSum();
System.out.println("两数之和为:"+sum);
}
}
// 定义无参带返回值的方法
public int calcSum(){
int a = 5;
int b = 12;
int sum = a+b;
return sum;
}
运行结果为: 两数之和为:17
不容忽视的“小陷阱”:
1、 如果方法的返回类型为 void ,则方法中不能使用 return 返回值!
2、 方法的返回值最多只能有一个,不能返回多个值
3、 方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值
举个栗子:
public class HelloWorld { public static void main(String[] args) { // 创建名为hello的对象
HelloWorld hello = new HelloWorld(); // 调用hello对象的calcAvg()方法,并将返回值保存在变量avg中
double avg = hello.calcAvg(); System.out.println("平均成绩为:" + avg);
} // 定义一个返回值为double类型的方法
public double calcAvg() { double java = 92.5;
double php = 83.0;
double avg = (java + php) / 2; // 计算平均值 // 使用return返回值 return avg;
}
}
Java中带参无返回值的方法使用
有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行。
例如,现实生活中电饭锅可以实现“煮饭”的功能,但前提是我们必须提供食材,如果我们什么都不提供,
那就真是的“巧妇难为无米之炊”了。我们可以通过在方法中加入参数列表接收外部传入的数据信息,
参数可以是任意的基本类型数据或引用类型数据。
我们先来看一个带参数,但没有返回值的方法:
上面的代码定义了一个 show 方法,带有一个参数 name ,实现输出欢迎消息。
调用带参方法与调用无参方法的语法类似,但在调用时必须传入实际的参数值
例如:
HelloWorld hello = new HelloWorld(); // 创建对象 对象名为hell
hello.show("Welcome to my blog!"); // 调用带参方法时必须传入参数值
运行结果为: 欢迎您,爱慕课!
很多时候,我们把定义方法时的参数称为形参,目的是用来定义方法需要传入的参数的个数和类型;把调用方法时的参数称为实参,是传递给方法真正被处理的值。
一定不可忽视的问题:
1、 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
2、 调用方法时,实参不需要指定数据类型
3、 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
4、 当方法参数有多个时,多个参数间以逗号分隔
举个栗子:
public class HelloWorld {
public static void main(String[] args) { // 创建对象,对象名为hello
HelloWorld hello = new HelloWorld(); // 调用方法,传入两门课程的成绩
hello.calcAvg(94, 81);
} /*
* 功能:计算两门课程考试成绩的平均分并输出平均分
* 定义一个包含两个参数的方法,用来传入两门课程的成绩
*/
public void calcAvg(int a, int b){
double c = (double)(a+b)/2;
System.out.println(c);
}
}
Java 中带参带返回值方法的使用
如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法。
例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 String 类型的结果
调用带参带返回值的方法:
HelloWorld hello = new HelloWorld(); // 创建对象 对象名为hello
String welcome = hello.show("Welcome to my blog!"); // 调用带参返回值的方法 将返回值保存在变量welcome
System.out.println(welcome);
运行结果为: Welcome to my blog!
举个栗子:
import java.util.Arrays; public class HelloWorld {
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
int[] scores={79,52,98,81}; //调用方法,传入成绩数组,并获取成绩的个数
int count= hello.sort(scores); System.out.println("共有"+count+"个成绩信息!");
} /*
* 功能:将考试成绩排序并输出,返回成绩的个数
* 定义一个包含整型数组参数的方法,传入成绩数组
* 使用Arrays类对成绩数组进行排序并输出
* 方法执行后返回数组中元素的个数
*/
public int sort( int[] scores ){
Arrays.sort(scores);
System.out.println(Arrays.toString(scores)); //返回数组中元素的个数
return scores.length;
}
}
Java中方法的重载:
问: 什么是方法的重载呢?
答: 如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,
则称为方法的重载,也可称该方法被重载了。如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载:
问: 如何区分调用的是哪个重载方法呢?
答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:
运行结果:
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系
举个栗子:
public class HelloWorld {
public static void main(String[] args) { // 创建对象
HelloWorld hello = new HelloWorld(); // 调用无参的方法
hello.print(); // 调用带有一个字符串参数的方法
hello.print("Welcome to my blog!"); // 调用带有一个整型参数的方法
hello.print(18);
} public void print() {
System.out.println("无参的print方法");
} public void print(String name) {
System.out.println("带有一个字符串参数的print方法,参数值为:" + name);
} public void print(int age) {
System.out.println("带有一个整型参数的print方法,参数值为:" + age);
}
} /*
无参的print方法
带有一个字符串参数的print方法,参数值为: Welcome to my blog!
带有一个整型参数的print方法,参数值为:18 */
Jave 之方法-函数(5)的更多相关文章
- <经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数
说起反射之前和很多用C#/.net的同仁们一样,相比于一般应用层对数据的增删改查总有点觉得深奥到难以理解.其实程序这东西,用过.实践过就很简单,我一直这么认为. 先说下概念:反射 Reflection ...
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
本节的主要讨论内容是有关dict字典的一些常用的方法函数的使用和范例展示. 1. clear清除字典数据 语法结构如下: dict_obj.clear() 示例代码如下: dict1 = {'web' ...
- PHP(方法 函数 循环 和 数组 查找)
循环 和 数组 查找 顺序查找 二分法查找 冒泡排序 方法 函数 定义:一堆代码的集合叫做函数(满足条件下“一堆”) 语法,定义,调用,参数列表(形参,实参),返回值 两种方法: function 方 ...
- scala(一)方法&函数
写在前面 众所周知,scala一向宣称自己是面向函数的编程,(java表示不服,我是面向bean的编程!)那什么是函数? 在接触java的时候,有时候用函数来称呼某个method(实在找不出词了),有 ...
- OpenCV2:总结篇 工具方法函数
一.简介 OpenCV提供了一些工具方法函数来辅助完成图像运算 二.时间相关 1.getTickCount()和getTickFrequency() double tTime; tTime = (do ...
- C#学习笔记_06_方法&函数
06_方法&函数 方法的定义 方法就是一个功能的集合,可以把程序中某段具有特殊功能的代码提取出来: 声明方法 [ 访问权限修饰符 ] [ 其他的修饰符 ] 返回值类型 方法名 ( [形参列表] ...
- Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: 反射的概念是由Smith在1982年首次提出的 ...
- Dart匿名方法函数和闭包
/* 内置方法/函数: print(); 自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; } */ void printInfo( ...
- JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)
数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码 ...
随机推荐
- PowerBuilder中新建PBL
首先需要打开工作区间workspace , 然后选择你的第一个根pbl文件. 如图所示: 选择WorkSpace下的第一个application.PBT文件,然后单击鼠标右键,选择属性Properti ...
- shevle模块
什么是shevle模块 该模块用于序列化python中的数据,但是序列化已经有pickle了为什么出现了shevle? 因为shevle更加简单,封装了文件的读写操作.load和dump操作, 只有一 ...
- 获取LAMP与LNMP的编译参数
1.查看nginx的编译参数[root@LNMP ~]# /application/nginx/sbin/nginx -Vnginx version: nginx/1.6.3built by gcc ...
- 【中间件】Struts2系列漏洞POC小结
#Struts2-045 ''' CVE-2017-5638 影响范围:Struts 2.3.5 – Struts 2.3.31,Struts 2.5 – Struts 2.5.10 触发条件:基于J ...
- Storm个人学习总结
https://www.jianshu.com/p/c7fba7d6a24d https://www.cnblogs.com/peak-c/p/6297794.html https://blog.cs ...
- appium解决无法通过name属性识别元素org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session
执行代码.: public AndroidDriver<AndroidElement> appiumDriver; appiumDriver.findElement(By.name(&qu ...
- Webpack的详细配置,[Webpack中各种loader的安装配置]
在使用webpack的时候,你是不是被以下这种报错所困扰: 注意看 黄色框中标注的 You may need an appropriate loader to handle this file typ ...
- es put mapping
fd dg public Map<String, Map<String, String>> javaBeanToMapping(Object instance, List< ...
- Java - n的阶乘计算
用递归方法,求10!的阶乘 分析: f(n) = n * f(n-1) n != 1 ----- 递推公式 f(n) = 1 ...
- 生成随机32位Token43位asekey
// 生成随机32位Token字符和43位AseKey var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', ' ...