失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > JAVA语法基础作业——动手动脑以及课后实验性问题 (七)

JAVA语法基础作业——动手动脑以及课后实验性问题 (七)

时间:2022-05-09 18:51:06

相关推荐

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","1115","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 "+ "\n500 "+ "\n1000 "+ "\n1500 "+ "\n2000 "+ "\n5000 "+ "\n其他金额(请输入0)"+ "\n返回操作(请输入-1) "+ "\n退卡(请输入-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);}}

如果觉得《JAVA语法基础作业——动手动脑以及课后实验性问题 (七)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。