http://blog.csdn.net/cxwen78/article/details/7322891主要从Java函数的定义,函数的特点,函数的应用,函数的重载四个方面来讲解Java函数。

一、函数的定义
    函数就是定义在类中的具有特定功能的一段独立程序,也称为方法

注意:函数是定义在类中,而不能在函数中定义函数。

二、函数的格式


修饰符  返回值类型  函数名参数类型 形式参数1, 参数类型 形式参数2, ...){    
    执行语句;
    return 返回值

示例代码:

  1. public static int getSum(int x, int y){
  2. return x+y;
  3. }

格式说明:

  • 修饰符:对函数的外加修饰,让函数具备更多的含义;
  • 返回值类型:函数运行后的返回的结果的数据类型;
  • 函数名:可自行定义,只要不和系统关键字等冲突。建议取有意义的名称,书写规范为动名词结合,若为多单词组合,则第一个单词首字母小写,后面的单词首字母大写,如getSum,表示获取求和的值。
  • 参数类型:是指形式参数的数据类型;
  • 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数;
  • 实际参数:传递给形式参数的具体数值;
  • return:用于结束函数;
  • 返回值:作为函数的处理结果返回给调用者,其数据类型必须与“返回值类型”一样;

三、函数的特点

  1. 定义函数可以将功能代码进行封装;
  2. 便于对功能代码进行复用;
  3. 函数只有被调用才会被执行;
  4. 函数的出现提高了代码的复用性;
  5. 对于函数运算后,没有具体的返回值时,返回值类型用关键字void表示,而且如果函数中的return语句如果在最后一行,则可以省略不写。

注意:
——函数中只能调用函数,不可以在函数内部定义函数。也就是说函数之间是平级的,没有包含关系,只有调用动作;
——定义函数时,函数的结果应该返回给调用者,交由调用者处理

四、函数的应用
    函数体现的是一个独立的功能,所以在定义函数之前要有“两个明确”:
    1、明确该功能的运算结果。目的是为了明确参数的返回值类型;
    2、明确在定义该功能的过程中是否有未知的内容参与运算。也就是说,函数的具体内容我们是否能完全独立实现,还是要依赖调用者给我们的一些值才能具体实现;其目的是为了明确函数的参数列表(参数的类型和参数的个数)。

原则:
如何定义一个好的函数:尽量让函数只实现一个功能,这样能提高函数的复用。

示例代码:

  1. /*需求:输出一个矩形点阵
  2. * 思路:
  3. 1、功能结果是输出一个方形点阵,返回值类型是void;
  4. 2、有未知内容参与运算,有两个,分别代表方形的长和宽,这两个未知内容类型都是int型
  5. */
  6. public static void printRectangularLattice(int Length, int Width){
  7. for(int x=0; x<Length;x++){
  8. for(int y=0; y<Width;y++){
  9. System.out.print("*");
  10. }
  11. System.out.println();
  12. }
  13. return ;
  14. }

五、函数的重载(overload)

1、重载的概念:在同一个类中,允许存在一个以上的同名函数,只要这些同名函数的参数个数或者参数类型不同即可。

2、重载的特点:与返回值类型无关,只和参数列表有关。即JVM是通过参数列表来区分函数的。而参数列表相同,但返回值类型不同的同名函数不能同时存在与一个类中。

3、重载的好处:方便于阅读,优化了程序设计;

4、重载示例:(在同一个类中)

  1. //返回两个整数的和
  2. public static int add(int x, int y){return x+y};
  3. //返回三个整数的和
  4. public static int add(int x, int y, int z){return x+y+z};
  5. //返回两个小数的和
  6. public static double add(double x, double y){return x+y};

Java函数的基本知识的更多相关文章

  1. Java面试题-基础知识

    参考文章:Java面试题-基础知识 基础能力 什么是值传递和引用传递 线程状态有哪些,它们之间是如何转换的 进程与线程的区别,进程间如何通讯,线程间如何通讯? HashMap的数据结构是什么?如何实现 ...

  2. Java快速入门-03-小知识汇总篇(全)

    Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...

  3. java开发必学知识:动态代理

    目录 1. 引言 2. 代理模式及静态代理 2.1 代理模式说明 2.2 静态代理 2.3 静态代理局限性 3. 动态代理 3.1 JAVA反射机制 3.2 JDK动态代理 3.2.1 JDK动态代理 ...

  4. [转帖]java必备的开发知识和技能

    java必备的开发知识和技能 https://blog.csdn.net/qq_34405062/article/details/89389646 学习一下java 其实上学那会儿学的 早就过时加落伍 ...

  5. Java基础 之一 基本知识

    Java基础 之一 基本知识 1.数据类型 Java有8种基本数据类型 int.short .long.byte.float.double.char.boolean 先说明以下单位之间的关系 1位 = ...

  6. Java 代码的基本知识(摘)

    (摘自:Java经典入门教程) http://wenku.baidu.com/link?url=IoWI58cD5vzeHN-NL4pN7Gren-RfzydrhjDlETAByC9L-9ANinyL ...

  7. java函数参数默认值

    java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码

  8. JS调用Java函数--DWR框架

    (1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJA ...

  9. Java函数参数传递方式详解

    在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式: A. 是按值传递的? B. 按引用传递的? C. 部分按值部分按引用? 此处暂不宣布正确答案,我们通过一个简 ...

随机推荐

  1. [NOI2010][bzoj2006] 超级钢琴 [主席树/ST表+堆]

    题面: 传送门 思路: 首先容易想到用堆维护的O(n2logn)暴力 那么肯定就是在这个基础上套数据结构了[愉快] 然而我因为过于蒟蒻......只想得到主席树暴力***过去的方法 大概就是把前缀和算 ...

  2. BZOJ2141&洛谷1975 排队 【线段树套treap】

    题目 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和. 红星幼儿园的小朋友们排起了长长地队伍,准备吃果果.不过因为小朋友们的身高有所区别,排 ...

  3. 计数(count)

    计数(count) 题目描述 既然是萌萌哒 visit_world 的比赛,那必然会有一道计数题啦! 考虑一个 NN个节点的二叉树,它的节点被标上了 1∼N1∼N 的编号. 并且,编号为 ii的节点在 ...

  4. 【最大流】hihocoder 1369 : 网络流一·Ford-Fulkerson算法

    http://hihocoder.com/problemset/problem/1369?sid=1328132 参考 https://blog.csdn.net/a1799342217/articl ...

  5. ajax跨域两个方法

    1在后端转换,调用API. ajax瀑布流: <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...

  6. nodeJS学习(5) --- sublime Text3 安装使用

    本节对对工具 sublime Text3 的安装进行简介. 主要参考网址:http://blog.csdn.net/sam976/article/details/52076271   http://w ...

  7. Android Win7 上使用cmd生成Jks

    Android Win7 上使用cmd生成Jks cmd 命令 C:\Program Files\Java\jre1.8.0_111\bin>keytool -genkeypair -alias ...

  8. Spy++使用方法

    原文转自 http://jingyan.baidu.com/article/3a2f7c2e76584a26aed61174.html 1.Spy++ 是Visual Studio 自带的工具(菜单& ...

  9. Cryptography I 学习笔记 --- 基于陷门置换的公钥加密

    RSA算法的工作流程 1. 生成公钥私钥 生成两个素数p和q,计算n=p*q,计算φ(n)=n-p-q+1,然后生成e与d,使 e * d = 1 mod φ(n). 然后以(n, e)作为公钥,(n ...

  10. angular6安装

    中文 https://www.angular.cn/ 二.下载 1.安装 node.js https://nodejs.org/en/ 2.删除老angular-cli npm uninstall - ...