`
jaesonchen
  • 浏览: 313480 次
  • 来自: ...
社区版块
存档分类
最新评论

java重载之基本类型

 
阅读更多
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重载概念详解 #### 一、方法重载的概念 在 Java 编程语言中,方法重载(Method Overloading)是一种非常重要的特性,它允许我们在同一个类中定义多个同名但参数列表不同的方法。这种方法重载的概念是实现...

    java学习笔记 继承 重载 覆盖

    接着,我们了解Java的数据类型,包括基本类型(如byte、short、int、float、double、char)和引用类型(如String)。特别地,Java会将未指定类型的浮点数默认为double类型,若想表示为float,需要在数字后加上f或F。...

    java中方法重载内存分析

    栈内存主要用于存储基本类型变量(如int、char)和对象引用,而堆内存则用于存储对象实例。 当一个方法被调用时,JVM会在栈内存中创建一个栈帧(Stack Frame),这个栈帧包含了局部变量表、操作数栈、动态链接和...

    JAVA方法的定义和方法的重载Overload.docx

    Java 方法是 Java 编程语言的基本组成部分之一。方法是解决问题的多行代码的集合,给予一个名字,以便多次使用。方法的定义和方法的重载是 Java 编程语言的基础知识,本文将对 Java 方法的定义和方法的重载进行详细...

    java类重载,可以用于热更新

    Java类重载是面向对象编程中的一个重要概念,它允许我们在同一个类中定义多个同名方法,但这些方法的参数列表必须不同(参数数量、类型或顺序至少有一个不同)。这种机制使得代码更加灵活,易于理解和使用。类重载并...

    【Java编程教程】详解Java 重载.pdf

    在Java中,方法的返回类型不能用于区分重载的方法,因为返回类型不影响方法的调用。考虑以下情况: ```java class Adder { static int add(int a, int b) { return a + b; } static double add(int a, int b) ...

    Java重写和重载概念及区别梳理

    1. **方法名必须相同**:这是重载的基本特征,即在同一类中存在多个同名方法。 2. **参数列表必须不同**:这可以通过参数的数量、类型或者顺序来实现。只要参数列表不同,即使返回类型不同,Java也会认为这是两个...

    java方法练习.docx

    本文档提供了多个 Java 方法练习题,涵盖了基本数据类型、方法重载、计算器等多个方面。下面是对每个题目的知识点总结: 1. 将数字转换为星期字符串 * Java 中的 switch 语句:用于根据不同的输入值执行不同的操作...

    Core Java Java的基本知识

    面向对象编程是 Java 的核心之一,它强调的是将现实世界中的事物抽象成对象,并通过这些对象来模拟真实世界的运作。 ##### 1. 类与对象 - 类是对象的模板或蓝图。 - 对象是类的具体实例。 ##### 2. 继承 - 继承是...

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-121-Java基本语法-方法的重载-方法重载区分标准.avi 北京动力节点-Java编程零基础教程-122-Java基本语法-方法递归调用-栈溢出错误.avi 北京动力节点-Java编程零基础教程-123-...

    Java 零基础方法重载.md

    在Java语言中,方法重载(Overloading)是一种允许在同一个类内定义多个同名方法的技术,但这些方法必须具有不同的参数列表(参数个数不同或参数类型不同)。这种特性极大地增强了程序的灵活性与可读性,使得开发...

    《Java基础入门》-课后习题答案.doc

    * 变量的类型有基本类型和引用类型两种。 * 运算符有算术运算符、关系运算符、逻辑运算符、赋值运算符等。 * 控制流语句有 if 语句、switch 语句、while 语句、for 语句等。 三、方法重载 * 方法重载指的是在一个...

    关于Java如何正确地实现方法重载详解.rar

    3. **返回类型不影响重载**:虽然返回类型是方法的一部分,但Java中方法的重载并不考虑返回类型。也就是说,即使两个方法的返回类型不同,但参数列表完全相同,这两个方法仍然被视为同一个方法,而不是重载。 接...

    java基本概念 适用于初学者

    对于初学者来说,理解Java的基本概念是至关重要的。以下是一些关于Java核心概念的详细解释: 1. **面向对象编程(OOP)**:Java 是基于面向对象编程思想的,它强调通过对象来组织代码,对象包含了数据(状态)和...

    java 30个基本概念

    以下是Java 30个基本概念的详细解析: 1. **面向对象(OOP)**:Java是一种基于面向对象编程的范式,它强调通过对象来描述问题和解决问题。对象包含了数据(属性)和操作数据的方法(行为)。 2. **类(Class)**...

    Java实验-掌握方法的声明和调用 掌握方法的值传递 掌握方法的重载

    在 Java 中,方法的参数可以是基本类型或引用类型。当我们将基本类型作为参数传递给方法时,实际上传递的是该基本类型的副本,而不是原始值本身。在本实验中,学生学习了如何传递基本类型参数,例如,在 ...

    java教程基本-java基础知识一

    字符串是Java中最常用的数据类型之一。Java提供了强大的字符串处理功能,包括字符串的创建、拼接、分割等操作。 ### Java的关键特性 - **简单性**:Java的语法简洁,易于学习。 - **面向对象**:Java支持封装、...

    大数据必学Java基础(二十三):方法的定义/调用/重载

    Java基础之方法的定义、调用和重载 方法是Java中的一种基本结构单元,它用于定义类或对象的行为特征和功能实现。方法可以被重复使用,提高代码的可读性和维护性。 一、方法的定义和调用 1. 什么是方法? 方法是...

    Java中的方法重载(overload).docx

    // 三个基本类型整数的加法 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 +...

Global site tag (gtag.js) - Google Analytics