Java的方法重载与变量作用域简介
方法的重载
上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢?
解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:
public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; }
如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;
如果传递的事double型参数,则double类型的max方法体会被调用,这叫做方法重载;
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。
变量作用域
变量的范围是程序中该变量可以被引用的部分。
方法内定义的变量被称为局部变量。
局部变量的作用范围从声明开始,直到包含它的块结束。
局部变量必须声明才可以使用。
方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
for循环的初始化部分声明的变量,其作用范围在整个循环。
但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明:
你可以在一个方法里,不同的非嵌套块中多次声明一个具有相同的名称局部变量,但你不能在嵌套块内两次声明局部变量。
相关推荐
-
Java的访问修饰符与变量的作用域讲解
Java访问修饰符(访问控制符) Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] arguments)
-
JavaSript中变量的作用域闭包的深入理解
复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 1.js中的变量都是公用的. 2.js中没有静态变量 3.闭包:函数内部可以调用函数外部的变量;反之,则不行 */ v
-
Java变量和对象的作用域
大多数程序设计语言都提供了"作用域"(Scope)的概念. 对于在作用域里定义的名字,作用域同时决定了它的"可见性"以及"存在时间".在C,C++和Java里,作用域是由花括号的位置决定的. 变量的作用域 例子: { int x = 12; /* only x available */ { int q = 96; /* both x & q available */ } /* only x available */ /* q "
-
Java的方法重载与变量作用域简介
方法的重载 上面使用的max方法仅仅适用于int型数据.但如果你想得到两个浮点类型数据的最大值呢? 解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示: public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; } 如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用: 如果传递的事double型参数,则doub
-
Java支持方法重载的原因
Java为什么要支持方法重载 为什么要使用重载?而不是把一个方法名字换成不同的. 任何编程语言中都具备的一项重要特性就是名称.当你创建一个对象时,就会给此对象分配的内存空间一个名称.一个方法就是一种行为的名称.通过名称引用所各种对象,属性和方法.良好的命名可以让系统易于理解和修改. 将人类语言细微的差别映射到编程语言中会产生一个问题.通常,相同的词可以表达多种不同的含义--它们被"重载"了.特别是当含义的差别很小时,这会更加有用. 你会说"清洗衬衫"."清
-
区分Java的方法覆盖与变量覆盖
首先,我们看看关于重载,和覆盖(重写)的简明定义: 方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载. 方法覆盖:如果在子类中定义一个方法,其名称.返回类型及参数签名正好与父类中某个方法的名称.返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法 我们重点说说覆盖问题,以如下代码为例: public class People { public String getName() { return "people"; } } public
-
Java构造方法和方法重载详解
目录 第一 构造方法的作用 第二 构造方法的特点 方法重载 总结 类的结构包括 : 1. 成员变量 2. 成员方法 3. 构造方法 4. 代码块 5. 内部类 第一 构造方法的作用 主要有以下三方面的作用: (1)在构造方法中为创建的对象初始化赋值 (2)在创建一个对象的时候,至少需要调用一个构造方法 (3)每一个类都有构造方法 一个例子加深对以上三条的理解 public class Car{ String name; String color; float price; } 上一篇文章已经讲解
-
带你深入概括Java!六、方法和方法重载!(推荐)
一. 掌握方法和参数语法和反回值语 方法的分类: – 1. 无参无返(没有参数列表,没有返回值)单纯的作为 功能代码的聚合使用 便于功能复用. – 2.无参有返(没有参数列表,有返回值)例如: 我需要每次生成一个随机卡号 – 3.有参无返(有参数列表 没有返回值) 适用于功能需要根据参数来进行计算的情况,但是计算的最终结果又无需返回处理 – 4. 有参有返(有参数列表,有返回值)适用于功能需要根据参数来进行计算的情况,而且最终的结果需要被我们拿到(返回处理) 方法的形参和实参: 形参 :是定义在
-
Java中方法的重写与成员变量的隐藏
这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? /** * @author Hollis 17/9/27. */ public class FieldOverriding { public static void main(String[] args) { Sub c1 = new Sub(); System.out.println(" c1.s : " +
-
Java方法重载和重写原理区别解析
一.方法重写(0verride) 在Java 程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这样一种操作方法称为重写,也可以叫覆写或覆盖. 所以,所谓方法的重写是指子类中的方法和父类中继承的方法有完全相同的返回值类型.方法名.参数个数和参数类型.这样就可以实现对父类方法的覆盖. 如果子类将父类的方法重写了,调用的时候肯定是调用被重写过的子类的方法,但是
-
Java中方法的使用、重载与递归的详细介绍
目录 一.方法的基本使用 1.什么是方法 2.方法基本语法 二.方法的重载 1.重载的作用 2.重载的使用规则 三.方法的递归 1.递归的概念 2.递归执行过程分析 3.递归练习 1.按顺序打印一个数字的每一位 2.递归求 1 + 2 + 3 + ... + 10 3.返回组成它的数字之和 4.求斐波那契数列的第 N 项 一.方法的基本使用 1.什么是方法 方法是一个代码片段,类似于C语言中的函数 2.方法基本语法 基本语法 // 方法定义 public static 方法返回值 方法名称(参数
-
JavaScript变量作用域_动力节点Java学院整理
在JavaScript中,用var申明的变量实际上是有作用域的. 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: 'use strict'; function foo() { var x = 1; x = x + 1; } x = x + 2; // ReferenceError! 无法在函数体外引用变量x 如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用.换句话说,不同函数内部的同名变量互相独立,互不影响: 'use stric
-
java方法重载示例
什么是方法的重载? 方法重载是以统一的方式处理不同数据类型的一种手段. 怎样构成方法的重载? 方法名相同, 形参不同.而形参的不同又表示在: 1). 形参的个数不同 2). 形参的类型不同 3). 形参的顺序不同 注意事项 1. 如果两个方法的返回值不同, 而其他都相同. 这个时候并不构成方法的重载. 在编译的时候会报错: 示例代码(错误):Test.java 复制代码 代码如下: /*返回值的不同并不能构成方法的重载*/public class Test { public stati
随机推荐
- ASP 正则表达式常用的几种方法(execute、test、replace)
- 用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux
- java模拟cookie登陆操作
- .net下log4net使用方法详解
- JavaScript实现的原生态Tab标签页功能【兼容IE6】
- PHP 数组学习排序全接触第1/2页
- JavaScript跨浏览器获取页面中相同class节点的方法
- 读取TXT文件内容的方法
- JS异步加载的三种实现方式
- 基于PHP和Mysql相结合使用jqGrid读取数据并显示
- 基于jQuery的弹出框插件
- jquery实现动态画圆
- js将字符转换为UTF-8字符的工具
- JS数组array元素的添加和删除方法代码实例
- c语言stack(栈)和heap(堆)的使用详解
- Java8的default方法详细介绍
- 一个多文件上传的例子(原创)
- Java实现的获取和判断文件头信息工具类用法示例
- Python利用itchat对微信中好友数据实现简单分析的方法
- 如何理解Vue的v-model指令的使用方法