本文内容:

  • 什么是函数
  • 函数的定义格式
  • 函数的重载(overload):
  • 函数的调用使用注意
  • 关于形式参数的使用

首发时间:2017-06-23

修改时间:2018-03-21:修改了布局,修改了一些标题名称,小修改了一些文字描述


什么是函数

  • 在java中函数是定义在类中的具有特定功能的一段代码【由于java是完全面向对象的,函数也可以认为是一个对象\类的行为】
  • 函数也可以称为方法

函数的定义格式:

  • 格式:
  • 介绍:
    • 修饰符:
      • 访问权限修饰符  :
        • public:函数是公共的,不同包的其他类也可以访问
        • 友好权限:默认是不填,同一个包下的类能够访问,不同包的不能访问
        • protect:保护的函数,自己以及子类可以访问,但其他类不能访问
        • private:私有的函数,其他类不能访问
      • 类型修饰:
        • static:函数是静态的,当类初始化就生成,可以直接使用类来调用
    • 返回值类型:函数返回值的类型,是数据类型
    • 函数名:函数的名称
    • 参数类型 形式参数:形式参数用于传入指定参数来执行操作
    • 返回值:函数可以返回一个值,比如a=函数名(),那么a可以赋值为函数的返回值
package function_usage;

public class Demo {
static void function2(int a) {
System.out.println("function2,"+a);
}
void functio1() {
System.out.println("function1");
}
public static void main(String args[]) {
function2(5);
} } /** 修饰符 返回值类型 函数名 ([参数类型 形式参数1,参数类型 形式参数2......]){
执行语句
[return 返回值]
} public static void main(String args[]){ System.out.println("hello world");
System.out.println("hello world"); } */

函数的重载(overload):

  • 可以有多个同名的函数,但参数个数或参数类型不同,称为函数重载。
  • 重载方便了程序的设计,比如:要设计一个加法函数,名字都可以定义为add,但重载使add可以根据参数的不同来选择不同的重载函数,当形式参数为三个int时,会选择add(int a,int b,int c),而不是add(int a,int b)
    • package function_usage;
      
      class Calc{
      int add(int a,int b) {
      return a+b;
      }
      int add(int a,int b ,int c) {
      return a+b+c;
      }
      double add(double a ,double b) {
      return a+b;
      }
      } public class Overload_usage {
      public static void main(String args[]) {
      Calc c=new Calc();
      int a=c.add(1,2);
      int b=c.add(1, 2,3);
      double d=c.add(1.2,3.4);
      System.out.println(a);//3
      System.out.println(b);//6
      System.out.println(d);//4.6
      } }

重载函数的格式:

  • 1.同返回值类型,不同参数。
    • int add(int x,int y)
    • int add(int x,int y,int z)
    • int add(double x,double y)
  • 2.不同返回值类型,不同参数。
    • int add(int x,int y)
    • double add(int x,int y,int z)
  • 总而言之--必须不同参数(个数或数据类型不同)。
  • 注意:不同返回值类型,同参数。//不行,因为可能会引起调用的不确定性。
    • 比如:
    • int add(int x,int y)
    • double add(int x,int y)
    • 那么究竟是使用哪个呢,无法确定。

函数的调用使用注意:

1.实例函数既能对类变量操作也能对实例变量操作,而类函数(static)只能对类变量进行操作。

因为它们生命周期不同。 类方法类创建的时候就创建了,而实例变量只有实例对象创建时才创建。

2.实例函数可以调用该类中的其他函数包括类函数,类中的类函数只能调用该类的类函数。


关于形式参数的使用:

数据类型转换:

参数中,可以把小的类型的值传给大的类型作为参数

1.基本数据类型:对于基本数据类型的参数,向该参数传递的值类型级别不可以大于该参数的类型级别(不可以向int传递float,可以向double传递float)

2.引用类型:引用类型可以传递成它的父类或祖先类,比如Object是所有类的父类,所有类对象都可以使用Object类型的形式参数来接收

