java 函数详解

  • 基本概念
    • 注意:
  • 主函数main() 解释
    • public static void main(String[] args) 含义
  • 函数的参数传递
  • java自定义方法(函数)
    • 1. 无参无返回值方法
    • 2. 无参带返回值方法
    • 3. 有参无返回值方法
    • 有参有返回值方法
  • 完整示例:

基本概念

函数是定义在类中的一段独立的代码块,用来实现某个功能,解决了重复性代码的问题。Java中,函数又被称为方法。

函数的主要作用是为了提高程序的复用性和可读性。

函数都是在栈内存中运行;运行的函数处在栈顶

函数格式:

修饰符 返回值类型 方法名 ( [ 参数类型1 参数名1,参数类型2 参数名2.... ] ){// [ ] 里面表示可选项,即参数不是必须的执行语句...return 返回值; //返回值的类型必须与返回值类型一致
}

说明:

  • 修饰符:可以是访问修饰符,也可以说是函数修饰符(abstract、final、
    static、synchronized),还可以是两者的组合。
  • 返回值类型:用于限定函数返回值的数据类型。
  • 方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。
  • 参数类型:用于限定调用函数时传递的数据类型。
  • 参数名:是一个变量,用来接收调用方法时传递的数据。
  • return:用来接收方法以及返回函数指定类型的值。
  • 返回值:这个值会返回给函数的调用者。

注意:

  1. 方法的返回值最多只能有一个,不能返回多个值
  2. 方法返回值的类型必须兼容,例如,如果返回值的数据类型为int ,则不能返回 String 型值。
  3. 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).实际参数:函数调用时的参数为实际参数 ------>简称实参

参数传递:只能有实参传给形参

注意:

  1. 调用带参方法时,必须保证实参和形参在个数、顺序、类型上都要保持一致.
  2. 调用方法时,实参不需要指定数据类型
  3. 方法的参数可以是基本是数据类型,也可以是引用数据类型,如 String、数组;还可以是自定义数据类型
  4. 当方法参数有多个时,多个参数间以逗号分隔

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 方法(函数)详解相关推荐

  1. Java 回调函数详解及使用

    Java 回调函数详解 前言: C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种: 直接调用:在函数A的函数体里通 ...

  2. java strlen_strlen函数详解

    strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止. char ...

  3. API读取写入 ini文件内容的方法函数详解

    ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息.ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Ke ...

  4. Uploadify 3.2 参数属性、事件、方法函数详解以及配置

    一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...

  5. Uploadify 3.2 参数属性、事件、方法函数详解

    一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...

  6. Java intern函数详解

    先看一个例子如果你会了那这篇文章你没必要看了,如果不会那请看下去,你一定会有收获: String s = new String("hello"); String str1 = s+ ...

  7. java方法重写[详解]

    1. 什么是重写? 重写(overwrite,override),指子类中出现了与父类一模一样的方法,仅对非static方法有效 子类继承父类后,可以对父类中同名同参的方法进行覆盖操作 2.应用: 当 ...

  8. java memcpy_memcpy函数详解

    函数原型: void *memcpy(void *dest,void *src, unsigned int count) { assert((dest!=NULL)&&(src!=NU ...

  9. java里的进制转换函数_基于Java中进制的转换函数详解

    十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...

  10. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

最新文章

  1. 迁移学习之DenseNet121(121层),DenseNet169(169层),DenseNet201(201层)(图像识别)
  2. 使用图形工具管理Server Core上的账号和组
  3. 洛谷1226快速幂模板
  4. Linux nginx 会话保持(session)
  5. sharepoint服务器安装已安装netframework4.5,仍提示未安装
  6. 北大光华教授孟涓涓:数据时代,从3个层面看个人隐私问题
  7. Jetson-TX2安装opencv教程
  8. 已解决jetty运行项目,@WebServlet注解失效
  9. Tomcat优化之配置NIO运行模式
  10. (转)他们才是全球高频交易顶级玩家
  11. 移动APP测试用例设计的关注点
  12. gpgga格式读取MATLAB,GPS协议GGA、GLL、GSA、GSV、RMC、VTG解释
  13. Axure RP 9软件安装步骤
  14. python爬虫--获取百度热榜
  15. 第一次参加本校大学生创新创业训练项目答辩的反思与总结
  16. python计算金星凌日
  17. 微信小程序书籍翻页效果
  18. 揭晓丨易知微吉祥物WEI WEI IP形象设计大赛获奖作品出炉
  19. 经典力学(动力学)——牛顿定律
  20. Meld——目录文件对比工具

热门文章

  1. Linux 安装flash
  2. 文华财经指标公式博易大师软件指标公式指南针多空资金指标,最精准买卖点提示指标wh6赢顺云随身行指标
  3. windows下的DataX的安装和使用教程
  4. 蓝桥杯题目练习(加法运算)
  5. 模糊PID控制算法的C++实现
  6. 修改解锁【暴力破解】《植物大战僵尸Zombie》所有模式、关卡、金钱教程。
  7. 标准误计算机excel公式,excel标准误差怎么算
  8. HTML注册页面的设计
  9. [GitHub][2014-05-13 06:00:39]JavaDsp
  10. 共享单车设计经验总结