java动手动脑08
Posted 王文达
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java动手动脑08相关的知识,希望对你有一定的参考价值。
一.动手动脑
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关键字来访问它。
如果子类被当作父类使用,则通过子类访问的字段是父类的!
二.动手动脑 动物园(使用接口代替抽象基类)
1)源代码
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("鸽子"); } }
三.动手动脑
1)源代码:
//1115
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()//界面
{
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("退卡成功!");
}
}
}
}
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动手动脑08的主要内容,如果未能解决你的问题,请参考以下文章