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到哪,但是也可以自己定义异常类,用来检测某一项异常。


  • 相关阅读:
    String类源码解析之理解indexOf函数--转载
    SQL优化--转载
    通过cmd/批处理 开启关闭windows中的mysql数据库
    windows查看连接过wifi的密码
    Java Annotation认知(包括框架图、详细介绍、示例说明)--转载
    springboot加载配置文件的优先级
    SpringBoot项目创建的三种方式
    雷总小米十周年演讲---国外友人评价第一次看到MIUI系统
    装饰器模式
    嵌套的setTimeout
  • 原文地址:https://www.cnblogs.com/dotacai/p/4960350.html
Copyright © 2011-2022 走看看