zoukankan      html  css  js  c++  java
  • 多态与异常处理动手动脑

      程序中parent=child 经过该赋值语句父类的对象类型转变为child类型了,则在调用方法时会调用子类的方法。但是在使用成员变量时还是使用自己的成员变量。

      语句((child)parent).myvalue++,类似于强制类型转换,强制将父类的成员转变为子类的成员变量,导致子类成员变量改变,所以在调用子类方法时数值改变。

    如图所示添加了代码:

    Parent parent1=new Parent();

    Parent=parent1;

    Parent.printvalue();

    将会输出100,但是下面强制类型转换时出现错误,所以强制转换一定要建立在父类对象时子类对象类型的基础上。

    import javax.swing.*;
    public class Project {
        public static void main(String args[])
        {
            String grade;
            grade=JOptionPane.showInputDialog("请输入学生的成绩:");
            while(true)
            {
                try
                {
                int g=Integer.parseInt(grade);
            
                if(g>=0&&g<60)
                {
                    JOptionPane.showMessageDialog(null, "不及格","results",JOptionPane.PLAIN_MESSAGE);
                    break;
                }
                else if(g>=60&&g<70)
                {
                    JOptionPane.showMessageDialog(null, "及格","results",JOptionPane.PLAIN_MESSAGE);
                    break;
                }
                else if(g>=70&&g<80)
                {
                    JOptionPane.showMessageDialog(null, "中","results",JOptionPane.PLAIN_MESSAGE);
                    break;
                }
                else if(g>=80&&g<90)
                {
                    JOptionPane.showMessageDialog(null, "良好","results",JOptionPane.PLAIN_MESSAGE);
                    break;
                }
                else if(g>=90&&g<=100)
                {
                    JOptionPane.showMessageDialog(null, "优秀","results",JOptionPane.PLAIN_MESSAGE);
                    break;
                }
                else
                    grade=JOptionPane.showInputDialog("输入错误,请重新输入:");
                }
                catch(Exception e)
                {
                    grade=JOptionPane.showInputDialog("输入错误,请重新输入:");
                }
            }
        }
    
    }

    如上代码所示 

      try是检测他的范围内的代码是否有异常如果有则会转到catch 输出异常结果,没有则程序继续执行。

      实例中还涉及到了finally,它是用来做最后的处理的,不管是否有异常发生finally中的语句都会被执行。

      上例用的try和catch是做万能处理的只有有异常都会catch到哪,但是也可以自己定义异常类,用来检测某一项异常。


  • 相关阅读:
    java面试总结之框架问题
    数据库设计三大范式
    js 一些技巧
    el 和 fmt 常用
    iframe自适应高度
    MySQL基础
    任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal)
    hibernate
    Struts2
    Servlet、Cookie、Session
  • 原文地址:https://www.cnblogs.com/dotacai/p/4960350.html
Copyright © 2011-2022 走看看