java 方法(函数)详解
java 函数详解
- 基本概念
- 注意:
- 主函数main() 解释
- public static void main(String[] args) 含义
- 函数的参数传递
- java自定义方法(函数)
- 1. 无参无返回值方法
- 2. 无参带返回值方法
- 3. 有参无返回值方法
- 有参有返回值方法
- 完整示例:
基本概念
函数是定义在类中的一段独立的代码块,用来实现某个功能,解决了重复性代码的问题。Java中,函数又被称为方法。
函数的主要作用是为了提高程序的复用性和可读性。
函数都是在栈内存中运行;运行的函数处在栈顶。
函数格式:
修饰符 返回值类型 方法名 ( [ 参数类型1 参数名1,参数类型2 参数名2.... ] ){// [ ] 里面表示可选项,即参数不是必须的执行语句...return 返回值; //返回值的类型必须与返回值类型一致
}
说明:
- 修饰符:可以是访问修饰符,也可以说是函数修饰符(abstract、final、
static、synchronized),还可以是两者的组合。 - 返回值类型:用于限定函数返回值的数据类型。
- 方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。
- 参数类型:用于限定调用函数时传递的数据类型。
- 参数名:是一个变量,用来接收调用方法时传递的数据。
- return:用来接收方法以及返回函数指定类型的值。
- 返回值:这个值会返回给函数的调用者。
注意:
- 方法的返回值最多只能有一个,不能返回多个值
- 方法返回值的类型必须兼容,例如,如果返回值的数据类型为int ,则不能返回 String 型值。
- void 表示不确定返回值类型,不能理解为没有返回值,只是返回值的类型不确定而已;故不能定义形式参数变量来接收;
主函数main() 解释
常见的 java 主函数格式如下:
public static void main(String[] args)
- 作用:main函数是JVM识别调用的入口函数。
public static void main(String[] args) 含义
public static void main(String[] args) 含义:
- public:访问权限修饰符。因为权限必须最大,所以使用public。(具体的权限信息找度娘)。
- static: 静态修饰符。首先你必须知道main方法是一个程序的入口,如果写成非静态,那么就必须实例化一个对象再来调用它,入口函数何必难为入口呢?写成static不需要实例化对象,直接用主函数所属类名调用即可。
- void: 返回值类型空。那你可能要问,为什么不写成int?
Java中,JVM对main函数有限制,不能有返回值。写成int,让void和jvm情何以堪? - main: 函数名。切记不要和关键字搞混。它只是一个被JVM识别的固定的名字。
- String[] args: 参数类型以及参数名称。你可能还要问,为什么是String类型,为什么参数名是args?
String类型是Java的规范,不是你我能决定的;而args完全可以写成其他的合法标识符。但是为了统一起见使用args,它代表arguments:参数的意思。
因此,定义成public static void main(String[] args)貌似是必须的。
public class JavaMain {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(args); //形参值。System.out.println(args.length); //形参长度。System.out.println(args[0]); //数组第一个元素值。}
}
结果为:
[Ljava.lang.String;@15db9742
0
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0at Packger.JavaMain.main(JavaMain.java:11)
(1)"[Ljava.lang.String;@15db9742" :[Ljava.lang.String是clss名字,[ 表示一维数组,[[表示二维数组,L表示是对象类型,java.lang.String对象的标准类名;@15db9742代表哈希值。由此可知:主函数参数是一个类型为String名称为args的一维数组做形参。
(2)0 表示没有传入参数。
(3)因为没有传入参数,所以数组的长度为0,所以访问第一个数组元素产生越界。
函数的参数传递
(1).形式参数:函数定义时的参数为形式参数------>简称形参
(2).实际参数:函数调用时的参数为实际参数 ------>简称实参
参数传递:只能有实参传给形参
注意:
- 调用带参方法时,必须保证实参和形参在个数、顺序、类型上都要保持一致.
- 调用方法时,实参不需要指定数据类型
- 方法的参数可以是基本是数据类型,也可以是引用数据类型,如 String、数组;还可以是自定义数据类型
- 当方法参数有多个时,多个参数间以逗号分隔
java自定义方法(函数)
1. 无参无返回值方法
如果方法中不包含参数,且没有返回值,我们称为无参无返回值方法
范例:
public class TestDemo{public static void main(String[] agrs){print(); //主方法里面,直接调用方法print();print();}public static void print(){ //方法定义System.out.println("Hello World");System.out.println("Hello World");System.out.println("Hello World");}}
2. 无参带返回值方法
范例:
class JavaMain
{public static void main(String[] args){JavaMain test1 = new JavaMain();int sum = test1.sum();System.out.println("sum"+sum);}public int sum() {int a = 5;int b = 6;int sum = a+b;return sum;}
}
在 sum() 方法中,返回值类型为 int 类型,因此在方法体中必须 使用return 返回一个整数值。
3. 有参无返回值方法
范例:
class JavaMain
{public static void main(String[] agrs){print("Hello World"); //主方法里面,直接调用方法print("author");}public static void print(String msg){ System.out.println(msg);}
}
结果为:
Hello World
author
函数调用方式:
- 对象名.方法名(实参1,实参2,…… ,实参n)
有参有返回值方法
范例:
class JavaMain
{public static void main(String[] agrs){int result = add(10,20) ;System.out.println(result) ;//既然方法有返回值,那么这些返回值也可以直接输出System.out.println(add(100,200)) ;}public static int add(int x,int y){ return x + y ;}
}
输出结果为:
30
300
完整示例:
public class method {/*
* 程序入口,主函数 .
* @ 方法 <==> 函数,指的是同一个东西.
*/public static void main(String[] args) {// 通过函数名调用method01();method02(9, 3);System.out.println("5+6=" + add(5, 6));
}/*
* @ 函数的格式为:
* @ 访问修饰符 返回值类型 函数名(参数类型1 参数名1,参数类型2 参数名2....){
* @ 执行语句
* @ return 返回值;//返回值的类型必须与返回值类型一致
* @ }
*///声明一个静态函数method01() 无参数无返回值static void method01() {System.out.println("这是method01方法,可以通过method01();调用.");// 这个return可以省略.每个函数都是以return结束,返回到函数调用处return;}//有参数无返回值static void method02(int num1, int num2) {method01();System.out.println("这是method02方法,第一个参数是" + num1 + "第二个参数是" + num2);}/*
* 有返回值的返回值类型要和要返回的数据类型一致
* @ 例如:计算两个整数的和,结果仍然是整型,返回值类型为int.返回值类型可以说基本数据类型,也可是自定义的数据类型
*/static int add(int num1, int num2) {int sum = 0; // 声明一个整形变量并初始化为0sum = num1 + num2;// 将num1和num2的和赋值给sumreturn sum;// 将sum的值返回到调用处}
}
参考博客:
https://blog.csdn.net/hohiuching/article/details/77480471
java 方法(函数)详解相关推荐
- Java 回调函数详解及使用
Java 回调函数详解 前言: C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种: 直接调用:在函数A的函数体里通 ...
- java strlen_strlen函数详解
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止. char ...
- API读取写入 ini文件内容的方法函数详解
ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息.ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Ke ...
- Uploadify 3.2 参数属性、事件、方法函数详解以及配置
一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...
- Uploadify 3.2 参数属性、事件、方法函数详解
一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...
- Java intern函数详解
先看一个例子如果你会了那这篇文章你没必要看了,如果不会那请看下去,你一定会有收获: String s = new String("hello"); String str1 = s+ ...
- java方法重写[详解]
1. 什么是重写? 重写(overwrite,override),指子类中出现了与父类一模一样的方法,仅对非static方法有效 子类继承父类后,可以对父类中同名同参的方法进行覆盖操作 2.应用: 当 ...
- java memcpy_memcpy函数详解
函数原型: void *memcpy(void *dest,void *src, unsigned int count) { assert((dest!=NULL)&&(src!=NU ...
- java里的进制转换函数_基于Java中进制的转换函数详解
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...
- java的匿名函数_JAVA语言中的匿名函数详解
本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...
最新文章
- 迁移学习之DenseNet121(121层),DenseNet169(169层),DenseNet201(201层)(图像识别)
- 使用图形工具管理Server Core上的账号和组
- 洛谷1226快速幂模板
- Linux nginx 会话保持(session)
- sharepoint服务器安装已安装netframework4.5,仍提示未安装
- 北大光华教授孟涓涓:数据时代,从3个层面看个人隐私问题
- Jetson-TX2安装opencv教程
- 已解决jetty运行项目,@WebServlet注解失效
- Tomcat优化之配置NIO运行模式
- (转)他们才是全球高频交易顶级玩家
- 移动APP测试用例设计的关注点
- gpgga格式读取MATLAB,GPS协议GGA、GLL、GSA、GSV、RMC、VTG解释
- Axure RP 9软件安装步骤
- python爬虫--获取百度热榜
- 第一次参加本校大学生创新创业训练项目答辩的反思与总结
- python计算金星凌日
- 微信小程序书籍翻页效果
- 揭晓丨易知微吉祥物WEI WEI IP形象设计大赛获奖作品出炉
- 经典力学(动力学)——牛顿定律
- Meld——目录文件对比工具
热门文章
- Linux 安装flash
- 文华财经指标公式博易大师软件指标公式指南针多空资金指标,最精准买卖点提示指标wh6赢顺云随身行指标
- windows下的DataX的安装和使用教程
- 蓝桥杯题目练习(加法运算)
- 模糊PID控制算法的C++实现
- 修改解锁【暴力破解】《植物大战僵尸Zombie》所有模式、关卡、金钱教程。
- 标准误计算机excel公式,excel标准误差怎么算
- HTML注册页面的设计
- [GitHub][2014-05-13 06:00:39]JavaDsp
- 共享单车设计经验总结