public class PrimitiveOverload { static void prt(String s) { System.out.println(s); } void f1(char x) { prt("f1(char)"); } void f1(byte x) { prt("f1(byte)"); } void f1(short x) { prt("f1(short)"); } void f1(int x) { prt("f1(int)"); } void f1(long x) { prt("f1(long)"); } void f1(float x) { prt("f1(float)"); } void f1(double x) { prt("f1(double)"); } void f2(byte x) { prt("f2(byte)"); } void f2(short x) { prt("f2(short)"); } void f2(int x) { prt("f2(int)"); } void f2(long x) { prt("f2(long)"); } void f2(float x) { prt("f2(float)"); } void f2(double x) { prt("f2(double)"); } void f3(short x) { prt("f3(short)"); } void f3(int x) { prt("f3(int)"); } void f3(long x) { prt("f3(long)"); } void f3(float x) { prt("f3(float)"); } void f3(double x) { prt("f3(double)"); } void f4(int x) { prt("f4(int)"); } void f4(long x) { prt("f4(long)"); } void f4(float x) { prt("f4(float)"); } void f4(double x) { prt("f4(double)"); } void f5(long x) { prt("f5(long)"); } void f5(float x) { prt("f5(float)"); } void f5(double x) { prt("f5(double)"); } void f6(float x) { prt("f6(float)"); } void f6(double x) { prt("f6(double)"); } void f7(double x) { prt("f7(double)"); } void testConstVal() { prt("Testing with 5"); f1(5);f2(5);f3(5);f4(5);f5(5);f6(5);f7(5); } void testChar() { char x = 'x'; prt("char argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testByte() { byte x = 0; prt("byte argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testShort() { short x = 0; prt("short argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testInt() { int x = 0; prt("int argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testLong() { long x = 0; prt("long argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testFloat() { float x = 0; prt("float argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } void testDouble() { double x = 0; prt("double argument:"); f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x); } public static void main(String[] args) { PrimitiveOverload p = new PrimitiveOverload(); p.testConstVal(); p.testChar(); p.testByte(); p.testShort(); p.testInt(); p.testLong(); p.testFloat(); p.testDouble(); } }
* 不能根据返回值类型来区分重载的方法。
* 类型能从一个“较小”的类型(子类)自动转变成一个“较大”的类型(超类)。
* 如果需要匹配的参数类型小于对象类型,必须进行显式的类型下朔,才能调用对应的方法。
* 常数值被当作一个int 值处理。
* char 获得的效果稍有些不同,它如果没有发现一个准确的char 匹配,就会转型为int。
* boolean类型不能自动转换为其他基本数据类型。
输出为:
Testing with 5
f1(int)
f2(int)
f3(int)
f4(int)
f5(long)
f6(float)
f7(double)
char argument:
f1(char)
f2(int)
f3(int)
f4(int)
f5(long)
f6(float)
f7(double)
byte argument:
f1(byte)
f2(byte)
f3(short)
f4(int)
f5(long)
f6(float)
f7(double)
short argument:
f1(short)
f2(short)
f3(short)
f4(int)
f5(long)
f6(float)
f7(double)
int argument:
f1(int)
f2(int)
f3(int)
f4(int)
f5(long)
f6(float)
f7(double)
long argument:
f1(long)
f2(long)
f3(long)
f4(long)
f5(long)
f6(float)
f7(double)
float argument:
f1(float)
f2(float)
f3(float)
f4(float)
f5(float)
f6(float)
f7(double)
double argument:
f1(double)
f2(double)
f3(double)
f4(double)
f5(double)
f6(double)
f7(double)
相关推荐
### JAVA重载概念详解 #### 一、方法重载的概念 在 Java 编程语言中,方法重载(Method Overloading)是一种非常重要的特性,它允许我们在同一个类中定义多个同名但参数列表不同的方法。这种方法重载的概念是实现...
接着,我们了解Java的数据类型,包括基本类型(如byte、short、int、float、double、char)和引用类型(如String)。特别地,Java会将未指定类型的浮点数默认为double类型,若想表示为float,需要在数字后加上f或F。...
栈内存主要用于存储基本类型变量(如int、char)和对象引用,而堆内存则用于存储对象实例。 当一个方法被调用时,JVM会在栈内存中创建一个栈帧(Stack Frame),这个栈帧包含了局部变量表、操作数栈、动态链接和...
Java 方法是 Java 编程语言的基本组成部分之一。方法是解决问题的多行代码的集合,给予一个名字,以便多次使用。方法的定义和方法的重载是 Java 编程语言的基础知识,本文将对 Java 方法的定义和方法的重载进行详细...
Java类重载是面向对象编程中的一个重要概念,它允许我们在同一个类中定义多个同名方法,但这些方法的参数列表必须不同(参数数量、类型或顺序至少有一个不同)。这种机制使得代码更加灵活,易于理解和使用。类重载并...
在Java中,方法的返回类型不能用于区分重载的方法,因为返回类型不影响方法的调用。考虑以下情况: ```java class Adder { static int add(int a, int b) { return a + b; } static double add(int a, int b) ...
1. **方法名必须相同**:这是重载的基本特征,即在同一类中存在多个同名方法。 2. **参数列表必须不同**:这可以通过参数的数量、类型或者顺序来实现。只要参数列表不同,即使返回类型不同,Java也会认为这是两个...
本文档提供了多个 Java 方法练习题,涵盖了基本数据类型、方法重载、计算器等多个方面。下面是对每个题目的知识点总结: 1. 将数字转换为星期字符串 * Java 中的 switch 语句:用于根据不同的输入值执行不同的操作...
面向对象编程是 Java 的核心之一,它强调的是将现实世界中的事物抽象成对象,并通过这些对象来模拟真实世界的运作。 ##### 1. 类与对象 - 类是对象的模板或蓝图。 - 对象是类的具体实例。 ##### 2. 继承 - 继承是...
北京动力节点-Java编程零基础教程-121-Java基本语法-方法的重载-方法重载区分标准.avi 北京动力节点-Java编程零基础教程-122-Java基本语法-方法递归调用-栈溢出错误.avi 北京动力节点-Java编程零基础教程-123-...
在Java语言中,方法重载(Overloading)是一种允许在同一个类内定义多个同名方法的技术,但这些方法必须具有不同的参数列表(参数个数不同或参数类型不同)。这种特性极大地增强了程序的灵活性与可读性,使得开发...
* 变量的类型有基本类型和引用类型两种。 * 运算符有算术运算符、关系运算符、逻辑运算符、赋值运算符等。 * 控制流语句有 if 语句、switch 语句、while 语句、for 语句等。 三、方法重载 * 方法重载指的是在一个...
3. **返回类型不影响重载**:虽然返回类型是方法的一部分,但Java中方法的重载并不考虑返回类型。也就是说,即使两个方法的返回类型不同,但参数列表完全相同,这两个方法仍然被视为同一个方法,而不是重载。 接...
对于初学者来说,理解Java的基本概念是至关重要的。以下是一些关于Java核心概念的详细解释: 1. **面向对象编程(OOP)**:Java 是基于面向对象编程思想的,它强调通过对象来组织代码,对象包含了数据(状态)和...
以下是Java 30个基本概念的详细解析: 1. **面向对象(OOP)**:Java是一种基于面向对象编程的范式,它强调通过对象来描述问题和解决问题。对象包含了数据(属性)和操作数据的方法(行为)。 2. **类(Class)**...
在 Java 中,方法的参数可以是基本类型或引用类型。当我们将基本类型作为参数传递给方法时,实际上传递的是该基本类型的副本,而不是原始值本身。在本实验中,学生学习了如何传递基本类型参数,例如,在 ...
字符串是Java中最常用的数据类型之一。Java提供了强大的字符串处理功能,包括字符串的创建、拼接、分割等操作。 ### Java的关键特性 - **简单性**:Java的语法简洁,易于学习。 - **面向对象**:Java支持封装、...
Java基础之方法的定义、调用和重载 方法是Java中的一种基本结构单元,它用于定义类或对象的行为特征和功能实现。方法可以被重复使用,提高代码的可读性和维护性。 一、方法的定义和调用 1. 什么是方法? 方法是...
// 三个基本类型整数的加法 public static int add(int a, int b, int c) { int sum = a + b + c; return sum; } // 双精度浮点数的加法 public static double add(double a, double b) { double sum = a +...