• 多态与异常处理


    一.

    1. 左边的程序运行结果是什么? 2. 你如何解释会得到这样的输出? 3. 计算机是不会出错的,之所以得 到这样的运行结果也是有原因的, 那么从这些运行结果中,你能总 结出Java的哪些语法特性?

    运行结果:

    2.在程序中,前两组定义自己的变量,用自己的方法及成员变量;第三个parent=child,引用子类的方法及变量,第四个变量是父类的,方法是子类的,最后一个是强制转化,改变的是子类的变量,用的是子类的方法。

    3.通过自己反复改变ParentChildTest.java中的代码,和结论一致

    如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。 如果子类被当作父类使用,则通过子类访问的字段是父类的!

    二。这种编程方式有什么不合理的地方吗?

    算法可以进行简化,喂养可以作为一个程序进行调用。

    结果:

    我不吃肉谁敢吃肉!
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我什么都吃,尤其喜欢香蕉。
    我要减肥,所以每天只吃一点大米。
    我要减肥,所以每天只吃一点大米。
    我要减肥,所以每天只吃一点大米。
    我要减肥,所以每天只吃一点大米。
    我要减肥,所以每天只吃一点大米。

    三。

    为什么要用多态?它有什么好处?
    使用多态最大的好处是:当你要修改程序并扩充系统时,你需要修改的地方较少,对其它部分代码的影响较小!千万不要小看这两个“较”字!程序规模越大,其优势就越突出。

    ATM

    源代码:

    package point;
    import java.util.Scanner;
    class use{
    String key = "123";
    String key1 = new String();
    }
    class way extends use{
    int x=0;
    public void add(int a){
    x=a+x;
    }
    public void qukuan(int a){
    x=x-a;
    }
    public void show(){
    System.out.println("余额为:"+x);
    }
    public void change(){

    }
    }
    public class Atm {
    public static void main(String args[]){
    use use1 = new use();
    int n=1;
    way way2=new way();
    way way1= new way();
    System.out.println("请输入密码: ");
    Scanner scanner = new Scanner(System.in);
    use1.key1=scanner.next();
    if(!use1.key.equals(use1.key1))
    {
    System.out.println("密码错误,无法操作!");
    }
    if(use1.key.equals(use1.key1))
    {
    while(n==1)
    {System.out.println("请选择操作:1.存款 2.取款 3.转账汇款 4.修改密码 5.查询余额 6.退出");
    Scanner scanner2 = new Scanner(System.in);
    int a = scanner2.nextInt();
    if(a==6)
    {
    n=2;
    }
    if(a==1)
    {
    System.out.println("请输入存款金额:");
    Scanner scanner3 = new Scanner(System.in);
    int b=scanner3.nextInt();
    way1.add(b);
    System.out.println("存入金额为:"+b);
    way1.show();
    }
    if(a==2)
    {
    System.out.println("请输入取款金额:100 500 1000 1500 2000 5000,其他金额:");
    Scanner scanner3 = new Scanner(System.in);
    int b=scanner3.nextInt();
    way1.qukuan(b);
    System.out.println("取款金额为:"+b);
    way1.show();
    }
    if(a==3)
    {
    System.out.println("请输入转账金额:");
    Scanner scanner3 = new Scanner(System.in);
    int b=scanner3.nextInt();
    way2.add(b);
    way1.qukuan(b);
    }
    if(a==4)
    {
    System.out.println("请输入修改的密码:");
    Scanner scanner3 = new Scanner(System.in);
    String b=scanner3.next();
    use1.key=b;
    System.out.println("修改成功!");
    }
    if(a==5)
    {
    way1.show();
    way2.show();
    }
    }
    }
    }
    }

    程序运行截图

  • 相关阅读:
    08 正则表达式
    07 函数&对象
    06 Math&Date&Json
    05 数组&字符串
    04 循环控制
    03 流程控制
    02 数据类型&运算符
    大道至简
    Avg_row_length是怎么计算的?
    理解innodb buffer pool
  • 原文地址:https://www.cnblogs.com/shenghuizhang/p/6079290.html
Copyright © 2020-2023  润新知