java第三次

(一)学习总结

1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来?

不能通过编译。应把super语句放在第一句

运行的结果为
GrandParent Created.
Parent Created
Child Created

1.如果子类没有定义构造方法,则调用父类的无参数的构造方法,.  2.如果子类定义了构造方法,且其第一行没有super,则不论子类构造方法是有参数还是无参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。  若子类构造方法中第一行是有参数或无参数的super,则直接转到对应的有参或无参父类构造方法中,而不再是首先执行无参构造方法;   3.如果子类调用父类带参数的构造方法,可以通过super(参数)调用所需要的父类的构造方法,且该语句做为子类构造方法中的第一条语句。  4.如果某个构造方法调用类中的其他的构造方法,则可以用this(参数),切该语句放在构造方法的第一条

2.阅读下面程序,分析程序中存在哪些错误,说明原因,应如何改正?正确程序的运行结果是什么?

错误1、animal.sleep(); Animal类中没有sleep方法,sleep方法是子类Dog里的,不能调用。
错误2、Dog dog =animal; Animal类是Dog类的父类,应该向下转型。
运行结果为
汪汪......!
狗狗睡觉......
狗狗睡觉......
汪汪......!

3.运行下列程序

类中没有定义toString方法,调用了Project类中的toString方法
正确结果为
姓名:张三,年龄:20
姓名:张三,年龄:20

4.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路。现在要创建一个可租车列表,应当如何创建?

定义一个抽象类,具有编号、名称和租金属性,定义两个接口,分别定义载客量和载货量属性,定义客车类继承抽象类和实现载客量接口,火车类继承抽象类和载货量接口,皮卡类继承抽象类和两个接口。

5.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果

 interface Animal{    
        void breathe();
        void run();
        void eat();
    }
     class Dog implements Animal{
        public void breathe(){
            System.out.println("I'm breathing");
        }
        public void  eat(){
            System.out.println("I'm eating");
        }
		@Override
		public void run() {
			System.out.println("I'm running");
			
		}
    }
    public class Test{
        public static void main(String[] args){
            Dog dog = new Dog();
            dog.breathe();
            dog.eat();
            dog.run();
        }
    }

(二)实验总结

实验四(1)

import java.util.*;

class bank {
	private static String bankname = "YINHANG";
	private String name, password;
	private int banlance, turnover;

	public bank(String name, String password, int banlance) {
		this.setName(name);
		this.setPassword(password);
		this.setBanlance(banlance);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public int getBanlance() {
		return banlance;
	}

	public void setBanlance(int banlance) {
		this.banlance = banlance;
	}

	public int getTurnover() {
		return turnover;
	}

	public void setTurnover(int turnover) {
		this.turnover = turnover;
	}

	public static String welcome() {
		return "欢迎来到" + bankname;
	}
	public String deposit(int turnover) {
		this.setTurnover(turnover);
		banlance+=turnover;
		return name+"的账户存入"+turnover+"元,余额为"+banlance;
	}
	public String withdrawal(int turnover) {
		this.setTurnover(turnover);
		banlance-=turnover;
		return name+"的账户取出"+turnover+"元,余额为"+banlance;
	}
	public static String welcomeNext() {
		return "欢迎再次光临" + bankname;
	}
}


public class yinhang {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int k, m;
		String name, password,s;
		bank a =null;
		System.out.println(bank.welcome());
		while (true) {
			System.out.println("请选择" + '
' + "1·开户" + '
' + "2·存款" + '
' + "3·取款" + '
' + "4·退出");
			while (true) {
				k = input.nextInt();
				if (k == 1 || k == 2 || k == 3 || k == 4) {
					break;
				} else {
					System.out.println("输入错误,请重新输入");
				}
			}
			if (k == 1) {
				System.out.println("请输入用户姓名");
				name = input.next();
				System.out.println("请输入密码");
				password = input.next();
				System.out.println("请输入开户金额(扣除10元开卡费)");
				while (true) {
					m = input.nextInt();
					if (m >= 10) {
						break;
					} else {
						System.out.println("输入错误,请重新输入");
					}
				}
				m -= 10;
				a = new bank(name, password, m);
				System.out.println(a.getName() + "开户成功,余额为" + a.getBanlance());
			} else if (k == 2) {
				System.out.println("请输入存款金额");
				while (true) {
					m = input.nextInt();
					if (m > 0) {
						break;
					} else {
						System.out.println("输入错误,请重新输入");
					}
				}
				System.out.println(a.deposit(m));
			} else if (k == 3) {
				System.out.println("请输入密码");
				s=input.next();
				if(s.equals(a.getPassword())){
					System.out.println("请输入取款金额");
					while (true) {
						m = input.nextInt();
						if (m > 0&&m<=a.getBanlance()) {
							break;
						} else {
							System.out.println("输入错误或余额不足,请重新输入");
						}
					}
					System.out.println(a.withdrawal(m));
				}
				else {
					System.out.println("密码错误");
				}
			} else if (k == 4) {
				System.out.println(bank.welcomeNext());
				break;
			}
		}
	}
}

实验四(2)

import java.util.*;

class yuangong {
	private String name;
	private int age;

	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;
	}
}

