向上转型和向下转型的问题

package huaweiicomeagain;

public class TestIntAndChar {
	public static void main(String[]args){
//		char a='0',b='1';
//		int result = func(func(a,b),func(b,a));
//	    char bb = func(func(a,b),func(b,a));
//		System.out.println("result="+result);
//		System.out.println("bb="+bb);
		int a=0,b=1;
		int result = func(func((char)a,(char)b),func((char)b,(char)a));
	    char bb = func(func((char)a,(char)b),func((char)b,(char)a));
		System.out.println("result="+result);
		System.out.println("bb="+bb);
	}

	private static char func(char b, char a) {
		// TODO Auto-generated method stub
//		if(a=='0')return (char) b;
//		else return (char) a;
		if(a==0)return (char) b;
		else return (char) a;
	}
}
会根据函数第一次调用时的参数类型决定函数定义时的参数类型,如果调用时参数类型是char类型,函数定义的参数类型可以是int类型或者char类型,不需要显示转型,因为char类型可以自动向上转为int类型。但当调用函数参数类型是int类型是,函数定义的参数不能为char类型,当时char类型时要显式强制转换为int类型,否则会出现编译错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值