定义宠物类( Pet ),猫类(Cat)和狗类(Dog)
1、宠物都有属性姓名(name)和年龄(age)
2、宠物都有吃(eat)、喝(drink)、叫(shout)的方法
3、猫有爬树( climbTree )的方法
4、狗有警戒( police)的方法
public class Pet {
public String name;
public int age;
public void eat(){
System.out.println(name+"会吃");
}
public void drink(){
System.out.println(name+"会喝");
}
public void shout(){
System.out.println(name+"会叫");
}
}
public class Cat extends Pet{
public void climbTree(){
System.out.println(super.name+"会爬树");
}
}
public class Dog extends Pet{
public void police(){
System.out.println(super.name+"会警戒");
}
}
定义银行卡和信用卡类
银行卡类
>有余额属性和存钱、取钱方法
信用卡类
>继承银行卡类
>有透支额度属性(初始1000)
>重写取款方法
测试类中分别使用两种卡完成存取款操作。
public class YinHangKa {
public double yuE=500;
public void add(double cun){
yuE+=cun;
System.out.println("存款成功,余额为:"+yuE);
}
public void draw(double qu){
if(yuE>=qu){
yuE-=qu;
System.out.println("取款成功,余额为:"+yuE);
}else{
System.out.println("余额不足,取款失败");
}
}
}
public class XinYongKa extends YinHangKa{
public double touZiE=1000;
@Override
public void draw(double qu) {
if((super.yuE+touZiE)>=qu&&super.yuE>=qu){
super.yuE-=qu;
System.out.println("取款成功,余额为:"+super.yuE+"t透支额为:"+touZiE);
}else if((super.yuE+touZiE)>=qu&&super.yuE<qu){
touZiE=super.yuE+touZiE-qu;
super.yuE=0;
System.out.println("取款成功,余额为:"+super.yuE+"t透支额为:"+touZiE);
}else{
System.out.println("余额不足,取款失败");
}
}
}
public class TestKa {
public static void main(String[] args) {
YinHangKa yhk=new YinHangKa();
XinYongKa xyk=new XinYongKa();
System.out.println("初始余额为:"+yhk.yuE);
System.out.println("用银行卡存600");
yhk.add(600);
System.out.println("用银行卡取700");
yhk.draw(700);
System.out.println("用银行卡取1000");
yhk.draw(1000);
System.out.println("用信用行卡存100");
xyk.add(100);
System.out.println("用信用卡取200");
xyk.draw(200);
System.out.println("用信用卡取1000");
xyk.draw(1000);
}
}
运行结果:
1、完成银行卡的存取款方法
银行卡有余额,卡号,户主等属性
有存款和取款的方法(取款时候余额不足要有提示)
2、完成信用卡的取款方法
信用卡额外有透支额度属性
信用卡重写取款方法(取款时候余额不足要有提示)
3、写测试案例,分别测试银行卡和信用卡的存取款功能(存取款后显示余额)
public class YinHangKa {
public double yuE;
public String kaHao;
public String huZhu;
public void add(double cun){
yuE+=cun;
System.out.println("卡号为:"+kaHao+"t户主为:"+huZhu);
System.out.println("存款成功,余额为:"+yuE);
}
public void draw(double qu){
if(yuE>=qu){
yuE-=qu;
System.out.println("卡号为:"+kaHao+"t户主为:"+huZhu);
System.out.println("取款成功,余额为:"+yuE);
}else{
System.out.println("余额不足,取款失败");
}
}
}
public class XinYongKa extends YinHangKa{
public double touZiE=1000;
@Override
public void draw(double qu) {
if((super.yuE+touZiE)>=qu&&super.yuE>=qu){
super.yuE-=qu;
System.out.println("卡号为:"+super.kaHao+"t户主为:"+super.huZhu);
System.out.println("取款成功,余额为:"+super.yuE+"t透支额为:"+touZiE);
}else if((super.yuE+touZiE)>=qu&&super.yuE<qu){
touZiE=super.yuE+touZiE-qu;
super.yuE=0;
System.out.println("卡号为:"+super.kaHao+"t户主为:"+super.huZhu);
System.out.println("取款成功,余额为:"+super.yuE+"t透支额为:"+touZiE);
}else{
System.out.println("余额不足,取款失败");
}
}
}
public class TestKa {
public static void main(String[] args) {
YinHangKa yhk=new YinHangKa();
yhk.yuE=500;
yhk.kaHao="12345678";
yhk.huZhu="淳淳";
XinYongKa xyk=new XinYongKa();
xyk.yuE=1000;
xyk.kaHao="87654321";
xyk.huZhu="刘刘";
System.out.println("初始银行卡余额为:"+yhk.yuE);
System.out.println("用银行卡存600");
yhk.add(600);
System.out.println("用银行卡取700");
yhk.draw(700);
System.out.println("用银行卡取1000");
yhk.draw(1000);
System.out.println("初始银行卡余额为:"+yhk.yuE);
System.out.println("用信用行卡存100");
xyk.add(100);
System.out.println("用信用卡取200");
xyk.draw(200);
System.out.println("用信用卡取1000");
xyk.draw(1000);
}
}
运行结果:
1、有员工类(父类),普通员工类(员工类的子类)和部门经理类(员工类的子类)
普通员工工资=单日工资*天数*等级(1);部门经理工资=1000+单日工资*天数*等级(1.2)。
2、员工类的属性和方法
属性:单日工资,工作天数,工资等级静态常量
方法:打印工资方法
3、子类按照本类特点重写打印工资方法
4、写测试类,输出各类的工资(同时代码验证重写的规则)
public class Staff {
public double dailyWage;
public int workingDays;
public double wageBracket;
public void printWages(){
double wage=dailyWage*workingDays*wageBracket;
System.out.println("员工工资为:"+wage);
}
}
public class GeneralStaff extends Staff{
@Override
public void printWages() {
super.wageBracket=1;
super.printWages();
}
}
public class Manager extends Staff{
@Override
public void printWages() {
wageBracket=1.2;
double wage=1000+dailyWage*workingDays*wageBracket;
System.out.println("项目经理工资为:"+wage);
}
}
public class Test {
public static void main(String[] args) {
GeneralStaff g=new GeneralStaff();
Manager m=new Manager();
g.dailyWage=100;
m.dailyWage=500;
g.workingDays=10;
m.workingDays=20;
g.printWages();
m.printWages();
}
}
运行结果:
1. 张老太养了两只猫:一只叫小花,今年3岁白色。另一只叫小白,今年3岁花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字、年龄、颜色。如果输入的小猫名错误,则显示:张老太没有这只猫。
实现思路:
1) 创建猫类,定义三个变量:姓名 年龄 颜色,变量均私有
2) 给这3个变量提供set和get方法
3) 定义打印信息的方法
4) 创建测试类
5) 创建2只猫,用set方式赋值,信息和题意一致
6) 创建键盘录入对象,录入猫的姓名
7) 判断键盘录入的姓名和这2只猫的姓名是否一致,如果一致就打印这只猫的信息,
如果不一致提示没有这只猫,请重新输入
1. 评分标准:
(1) 正确创建猫类 (10分)
(2) 正确定义私有属性和方法(10分)
(3) 正确定义打印方法(10分)
(4) 创建测试类,创建两个对象(10分)
(5) 正确输入猫的信息(10分)
(6) 判断两只猫是否是同一个猫(10分)
(7) 打印输出信息(10分)
(8) 正确调用方法,输出信息(10分)
(9) 添加注释(5分)
public class Cat {
private String name;
private int age;
private String colour;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColour() {
return colour;
}
public void setColour(String colour) {
this.colour = colour;
}
public Cat() {
super();
}
public Cat(String name, int age, String colour) {
super();
this.name = name;
this.age = age;
this.colour = colour;
}
public void print(){
System.out.println("姓名:"+name+"t年龄:"+age+"t颜色:"+colour);
}
}
public class TestCat {
public static void main(String[] args) {
Cat cat1=new Cat();
cat1.setName("小花");
cat1.setAge(3);
cat1.setColour("花色");
Cat cat2=new Cat();
cat2.setName("小白");
cat2.setAge(3);
cat2.setColour("白色");
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入猫的姓名:");
String name=sc.next();
if(cat1.getName().equals(name)){
cat1.print();
break;
}else if(cat2.getName().equals(name)){
cat2.print();
break;
}else{
System.out.println("没有这只猫,请重新输入");
}
}
}
}
运行结果:
(拔高)题目6:综合应用2
1. 按要求完成以下题目:
案例效果图:
案例题目描述:
A. 编写两个类继承运输工具类:卡车类、火车类
要求:
(1)添加两个变量,并进行封装。
(2)添加无参构造方法和有参构造方法,并通过有参构造为重量和距离两个变量赋值
(3) 重写父类计算运费的方法如下:
a. 卡车:运费=重量x距离x120,当距离大于1000(km)或者重量大于60(t)的时候拒载,拒载时间方法返回-1。
b. 火车:当距离在900(km)内(包含900)时,运费=重量x距离X250,大于900(km)时,运费=重量x距离x300。
B. 编写测试类,创建卡车和火车类对象,调用计算运费方法
1. 评分标准:
(1) 正确定义工具类 (10分)
(2) 正确定义火车类(10分)
(3) 正确定义卡车类(10分)
(4) 卡车重写父类方法(10分)
(5) 火车重写父类方法(10分)
(6) 正确定义各类的方法(10分)
(7) 创建测试类,创建对象调用方法(10分)
(8) 输出所有变量信息(10分)
(9) 添加注释(5分)
public class Car {
public double weight;
public double distance;
public Car(double weight, double distance) {
super();
this.weight = weight;
this.distance = distance;
}
public Car() {
super();
}
public void freight(){
double freight=0;
System.out.println("收费为:"+freight);
}
}
public class Trunk extends Car{
@Override
public void freight() {
double freight=0;
if(weight<=60&&distance<=1000){
freight=weight*distance*250;
System.out.println("卡车的收运费为:"+freight);
}else if(weight>60){
System.out.println("超重了,卡车拒载");
}else if(distance>1000){
System.out.println("距离太远,卡车拒载");
}
}
public Trunk() {
super();
}
public Trunk(double weight, double distance) {
super(weight, distance);
}
}
public class Train extends Car{
@Override
public void freight() {
double freight=0;
if(distance<=900){
freight=weight*distance*250;
}else{
freight=weight*distance*300;
}
System.out.println("火车的收费为:"+freight);
}
public Train() {
super();
}
public Train(double weight, double distance) {
super(weight, distance);
}
}
public class Test {
public static void main(String[] args) {
Trunk caChe1=new Trunk(30,500);
Trunk caChe2=new Trunk(70,100);
Train huoChe1=new Train(30,500);
Train huoChe2=new Train(70,100);
caChe1.freight();
caChe2.freight();
huoChe1.freight();
huoChe2.freight();
}
}
运行结果
相关知识
java用继承编写宠物乐园
java继承
java版本电子宠物游戏代码
java练习题
学会继承、多态、封装(1)——Java实现宠物店(领养宠物)
Java入门
python 练习题
宠物游戏系统 java
python:列表的练习题
JAVA面向对象编程——学生喂养三种宠物:猫、狗和鸟
网址: JAVA day07:代码练习题(继承) https://m.mcbbbk.com/newsview239423.html
上一篇: 训练狗狗的十大注意事项 |
下一篇: 厦门宠物开店1v1商业私教培训班 |