class guanli extends yuangong {
	private String zhiwu;
	private int yearmoney;

	public String getZhiwu() {
		return zhiwu;
	}

	public void setZhiwu(String zhiwu) {
		this.zhiwu = zhiwu;
	}

	public int getYearmoney() {
		return yearmoney;
	}

	public void setYearmoney(int yearmoney) {
		this.yearmoney = yearmoney;
	}
}

class zhiyuan extends yuangong {
	private String bumen;
	private int monthmoney;

	public String getBumen() {
		return bumen;
	}

	public void setBumen(String bumen) {
		this.bumen = bumen;
	}

	public int getMonthmoney() {
		return monthmoney;
	}

	public void setMonthmoney(int monthmoney) {
		this.monthmoney = monthmoney;
	}
}

public class jicheng {
	public static void main(String[] args) {
		guanli a=new guanli();
		guanli b=new guanli();
		zhiyuan c= new zhiyuan();
		zhiyuan d= new zhiyuan();
		a.setName("AAA");
		a.setAge(18);
		a.setYearmoney(3000);
		a.setZhiwu("aaa");
		b.setName("BBB");
		b.setAge(19);
		b.setYearmoney(4000);
		b.setZhiwu("bbb");
		c.setName("CCC");
		c.setAge(20);
		c.setMonthmoney(5000);
		c.setBumen("ccc");
		d.setName("DDD");
		d.setAge(21);
		d.setMonthmoney(6000);
		d.setBumen("ddd");
		System.out.println("姓名:"+a.getName()+" 年龄:"+a.getAge()+" 年薪:"+a.getYearmoney()+" 职务:"+a.getZhiwu());
		System.out.println("姓名:"+b.getName()+" 年龄:"+b.getAge()+" 年薪:"+b.getYearmoney()+" 职务:"+b.getZhiwu());
		System.out.println("姓名:"+c.getName()+" 年龄:"+c.getAge()+" 月薪:"+c.getMonthmoney()+" 部门:"+c.getBumen());
		System.out.println("姓名:"+d.getName()+" 年龄:"+d.getAge()+" 月薪:"+d.getMonthmoney()+" 部门:"+d.getBumen());
	}

}

实验四(3)

import java.util.*;

abstract class pingmian {
	public abstract double mianji();

	public abstract double zhouchang();

	public void jisuan(pingmian s) {
		double x;
		Scanner input = new Scanner(System.in);
		System.out.println("请计算面积");
		x = input.nextDouble();
		if (x == s.mianji()) {
			System.out.println("正确");
		} else {
			System.out.println("错误,正确答案为" + s.mianji());
		}
		System.out.println("请计算周长");
		x = input.nextDouble();
		if (x == s.zhouchang()) {
			System.out.println("正确");
		} else {
			System.out.println("错误,正确答案为" + s.zhouchang());
		}
	}
}