可变参数情况:

在最后一个形参的类型之后增加三点...,则表明该形参可以接受多个参数值,多个参数值被当成数组传入。

但个数可变的形参,只能处于形参列表的最后一项,所以一个方法中最多只能有一个长度可变的形参

如:


JAVA:函数的定义、使用的更多相关文章

  1. Java函数的基本知识

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

  2. [java学习笔记]java语言基础概述之函数的定义和使用&函数传值问题

    1.函数 1.什么是函数? 定义在类中的具有特定功能的一段独立小程序. 函数也叫做方法 2.函数的格式 修饰符   返回值类型    函数名(参数类型  形式参数1, 参数类型  形式参数2-) { ...

  3. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  4. 【Python】Java程序员学习Python(五)— 函数的定义和使用

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  5. C++ 回调函数的定义与用法

    一回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函 ...

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

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

  7. 【Java学习笔记之七】java函数的语法规则总结

    函数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则称作函数. ...

  8. Java基本语法-----java函数

    函数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则称作函数. ...

  9. Kotlin基础(二)函数的定义与调用

    函数的定义与调用 一.预备知识:在Kotlin中创建集合 fun main(args: Array<String>) { //Kotlin中定义各自集合 val ,,,) val list ...

随机推荐

  1. 多线程之CountDownLatch和CyclicBarriar使用

    CountDownLatch和CyclicBarriar是java.util.concurrent包下面提供的多线程同步工具,两者有点相似,相当于计数器,但是用处还是有区别的. CountDownLa ...

  2. Android使用Xutil3.0下载文件.md

    Android使用Xutil3.0下载文件.md 新建项目: 引入依赖: implementation 'org.xutils:xutils:3.5.0' 添加权限: <uses-permiss ...

  3. Vue笔记:VS Code 常用快捷键

    VS Code 常用快捷键 1.注释: 单行注释:ctrl+/, 注释后再按取消 取消单行注释:alt+shift+A 注释后再按取消 2.移动行 向上移动一行:alt+up 向下移动一行:alt+d ...

  4. 【IT笔试面试题整理】二叉搜索树转换为双向链表

    [试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...

  5. Navicat创建视图与美化SQL

    数据库-->视图-->新建视图,点击视图创建工具,将需要用到的表拖入到右侧,然后再底部填写具体的字段等,示意图如下: 注意:视图的字段别名或者列名是不能重复的,否则创建失败: 当视图语句非 ...

  6. Dev-FAT-UAT-PRO

    DEV Development environment FAT Feature Acceptance Test environment UAT User Acceptance Test environ ...

  7. 分布式理论(五)—— 一致性算法 Paxos

    前言 Paxos 算法如同我们标题大图:世界上只有一种一致性算法,就是 Paxos.出自一位 google 大神之口. 同时,Paxos 也是出名的晦涩难懂,推理过程极其复杂.楼主在尝试理解 Paxo ...

  8. 并发编程之 ConcurrentHashMap(JDK 1.8) putVal 源码分析

    前言 我们之前分析了Hash的源码,主要是 put 方法.同时,我们知道,HashMap 在并发的时候是不安全的,为什么呢?因为当多个线程对 Map 进行扩容会导致链表成环.不单单是这个问题,当多个线 ...

  9. .3-浅析webpack源码之预编译总览

    写在前面: 本来一开始想沿用之前vue源码的标题:webpack源码之***,但是这个工具比较巨大,所以为防止有人觉得我装逼跑来喷我(或者随时鸽),加上浅析二字,以示怂. 既然是浅析,那么案例就不必太 ...

  10. jQuery补充知识点

    链式编程 通常情况下,只有设置操作才能把链式变成延续下去.因为获取 操作的时候,会返回获取到的响应的值,无法反对jQuery对象. //end(); 筛选选择器会改变jQuery对象的DOM对象,想要 ...