zoukankan      html  css  js  c++  java
  • JAVA语法基础作业——动手动脑以及课后实验性问题 (七)

    一、动手动脑

    1)源代码

    public class ParentChildTest {
        public static void main(String[] args) {
            Parent parent=new Parent();
            parent.printValue();
            Child child=new Child();
            child.printValue();
            
            parent=child;
            parent.printValue();
            
            parent.myValue++;
            parent.printValue();
            
            ((Child)parent).myValue++;
            parent.printValue();
            
        }
    }
    
    class Parent{
        public int myValue=100;
        public void printValue() {
            System.out.println("Parent.printValue(),myValue="+myValue);
        }
    }
    class Child extends Parent{
        public int myValue=200;
        public void printValue() {
            System.out.println("Child.printValue(),myValue="+myValue);
        }
    }

    2)实验截图:

    3)结果分析:

    当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定。

    这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。

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

    二.动手动脑 动物园(使用接口代替抽象基类)

    import java.util.Vector;
    public class zoo4 {
        public static void main(String[] args) {
             Feeder f = new Feeder("小李");
             Vector<Animal> ans = new Vector<Animal>();
             ans.add(new Lion());
             for (int i = 0; i < 10; i++) {
                 ans.add(new Monkey());
             }
             for (int i = 0; i < 5; i++) { 
                 ans.add(new Pigeon());
             }
                    
             f.feedAnimals(ans);
       }
    }
    
    class Feeder {
        public String name;
        Feeder(String name) {
            this.name = name;
        }
        public void feedAnimals(Vector<Animal> ans) {
            for (Animal an : ans) {
                an.eat();
                }
            }
    }
    
    interface Animal {
        public abstract void eat();
            }
    
    class Lion implements Animal {
        public void eat() {
            System.out.println("狮子。");
                }
    }
    
    class Monkey implements Animal {
        public void eat() {
            System.out.println("猴子。");
                }
    }
    
    class Pigeon implements Animal {
        public void eat() {
            System.out.println("鸽子。");
            }
    }

    三.动手动脑

    import java.util.*;
    public class Ex1115 {
    
        public static void main(String[] args) {
            Account a = new Account("11111111111","dsdf","20161115","256398",23.6);
            a.jiemian();
        }
    }
    
    class Account
    {
        private static final String JOptionPane = null;
        private  static String Id;
        private static String name;
        private static String date;
        private static String mima;
        private static double extra;
        
        Account(String i,String n,String d,String m,double e)//构造函数
        {
            Id=i;
            name=n;
            date=d;
            mima=m;
            extra=e;
        }
        
        public void set_Id(String i){
            Id=i;
        }
        public void set_name(String n){
            name=n;;
        }
        public void set_date(String d){
            date=d;
        }
        public void set_mima(String m){
            mima=m;
        }
        public void set_extra(double e){
            extra=e;
        }
        
        public String get_Id(){
            return Id;
        }
        public String get_name(){
            return name;
        }
        public String get_date(){
            return date;
        }
        public String get_mima(){
            return mima;
        }
        public double get_extra(){
            return extra;
        }
        
        
        public static void jiemian()//界面
        {
            System.out.println("请选择界面(1.中文2.英文):");
            Scanner sc=new Scanner(System.in);
            String num1=sc.nextLine();
            int num11=Integer.parseInt(num1);
            
            if(num11==1){
                
                Scanner sc1=new Scanner(System.in);
                int num=Integer.parseInt(sc1.nextLine());
    
                while(true)
                {
                        System.out.println("请选择要进行的操作:");
                        System.out.println("1.取款");
                        System.out.println("2.存款");
                        System.out.println("3.转账");
                        System.out.println("4.修改密码");
                        System.out.println("5.查询余额");
                        System.out.println("6.退卡");
                        
                    if(num==1)
                        qukuan();
                    else if(num==2)
                        cunkuan();
                    else if(num==3)
                        zhuan();
                    else if(num==4)
                        xiugai();
                    else if(num==5)
                        chaxun();
                    else if(num==6){
                        System.out.println("退卡成功!");
                    }
                }
            }
            
            else{
                
            }
        
        }
        
        public static void cunkuan()//存款
        {
            System.out.println("请输入存款金额:");
            Scanner sc = new Scanner(System.in);
            int jine = Integer.parseInt(sc.nextLine());
            
            extra += jine;
            System.out.println("您现在的金额为:" + extra);
        }
        
        public static void qukuan()//取款
        {
            System.out.println("请输入取款金额");
            String output="";
            output += "100  "
                    + "
    500 "
                    + "
    1000  "
                    + "
    1500 "
                    + "
    2000 "
                    + "
    5000  "
                    + "
    其他金额(请输入0)"
                    + "
    返回操作(请输入-1) "
                    + "
    退卡(请输入-2)";
            System.out.println(output);
    
            Scanner sc=new Scanner(System.in);
            int num=Integer.parseInt(sc.nextLine());
            
            switch(num)
            {
            case 100:{
                
            }
                extra -= 100;break;
            case 500:
                extra -= 500;break;
            case 1000:
                extra -= 1000;break;
            case 1500:
                extra -= 1500;break;
            case 2000:
                extra -= 2000;break;
            case 5000:
                extra -= 5000;break;
            case 0:
            {
                System.out.println("请输入取款金额:");
                Scanner sc1=new Scanner(System.in);
                int jine=Integer.parseInt(sc1.nextLine());
                extra -= jine;
                sc1.close();
                break;
            }
            case -1:
                System.out.println("已返回操作界面");break;
            case -2:
                System.out.println("退卡成功!");break;
            }
        }
        
        public static void zhuan()//转账汇款
        {
            System.out.println("请输入转账行号:");
            Scanner sc = new Scanner(System.in);
            String hanghao = sc.nextLine();
            
            Scanner sc1 = new Scanner(System.in);
            int jine = Integer.parseInt(sc1.nextLine());
            
            extra -= jine;
            
            System.out.println("转账成功!");
        }
        
        public static void xiugai()//修改密码
        {
            System.out.println("请输入要修改的密码:");
            Scanner sc1 = new Scanner(System.in);
            String mi = sc1.nextLine();
            mima = mi;
        }
        
        public static void chaxun()//查询余额
        {
            System.out.println("余额为:"+extra);
        }
        
    }
  • 相关阅读:
    已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]
    数据库相关内容 已看1 有用
    JS jquery ajax 已看1 有用
    Web性能优化 高并发网站解决 单例 已看1
    框架和事务 非常 有用 hibernate和mybatis区别
    SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
    客户注册功能,发短信功能分离 通过ActiveMQ实现
    在线下单
    LeetCode -- Count and Say
    LeetCode -- Word Pattern
  • 原文地址:https://www.cnblogs.com/XiaoPiHaiEr/p/6079060.html
Copyright © 2011-2022 走看看