abstract class liti {
	public abstract double biaomianji();

	public abstract double tiji();

	public void jisuan(pingmian s, liti l) {
		double x;
		Scanner input = new Scanner(System.in);
		System.out.println("请计算表面积");
		x = input.nextDouble();
		if (x == l.biaomianji()) {
			System.out.println("正确");
		} else {
			System.out.println("错误,正确答案为" + l.biaomianji());
		}
		System.out.println("请计算体积");
		x = input.nextDouble();
		if (x == l.tiji()) {
			System.out.println("正确");
		} else {
			System.out.println("错误,正确答案为" + l.tiji());
		}
	}
}

class yuan extends pingmian {
	double r;

	yuan(double r) {
		this.r = r;
	}

	public double mianji() {
		return (3.14 * r * r);
	}

	public double zhouchang() {
		return (6.48 * r);
	}
}

class juxing extends pingmian {
	double a, b;

	juxing(double a, double b) {
		this.a = a;
		this.b = b;
	}

	public double mianji() {
		return a * b;
	}

	public double zhouchang() {
		return (2 * (a + b));
	}
}

class sanjiao extends pingmian {
	double a, b, c, h;

	sanjiao(double a, double b, double c, double h) {
		this.a = a;
		this.b = b;
		this.c = c;
		this.h = h;
	}

	public double mianji() {
		return (a * h / 2);
	}

	public double zhouchang() {
		return (a + b + c);
	}
}

class qiu extends liti {
	double r;

	public qiu(double r) {
		this.r = r;
	}

	public double biaomianji() {
		return (12.56 * r * r);
	}

	public double tiji() {
		return (12.56 * r * r * r / 3);
	}
}

class yuanzhu extends liti {
	double h;
	pingmian s;

	yuanzhu(pingmian s, double h) {
		this.s = s;
		this.h = h;
	}

	public double biaomianji() {
		return s.zhouchang() * h + 2 * s.mianji();
	}

	public double tiji() {
		return s.mianji() * h;
	}
}

class yuanzhui extends liti {
	double h;
	yuan s;

	yuanzhui(yuan s, double h) {
		this.s = s;
		this.h = h;
	}

	public double biaomianji() {
		return Math.pow(s.r * s.r + h * h, 0.5) * 3.14 * s.r + s.mianji();
	}

	public double tiji() {
		return s.mianji() * h / 3;
	}
}

public class tuxing {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int a, b, c, r, h;
		double x;
		pingmian s = null;
		liti l = null;

		r = (int) (Math.random() * 10);
		l = new qiu(r);
		System.out.println("球,半径为" + r);
		l.jisuan(null, l);

		r = (int) (Math.random() * 10);
		h = (int) (Math.random() * 10);
		s = new yuan(r);
		l = new yuanzhu(s, h);
		System.out.println("圆柱,底面园的半径为" + r + "高为" + h);
		l.jisuan(s, l);

		r = (int) (Math.random() * 10);
		h = (int) (Math.random() * 10);
		s = new yuan(r);
		l = new yuanzhui((yuan) s, h);
		System.out.println("圆锥,底面园的半径为" + r + "高为" + h);
		l.jisuan(s, l);

		r = (int) (Math.random() * 10);
		s = new yuan(r);
		System.out.println("圆形,半径为" + r);
		s.jisuan(s);

		a = (int) (Math.random() * 10);
		b = (int) (Math.random() * 10);
		s = new juxing(a, b);
		System.out.println("矩形,两条边分别为" + a + "和" + b);
		s.jisuan(s);

