黑马程序员技术交流社区

标题: 利用方法的多态性,判断输入的数据类型。 [打印本页]

作者: 小穿钉    时间: 2015-11-2 22:27
标题: 利用方法的多态性,判断输入的数据类型。
/**
* 重写和重载是多态的主要变现形式,在这里用重载体现JAVA语言的多态性,
* 写4个prints()方法,具有相同的方法名,但是具有不同的参数类型,
* 根据所传递的参数类型不同,调用不同的prints()方法
*/
package cn.com.panduantype;

public class If {
        String str,str1;
        int i;
        boolean bool;
        double d;
        Print m=new Print();
        public void panduan(String str){
                //判断输入的数据是否包括“'”,决定是否是字符序列。
                if((str.indexOf("'"))!=-1){
                        m.prints(str);
                        return;
                }
                //判断输入的数据是否包含小数点
                i=str.indexOf(".");
                //不包含小数点,不可能是double型
                if(i==-1){
                        //转换成大写形式
                        str1=str.toUpperCase();
                        if(str1.equals("TRUE")||str1.equals("FALSE")){//是boolean型值
                                bool=Boolean.parseBoolean(str);           //转换成boolean型值
                                m.prints(bool);

                        }else{
                                i=Integer.parseInt(str);    //是int型的,转换成int型值
                                m.prints(i);
                        }
                }else{//包含小数点是double型值
                        d=Double.parseDouble(str);
                        m.prints(d);
                }
        }
}



作者: 小穿钉    时间: 2015-11-2 22:32
package cn.com.panduantype;

public class Print {
        static void prints(int intValue){
                System.out.println("您输入的是整型数"+intValue);
        }
        static void prints(double doubleValue){
                System.out.println("您输入的是实型数"+doubleValue);
        }
        static void prints(boolean booleanValue){
                System.out.println("您输入的是布尔型量"+ booleanValue);
        }
        static void prints(String strValue){
                System.out.println("您输入的是字符串"+strValue);
        }
}

作者: 小穿钉    时间: 2015-11-2 22:34
package cn.com.panduantype;
import java.util.*;
public class Test {
        public static void main(String[] args){
                Scanner in=new Scanner(System.in);
                System.out.println("请输入。。。。");
                If s=new If();
                s.panduan(in.next());


        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2