zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Lighting maps_练习二
    Lighting maps_练习一
    Materials_练习
    Basic Lighting_练习二
    *201809-3
    程序设计思维与实践 Week14 作业 (3/4/数据班)
    程序设计思维与实践 Week14 限时大模拟 (3/4/数据班)
    程序设计思维与实践 Week15 作业 (3/4/数据班)
    程序设计思维与实践CSP-M4补题
    CCF201609-3
  • 原文地址:https://www.cnblogs.com/accelerator123/p/8810895.html
Copyright © 2011-2022 走看看