		a = (int) (Math.random() * 10);
		b = (int) (Math.random() * 10);
		c = (int) (Math.random() * 10);
		h = (int) (Math.random() * 10);
		s=new sanjiao(a,b,c,h);
		System.out.println("三角形,三条边分别为" + a + "和" + b + "和" + c + "第一条边上的高为" + h);
		s.jisuan(s);
	}

}

实验五(2)

import java.util.*;
interface Animal{
	abstract String cry();
	abstract String getAnimaName();
}

class cat implements Animal{
	public String cry() {
		return "喵喵喵";
	}
	public String getAnimaName() {
		return "猫";
	}
}

class dog implements Animal{
	public String cry() {
		return "汪汪汪";
	}
	public String getAnimaName() {
		return "狗";
	}
}

class Simulator{
	void playSound(Animal animal) {
		System.out.println(animal.cry());
		System.out.println(animal.getAnimaName());
	}
}

public class chongwu {
	public static void main(String[] args) {
		Simulator simulator = new Simulator();
		simulator.playSound(new dog());
		simulator.playSound(new cat());
	}

}

实验五(3)

import java.util.*;

abstract class Transportation {
	String bianhao;
	String xinghao;
	String fuzeren;

	public Transportation() {
	}

	public abstract String transport();

	public Transportation(String bianhao, String xinghao, String fuzeren) {
		this.setbianhao(bianhao);
		this.setxinghao(xinghao);
		this.setfuzeren(fuzeren);
	}

	public String getbianhao() {
		return bianhao;
	}

	public void setbianhao(String bianhao) {
		this.bianhao = bianhao;
	}

	public String getxinghao() {
		return xinghao;
	}

	public void setxinghao(String xinghao) {
		this.xinghao = xinghao;
	}

	public String getfuzeren() {
		return fuzeren;
	}

	public void setfuzeren(String fuzeren) {
		this.fuzeren = fuzeren;
	}
}

class JDTransportation extends Transportation {
	public JDTransportation(String bianhao, String xinghao, String fuzeren) {
		super(bianhao, xinghao, fuzeren);
	}

	public String transport() {
		return "1";
	}
}

interface GPS {
	abstract String showCoordinate();
}

class Phone implements GPS {
	public String showCoordinate() {
		int x, y;
		x = (int) (Math.random() * 1000);
		y = (int) (Math.random() * 1000);
		return x + "," + y;
	}
}

class SendTask {
	private String danhao;
	private String zhongliang;

	SendTask(String danhao, String zhongliang) {
		this.setZhongliang(zhongliang);
		this.setDanhao(danhao);
	}

	public String getDanhao() {
		return danhao;
	}

	public void setDanhao(String danhao) {
		this.danhao = danhao;
	}

	public String getZhongliang() {
		return zhongliang;
	}

	public void setZhongliang(String zhongliang) {
		this.zhongliang = zhongliang;
	}

	public void sendBefore() {
		System.out.println("订单开始处理,仓库开始验货...
货物重量:" + this.getZhongliang() + "
订单已发货
快递单号:" + this.getDanhao());
	}

	public void send(Transportation t, GPS tool) {
		System.out.println("
运货人" + t.getfuzeren() + "正在驾驶编号为" + t.getbianhao() + "的" + t.getxinghao()
				+ "发送货物!
京东快递运输中......
货物当前坐标:" + tool.showCoordinate());
	}

	public void sendAfter(Transportation t) {
		System.out
				.println("
货物运输已完成
运货人" + t.getfuzeren() + "所驾驶编号为" + t.getbianhao() + "的" + t.getxinghao() + "已归还!");
	}
}

public class wuliu {
	public static void main(String[] args) {
		SendTask a = new SendTask("hx201835", "13.2kg");
		Transportation b = new JDTransportation("zh1002", "长城", "小张");
		GPS c = new Phone();
		a.sendBefore();
		a.send(b, c);
		a.sendAfter(b);
	}
}

(三)代码托管

https://gitee.com/shaozico/remote_warehouse

原文地址:https://www.cnblogs.com/accelerator123/p/8810895.html