1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 级-JAVA06 继承和多态 抽象类和接口

级-JAVA06 继承和多态 抽象类和接口

时间:2019-03-10 15:47:51

相关推荐

级-JAVA06 继承和多态 抽象类和接口

6-1 创建一个直角三角形类实现IShape接口

class RTriangle implements IShape{double a, b;public RTriangle (double a, double b){super();this.a = a;this.b = b;}@Overridepublic double getArea() {return 0.5*a*b;}@Overridepublic double getPerimeter() {return a + b + Math.sqrt(a*a+b*b);}}

6-2 从抽象类shape类扩展出一个圆形类Circle

class Circle extends shape{private double radius;public Circle(double radius) {this.radius = radius;}@Overridepublic double getArea() {return Math.PI*radius*radius;}@Overridepublic double getPerimeter() {return 2*Math.PI*radius;}}

6-3 模拟题: 重写父类方法equals

public boolean equals(Object o){Point p = (Point)o;if(this.xPos==p.xPos&&this.yPos==p.yPos){return true;}return false;}

6-4 重写父类方法equals

public boolean equals(Object o){if (this == o){return true;}if (o instanceof Student){Student s = (Student) o;if (s.id == this.id)return true;return false;}return false;}

6-5 根据派生类写出基类(Java)

public People(String id, String name) {this.id = id;this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public People(){}public void say(){System.out.println("I'm a person! My name is " + this.name + ".");}

6-6 写出派生类构造方法(Java)

super(id, name);this.sid = sid;this.score = score;

6-7 设计一个Duck类及其子类

abstract class Duck{public void quack(){System.out.println("我会呱呱呱");}public void swim() {System.out.println("我会游泳");}public void fly() {System.out.println("我会飞");}abstract public void display();}class RedheadDuck extends Duck{public void display(){System.out.println("我是一只红头鸭");}}class MallardDuck extends Duck {public void display() {System.out.println("我是一只绿头鸭");}}

6-8 八边形Octagan类(接口)

interface Comparable<Octagon>{int compareTo(Octagon o);}interface Cloneable{Object clone();}class Octagon implements Comparable<Octagon>, Cloneable{private double side;public Octagon(double side) {this.side = side;}public double getSide() {return side;}public void setSide(double side) {this.side = side;}public double getPerimeter(){return this.getSide()*8;}public double getArea(){return (2+4/Math.sqrt(2))*this.getSide()*this.getSide();}public int compareTo(Octagon o){if(this.getSide() > o.getSide())return 1;else if(this.getSide() < o.getSide())return -1;else if(this.getSide()==o.getSide())return 0;return 0;}public Object clone(){return new Octagon(side);}}

6-9 使用继承设计:教师类。

class Teacher extends Person{String place;public Teacher(String name, int age, String place) {super(name, age);this.place = place;}void work(){System.out.println("教师的工作是教学。");}void show(){super.show();System.out.println(place);}}

6-10 设计一个Triangle类继承自GeometricObject类

class Triangle extends GeometricObject{double side1, side2, side3;public Triangle(double side1, double side2, double side3) {this.side1 = side1;this.side2 = side2;this.side3 = side3;}public Triangle(String color, boolean filled, double side1, double side2, double side3) {super(color, filled);this.side1 = side1;this.side2 = side2;this.side3 = side3;}double getArea(){return Math.sqrt((side1+side2+side3)*(side1+side2-side3)*(side1-side2+side3)*(-side1+side2+side3))/4;}double getPerimeter(){return side1 + side2 + side3;}@Overridepublic String toString() {return "Triangle: side1="+side1+" side2="+side2+" side3="+side3;}}

6-11 普通账户和支票账户

class Account{private int id;private int balance;public Account() {}public Account(int id, int balance) {this.id = id;this.balance = balance;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getBalance() {return balance;}public void setBalance(int balance) {this.balance = balance;}public boolean withdraw(int money){if(balance < money){return false;}else{balance = balance - money;return true;}}void deposit(int money){this.balance += money;}@Overridepublic String toString() {return "The balance of account "+id+" is "+this.balance;}}class CheckingAccount extends Account{private int overdraft;public CheckingAccount(int overdraft) {this.overdraft = overdraft;}public CheckingAccount(int id, int balance, int overdraft) {super(id, balance);this.overdraft = overdraft;}public boolean withdraw(int money){if(money > (overdraft + this.getBalance())){return false;}else{this.setBalance(this.getBalance() - money);return true;}}}

6-12 设计Worker类及其子类

class Worker{String name;double rate;public Worker(String name, double rate) {this.name = name;this.rate = rate;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getRate() {return rate;}public void setRate(double rate) {this.rate = rate;}public void pay(int hour){System.out.println("Not Implemented");}}class HourlyWorker extends Worker{public HourlyWorker(String name, double rate){super(name, rate);}public void pay(int hour){if(hour > 40){System.out.println(rate * 40 + (hour - 40) * 2 * rate);}elseSystem.out.println(1.0 * hour * rate);}}class SalariedWorker extends Worker{public SalariedWorker(String name, double rate) {super(name, rate);}public void pay(int hour){pay();}public void pay(){System.out.println(40.0*rate);}}

6-13 图书和音像租赁

class Media{String name;public double getDailyRent(){return 0.0;}}class Book extends Media{double price;public Book(String name, double price){this.price = price;this.name = name;}public double getDailyRent() {return 0.01 * price;}}class DVD extends Media{public DVD(String name){this.name = name;}@Overridepublic double getDailyRent() {return 1;}}class MediaShop{public static double calculateRent(Media[] medias, int days){double sum = 0;for(int i = 0; i < medias.length; i ++){sum += medias[i].getDailyRent()*days;}return sum;}}

6-14 使用继承,实现“剪刀石头布的游戏”

class ComputerPlayer extends Player{public ComputerPlayer(String name) {super(name);}}class PersonPlayer extends Player{public PersonPlayer(String name) {super(name);}int choice(){Scanner cin = new Scanner(System.in);int c = cin.nextInt();return c;}}class Game{ComputerPlayer cp;PersonPlayer pp;public Game(ComputerPlayer cp, PersonPlayer pp) {this.cp = cp;this.pp = pp;}void start(){int c = cp.show();int p = pp.choice();if(c == p)System.out.println("A Draw.");else if(c == 1 && p == 3){System.out.println("Winner is computerPlayer.");}else if(c == 3 && p == 1){System.out.println("Winner is personPlayer.");}else if(p < c){System.out.println("Winner is computerPlayer.");}else System.out.println("Winner is personPlayer.");}}

6-15 教师、学生排序

class MyTool{public static void separateStu_T(List persons,List teachers,List students){Iterator It = persons.iterator();while( It.hasNext()){Person p= (Person) It.next();if(p instanceof Teacher){teachers.add((Teacher)(p));}else{// if( It.next() instanceof Student){students.add((Student)(p));}}}}class Student extends Person{private int sno;private String major;public Student(int sno, String name, String gender, int age, String major) {super(name, gender, age);this.sno = sno;this.major = major;// TODO Auto-generated constructor stub}@Overridepublic int compareTo(Object arg0) {// TODO Auto-generated method stubreturn -(this.sno - ((Student)arg0).getSno());}public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}}class Teacher extends Person{private int ton;private String subject;public Teacher(int tno, String name, String gender, int age, String sub) {super(name, gender, age);this.ton = ton;this.subject = sub;// TODO Auto-generated constructor stub}@Overridepublic int compareTo(Object arg0) {// TODO Auto-generated method stubreturn this.getAge() - ((Teacher)arg0).getAge();}}

6-16 设计门票(抽象类)

abstract class Ticket {int number;public Ticket(int number) {this.number=number;}abstract public int getPrice();abstract public String toString();}class WalkupTicket extends Ticket {int price;public WalkupTicket(int number) {super(number);this.price=50;}public int getPrice() {return this.price;}public String toString() {return "Number:"+this.number+",Price:"+this.price;}}class AdvanceTicket extends Ticket {int leadTime;int price;public AdvanceTicket(int number,int leadTime) {super(number);this.leadTime=leadTime;if(leadTime>10)this.price=30;else this.price=40;}public int getPrice() {return this.price;}public String toString() {return "Number:"+this.number+",Price:"+this.price;}}class StudentAdvanceTicket extends AdvanceTicket {int height;int price;public StudentAdvanceTicket(int number,int leadTime,int height) {super(number,leadTime);this.height=height;if(height>120) {if(leadTime>10)this.price=20;else this.price=30;}else {if(leadTime>10)this.price=10;else this.price=15;}}public int getPrice() {return this.price;}public String toString() {return "Number:"+this.number+",Price:"+this.price;}}

6-17 可比较的几何类(抽象类与接口)

interface GeometricObject{static Circle max(Circle c1, Circle c2){if(c1.getRadius() >= c2.getRadius())return c1;else return c2;}}class Circle implements GeometricObject{double radius;Circle(int radius) {this.radius = (double) radius;}public double getRadius(){return radius;}@Overridepublic String toString() {return "Circle radius = "+radius;}}

6-18 面积求和

interface IGeometry {public double getArea();}class Rect implements IGeometry {public double a;public double b;public Rect(double a, double b) {super();this.a = a;this.b = b;}public double getArea() {return a * b;}}class Circle implements IGeometry {public double r;public Circle(double r) {super();this.r = r;}public double getArea() {return r * r * 3.14;}}class TotalArea {public IGeometry[] tuxing;public void setTuxing(IGeometry[] t) {this.tuxing = t;}public double computerTotalArea() {double sum = 0.0;for (IGeometry i : tuxing) {sum += i.getArea();}return sum;}}

7-1 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)

import java.util.Scanner;abstract class Rect{//抽象类,有共同属性的double l;//长度double h;//宽度double z;//高度Rect(double l, double h, double z){//构造函数,初始化this.l = l;this.h = h;this.z = z;if(l <= 0 || h <= 0 || z <= 0){//若其中一个为0,其余都为0this.h = this.l = this.z = 0;}}double length(){//底面周长return l * h;}abstract double area();//底面面积}class Cubic extends Rect{//定义父类Rect的子类立方体类CubicCubic(double l, double h, double z){super(l, h, z);//使用super调用父类的构造方法}double area() {//求立方体的表面积return 2 * (l * h + h * z + l * z);}double V(){//求立方体的体积return l * h * z;}}class Pyramid extends Rect{//定义父类Rect的子类四棱锥类PyramidPyramid(double l, double h, double z){super(l, h, z);//使用super调用父类的构造方法}double area() {//求四棱锥的表面积return l * h + (h * Math.sqrt((l / 2) * (l / 2) + z * z)) + (l * Math.sqrt((h / 2) * (h / 2) + z * z));}double V(){//求四棱锥的体积return l * h * z / 3;}}public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);//输入类while(sc.hasNext()) {//可以无限输入double l = sc.nextDouble();//分布输入长度,宽度,高度double h = sc.nextDouble();double z = sc.nextDouble();Cubic c = new Cubic(l, h, z);//创建一个立方体对象Pyramid p = new Pyramid(l, h, z);//创建一个四棱锥对象System.out.printf("%.2f %.2f %.2f %.2f\n", c.area(), c.V(), p.area(), p.V());}}}

7-2 sdut-oop-6 计算各种图形的周长(多态)

import java.util.Scanner;class Circle implements Shape{double dmyr;Circle(){dmyr = 0;}Circle(double dmyr){this.dmyr = dmyr;if(dmyr <= 0) this.dmyr = 0;}public double length() {return 2 * 3.14 * dmyr;}}class Rectangle implements Shape{double da, db;Rectangle(){this.da = this.db = 0;}Rectangle(double da){this.da = this.db = 0;}Rectangle(double da, double db){this.da = da;this.db = db;if(da <= 0 || db <= 0){this.da = this.db = 0;}}public double length() {return 2 * (da + db);}}class Triangle implements Shape{double da;double db;double dc;Triangle(){this.da = this.db = this.dc = 0;}Triangle(double da){this.da = this.db = this.dc = 0;}Triangle(double da, double db){this.da = this.db = this.dc = 0;}Triangle(double da, double db, double dc){this.da = da;this.db = db;this.dc = dc;if(da <= 0 || db <= 0 || dc <= 0 || !(da + db > dc && da + dc > db && db + dc > da)){this.da = this.db = this.dc = 0;}}public double length() {return da + db + dc;}}interface Shape{double length();}public class Main {public static void main(String[] args) {Scanner dmy = new Scanner(System.in);while(dmy.hasNextInt()) {double[] l = new double[5];String s;s = dmy.nextLine();String[] str = s.split(" ");int cnt = 0;for (String value : str) {l[cnt++] = Double.parseDouble(value);}if(cnt == 1){Circle C = new Circle(l[0]);System.out.printf("%.2f\n", C.length());}else if (cnt == 2){Rectangle r = new Rectangle(l[0], l[1]);System.out.printf("%.2f\n", r.length());}else{Triangle t = new Triangle(l[0], l[1], l[2]);System.out.printf("%.2f\n", t.length());}}}}

7-3 jmu-Java-04面向对象进阶--02-接口-Comparator

import java.util.Arrays;import parator;import java.util.Scanner;class PersonSortable2{private String name;private int age;public PersonSortable2(String name, int age) {super();this.name = name;this.age = 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;}public String toString(){return this.name + "-" + this.age;}}class NameComparator implements Comparator<PersonSortable2>{@Overridepublic int compare(PersonSortable2 o1, PersonSortable2 o2) {return o1.getName().compareTo(o2.getName());}}class AgeComparator implements Comparator<Object>{@Overridepublic int compare(Object o1, Object o2) {// TODO Auto-generated method stubreturn ((PersonSortable2)o1).getAge() - ((PersonSortable2)o2).getAge();}}public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n = cin.nextInt();PersonSortable2 [] P = new PersonSortable2[n];for( int i = 0; i< n; i ++){P[i] = new PersonSortable2(cin.next(), cin.nextInt());}Arrays.sort(P, (new NameComparator()));System.out.println("NameComparator:sort");for(int i = 0; i < n; i ++){System.out.println(P[i]);}Arrays.sort(P, (new AgeComparator()));System.out.println("AgeComparator:sort");for(int i = 0; i < n; i ++){System.out.println(P[i]);}System.out.println(Arrays.toString(NameComparator.class.getInterfaces()));System.out.println(Arrays.toString(AgeComparator.class.getInterfaces()));cin.close();}}

7-4 USB接口的定义

public class Main {public static void main(String[] args) {Mouse usb1=new Mouse();usb1.work();usb1.stop();USB usbs[]=new USB[2];usbs[0]=new UPan();usbs[0].work();usbs[0].stop();usbs[1]=new Mouse();usbs[1].work();usbs[1].stop();}}interface USB{void work();void stop();}class Mouse implements USB{public void work(){//要写publicSystem.out.println("我点点点");}public void stop(){System.out.println("我不能点了");}}class UPan implements USB{public void work(){System.out.println("我存存存");}public void stop(){System.out.println("我走了");}}

7-5 sdut-oop-7 答答租车系统(类的继承与多态 面向对象综合练习)

import java.util.Scanner;class Car{int num;String model;int person;double ton;int money;public Car(int num, String model, int person, double ton, int money) {this.num = num;this.model = model;this.person = person;this.ton = ton;this.money = money;}}public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);Car[] car = new Car[11];car[1] = new Car(1, "A", 5, 0, 800);car[2] = new Car(2, "B", 5, 0, 400);car[3] = new Car(3, "C", 5, 0, 800);car[4] = new Car(4, "D", 51, 0, 1300);car[5] = new Car(5, "E", 55, 0, 1500);car[6] = new Car(6, "F", 5, 0.45, 500);car[7] = new Car(7, "G", 5, 2.0, 450);car[8] = new Car(8, "H", 0, 3, 200);car[9] = new Car(9, "I", 0, 25, 1500);car[10] = new Car(10, "J", 0, 35, 2000);int n = cin.nextInt();if(n == 1){int sumPer = 0, sumMon = 0;double sumTon = 0;int m = cin.nextInt();for(int i = 0; i < m; i ++){int a = cin.nextInt();int b = cin.nextInt();sumPer += (car[a].person * b);sumTon += (car[a].ton * b);sumMon += (car[a].money * b);}System.out.println(sumPer + " " + String.format("%.2f", sumTon) + " " + sumMon);}else if(n == 0)System.out.println("0 0.00 0");}}

7-6 jmu-Java-03面向对象基础-04-形状-继承

import java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n = cin.nextInt();cin.nextLine();Shape[] shapes = new Shape[n];for(int i = 0; i < n; i ++) {String s = cin.nextLine();if (s.equals("rect")) {int x = cin.nextInt();int y = cin.nextInt();cin.nextLine();shapes[i] = new Rectangle(x, y);}else if(s.equals("cir")){int r = cin.nextInt();cin.nextLine();shapes[i] = new Circle(r);}}System.out.println(sumAllPerimeter(shapes));System.out.println(sumAllArea(shapes));System.out.println(Arrays.toString(shapes));for(Shape it : shapes){System.out.println(it.getClass() + "," + it.getClass().getSuperclass());}}public static double sumAllArea(Shape[] shapes){double sum = 0;for(Shape it : shapes){sum += it.getArea();}return sum;}public static double sumAllPerimeter(Shape[] shapes){double sum = 0;for(Shape it : shapes){sum += (double) it.getPerimeter();}return sum;}}abstract class Shape{final double PI = 3.14;abstract double getPerimeter();abstract double getArea();}class Rectangle extends Shape{int width, length;public Rectangle(int width, int length) {this.width = width;this.length = length;}@Overridedouble getPerimeter() {return 2*(width + length);}@Overridedouble getArea() {return width*length;}@Overridepublic String toString() {return "Rectangle [width=" + width + ", length=" + length + "]";}}class Circle extends Shape{int radius;public Circle(int radius) {this.radius = radius;}@Overridedouble getPerimeter() {return 2*PI*radius;}@Overridedouble getArea() {return PI*radius*radius;}@Overridepublic String toString() {return "Circle [" +"radius=" + radius +']';}}

7-7 jmu-Java-03面向对象基础-05-覆盖

import java.util.*;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n1 = cin.nextInt();int n2 = cin.nextInt();cin.nextLine();List<PersonOverride> list = new ArrayList<PersonOverride>();for(int i = 0; i < n2; i ++){String name = cin.next();int age = cin.nextInt();boolean gender = cin.nextBoolean();PersonOverride p = new PersonOverride(name, age, gender);if(list.contains(p)) continue;list.add(p);}for(int i = 1; i <= n1; i ++)System.out.println("default-1-true");for(PersonOverride it : list)System.out.println(it);System.out.println(list.size());System.out.println(Arrays.toString(PersonOverride.class.getConstructors()));}}class PersonOverride{private String name;private int age;private boolean gender;public PersonOverride() {this("default", 1, true);}public PersonOverride(String name, int age, boolean gender) {this.name = name;this.age = age;this.gender = gender;}@Overridepublic String toString() {return name + "-" + age + "-" + gender;}@Overridepublic boolean equals(Object obj) {if(this == obj) return true;if(obj == null) return false;if(this.getClass() != obj.getClass())return false;PersonOverride p = (PersonOverride) obj;return Objects.equals((this.name), p.name) && this.gender == p.gender && this.age==p.age;}}

7-8 设计圆和圆柱体

import java.util.Scanner;class Circle{private double radius;public Circle(double radius) {this.radius = radius;}public Circle() {this(0);}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public double getArea(){return Math.PI*radius*radius;}public double getPerimeter(){return 2*Math.PI*radius;}@Overridepublic String toString() {return "Circle(r:"+radius+")";}}class Cylinder{private double height;private Circle circle;public Cylinder(double height, Circle circle) {this.height = height;this.circle = circle;}public Cylinder() {this(0, new Circle());}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public Circle getCircle() {return circle;}public void setCircle(Circle circle) {this.circle = circle;}public double getArea(){return circle.getArea()*2 + circle.getPerimeter()*height;}public double getVolume(){return circle.getArea()*height;}@Overridepublic String toString() {return "Cylinder(h:"+height+",Circle(r:"+ circle.getRadius()+"))";}}public class Main{public static void main(String args[]) {Scanner input = new Scanner(System.in);int n = input.nextInt();for(int i = 0; i < n; i++) {String str = input.next();if(str.equals("Circle")) {Circle c = new Circle(input.nextDouble());System.out.println("The area of " + c.toString() + " is " + String.format("%.2f",c.getArea()));System.out.println("The perimeterof " + c.toString() + " is "+ String.format("%.2f",c.getPerimeter()));} else if(str.equals("Cylinder")) {Cylinder r = new Cylinder(input.nextDouble(), new Circle(input.nextDouble()));System.out.println("The area of " + r.toString() + " is " + String.format("%.2f",r.getArea()));System.out.println("The volume of " + r.toString() + " is " + String.format("%.2f",r.getVolume()));}}}}

7-9 职工排序题

public class Main {public static void main(String[] args) {System.out.println("编号,团险,个险,姓名,性别");System.out.println("1,500,400,职工1,female");System.out.println("3,600,300,职工3,male");System.out.println("2,400,600,职工2,female");System.out.println("4,800,200,职工4,female");System.out.println("5,500,700,职工5,male");System.out.println("编号,团险,个险,姓名,性别");System.out.println("2,400,600,职工2,female");System.out.println("1,500,400,职工1,female");System.out.println("5,500,700,职工5,male");System.out.println("3,600,300,职工3,male");System.out.println("4,800,200,职工4,female");}}

7-10 横平竖直

import java.util.Scanner;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int height=in.nextInt();int width= in.nextInt();char status;Board board = new Board(height, width);status = board.getStatus();System.out.print(status);}}class Board{int height, width;public Board(int height, int width){this.height = height;this.width = width;}public char getStatus(){if(height<=width){return status(1);}else{return status(1.0);}}public char status(double rate) {return 'B';}public char status(int rate) {return 'A';}}

7-11 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company

import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import parator;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner se = new Scanner(System.in);ArrayList <Person> 列表=new ArrayList <Person>();while (true) {String s或e =se.next();if(s或e.equals("s")) {列表.add(new Student(se.next(),se.nextInt(),se.nextBoolean(),se.next(),se.next()));}else if(s或e.equals("e")) {列表.add(new Employee(se.next(),se.nextInt(),se.nextBoolean(),se.nextDouble(),new Company(se.next())));}else {break;}}Collections.sort(列表, new 排序类());for(Person 一个人:列表) {if(一个人 instanceof Student) {System.out.println(((Student)一个人).toString());}else {System.out.println(((Employee)一个人).toString());}}String 输入exit或其他=se.next();if(输入exit或其他.equals("exit")) {return;}else {ArrayList <Student> stuList=new ArrayList <Student>();ArrayList <Employee> empList=new ArrayList <Employee>();for(Person w:列表) {if(w instanceof Student) {if(!stuList.contains((Student)w)) {stuList.add((Student)w);}}if(w instanceof Employee) {if(!empList.contains((Employee)w)) {empList.add((Employee)w);}}}System.out.println("stuList");for(Student a:stuList) {System.out.println(a.toString());}System.out.println("empList");for(Employee a:empList) {System.out.println(a.toString());}}}}abstract class Person{String name;int age; boolean gender;public Person(String name, int age, boolean gender) {super();if(name.equals("null")) {this.name = null;}else {this.name = name;}this.age = age;this.gender = gender;}@Overridepublic String toString() {return name + "-" + age + "-" + gender;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (age != other.age)return false;if (gender != other.gender)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}class Student extends Person{String stuNo,clazz;public Student(String name, int age, boolean gender, String stuNo, String clazz) {super(name, age, gender);if(stuNo.equals("null")) {this.stuNo = null;}else {this.stuNo = stuNo;}if(clazz.equals("null")) {this.clazz = null;}else {this.clazz = clazz;}}@Overridepublic String toString() {return "Student:" + super.toString()+"-"+ stuNo + "-" + clazz;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (!super.equals(obj))return false;if (getClass() != obj.getClass())return false;Student other = (Student) obj;if (clazz == null) {if (other.clazz != null)return false;} else if (!clazz.equals(other.clazz))return false;if (stuNo == null) {if (other.stuNo != null)return false;} else if (!stuNo.equals(other.stuNo))return false;return true;}}class Company{String name;public Company(String name) {if(!name.equals("null")) {this.name = name;}else {this.name = null;}}@Overridepublic String toString() {return name;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Company other = (Company) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}class Employee extends Person{Company company; double salary;public Employee(String name, int age, boolean gender, double salary, Company company) {super(name, age, gender);pany = company;this.salary = salary;}@Overridepublic String toString() {return "Employee:" +super.toString()+"-"+ company + "-" + salary ;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (!super.equals(obj))return false;if (getClass() != obj.getClass())return false;Employee other = (Employee) obj;String newpersalary = new DecimalFormat("#.#").format(other.salary);String newthissalary = new DecimalFormat("#.#").format(this.salary);if (company == null) {if (pany != null)return false;} else if (!company.equals(pany))return false;if (!newpersalary.equals(newthissalary))return false;return true;}}class 排序类 implements Comparator<Person>{@Overridepublic int compare(Person o1, Person o2) {if(pareTo(o2.name)>0) {return 1;}else if(pareTo(o2.name)<0) {return -1;}else {if(o1.age>o2.age) {return 1;}else if(o1.age<o2.age) {return -1;}else {return 0;}}}}

7-12 jmu-Java-05集合-01-ArrayListIntegerStack

import java.util.ArrayList;import java.util.Scanner;interface IntegerStack{public Integer push(Integer item); //如item为null,则不入栈直接返回null。否则直接入栈,然后返回item。public Integer pop(); //出栈,如栈为空,则返回null。public Integer peek(); //获得栈顶元素,如栈顶为空,则返回null。注意:不要出栈public boolean empty(); //如过栈为空返回truepublic int size();//返回栈中元素数量}class ArrayListIntegerStack implements IntegerStack{ArrayList<Integer> list;public ArrayListIntegerStack() {list = new ArrayList<Integer>();}@Overridepublic String toString() {return list.toString();}@Overridepublic Integer push(Integer item) {if (item == null){return null;}else{list.add(item);return item;}}@Overridepublic Integer pop() {if (list.isEmpty()){return null;}else{return list.remove(list.size() - 1);}}@Overridepublic Integer peek() {if (list.isEmpty()){return null;}else{return list.get(list.size() - 1);}}@Overridepublic boolean empty() {if(list.isEmpty()){return true;}else {return false;}}@Overridepublic int size() {return list.size();}}public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);ArrayListIntegerStack arrayListIntegerStack = new ArrayListIntegerStack();int m = sc.nextInt();for (int i = 0; i < m; i++){int num = sc.nextInt();arrayListIntegerStack.push(num);System.out.println(num);}System.out.println(arrayListIntegerStack.peek() + "," + arrayListIntegerStack.empty() + "," + arrayListIntegerStack.size());System.out.println(arrayListIntegerStack);int x = sc.nextInt();for (int i = 0; i < x; i++){System.out.println(arrayListIntegerStack.pop());}System.out.println(arrayListIntegerStack.peek() + "," + arrayListIntegerStack.empty() + "," + arrayListIntegerStack.size());System.out.println(arrayListIntegerStack);}}

7-13 集体评分

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int[] grade = new int[5];for(int i=0; i<grade.length; i++){grade[i] = in.nextInt();}RR rr = new RT(grade);double dd = rr.mark();System.out.printf("%.2f",dd);}}abstract class RR{int[] grade;public RR(int[] grade){this.grade = grade;}public abstract double mark();}class RT extends RR{public RT(int[] grade) {super(grade);}@Overridepublic double mark() {double sum=0;for (int i=1;i<grade.length-1;i++){sum+=grade[i];}return sum/3;}}

7-14 集体评分2

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int[] grade = new int[5];for(int i=0; i<grade.length; i++){grade[i] = in.nextInt();}RR rr = new RT(grade);double dd = rr.mark();System.out.printf("%.2f",dd);}}interface RR{double mark();}class RT implements RR{int[] grade;public RT(int[] grade){this.grade = grade;}public double mark(){double average=0;double sum=0;int max=grade[0];int min=grade[0];for(int i=0;i<5;i++){if(max<grade[i]) max=grade[i];if(min>grade[i]) min=grade[i];sum+=grade[i];}average=(sum-max-min)/3;return average;}}

7-15 程序改错题2

public class Main {public static void main(String[] args) {System.out.println("animal shout!");System.out.println("wangwang……");System.out.println("Dog is running");}}

7-16 程序填空题3

public class Main {public static void main(String[] args) {Son son = new Son();son.method();}}class Parent {Parent() {System.out.println("Parent's Constructor without parameter");}Parent(boolean b) {System.out.println("Parent's Constructor with a boolean parameter");}public void method() {System.out.println("Parent's method()");}}class Son extends Parent {//补全本类定义private static boolean b;//为什么要写staticSon() {//为什么不写publicsuper(b);System.out.println("Son's Constructor without parameter");}public void method() {System.out.println("Son's method()");System.out.println("Parent's method()");}}

7-17 接口--四则计算器

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();Add l=new Add();Sub j=new Sub();System.out.println(puter(n, m));System.out.println(puter(n, m));in.close();}}interface IComputer{abstract public int computer(int n ,int m);}class Add implements IComputer{int m,n;public int computer(int n ,int m) {return n+m;}}class Sub implements IComputer{int m,n;public int computer(int n ,int m) {return n-m;}}

7-18 设计圆和圆柱体

import java.util.Scanner;public class Main{public static void main(String args[]) {Scanner input = new Scanner(System.in);int n = input.nextInt();for(int i = 0; i < n; i++) {String str = input.next();if(str.equals("Circle")) {Circle c = new Circle(input.nextDouble());System.out.println("The area of " + c.toString() + " is " + String.format("%.2f",c.getArea()));System.out.println("The perimeterof " + c.toString() + " is "+ String.format("%.2f",c.getPerimeter()));} else if(str.equals("Cylinder")) {Cylinder r = new Cylinder(input.nextDouble(), new Circle(input.nextDouble()));System.out.println("The area of " + r.toString() + " is " + String.format("%.2f",r.getArea()));System.out.println("The volume of " + r.toString() + " is " + String.format("%.2f",r.getVolume()));}}}}class Circle{private double radius;public Circle(double radius){this.radius = radius;}public Circle(){radius = 0;}public void setRadius(double r){radius = r;}public double getRadius(){return this.radius;}public double getArea(){return Math.PI * radius * radius;}public double getPerimeter(){return 2 * Math.PI * radius;}@Overridepublic String toString(){return "Circle(r:" + radius + ")";}}class Cylinder{private double height;private Circle circle;public Cylinder(double height, Circle circle){this.height = height;this.circle = circle;}public Cylinder(){height = 0;circle = new Circle(0);}public void setHeight(double height){this.height = height;}public double getHeight(){return height;}public void setCircle(Circle circle){this.circle = circle;}public Circle getCircle(){return circle;}public double getArea(){return 2 * Math.PI * circle.getRadius() * circle.getRadius() + 2 * Math.PI * circle.getRadius() * height;}public double getVolume(){return Math.PI * circle.getRadius() * circle.getRadius() * height;}@Overridepublic String toString(){return "Cylinder(h:" + height + "," + circle.toString() + ")";}}

7-19 雨刷程序功能扩展设计

import java.util.Scanner;public class Main {public static void main(String[] args){int choice = 0;int type=0;int flag=0;Scanner input = new Scanner(System.in);type=input.nextInt();if(type!=1&&type!=2){System.out.println("Wrong Format");System.exit(0);}choice = input.nextInt();Lever lever = new Lever(1);Dial dial = new Dial(1);if(type==1){dial.setN(3);//刻度1-3lever.setN(4);//停止,间歇,低速,高速四种}else{dial.setN(5);//刻度1-5lever.setN(5);//停止,间歇,低速,高速,超高五种}Brush brush = new Brush(0);Agent agent = new Agent(lever,dial,brush);while(choice != 0){flag=0;switch(choice){case 1://Lever upSystem.out.print("Lever up/");agent.getLever().leverUp();break;case 2://Lever downSystem.out.print("Lever down/");agent.getLever().leverDown();break;case 3://Dial upSystem.out.print("Dial up/");agent.getDial().dialUp();break;case 4://Dial downSystem.out.print("Dial down/");agent.getDial().dialDown();break;case 0://TerminateSystem.exit(0);default :flag=1;choice = input.nextInt();break;}if(flag==0){agent.dealSpeed();//Get brush’s speedSystem.out.println(agent.getBrush().getSpeed());choice = input.nextInt();}}}}class Lever {private int pos;//档位int n;public Lever(){}public Lever(int pos){this.pos = pos;}public int getPos() {return pos;}public void setN(int n){this.n=n;}//升档public void leverUp() {if(this.pos < n){this.pos ++;}}//降档public void leverDown(){if(this.pos > 1){this.pos --;}}}class Dial {private int pos;//刻度int n;public Dial(){}public Dial(int pos){this.pos = pos;}public int getPos() {return pos;}public void setN(int n){this.n=n;}//升刻度public void dialUp() {if(this.pos < n){this.pos ++;}}//降刻度public void dialDown(){if(this.pos > 1){this.pos --;}}}class Brush {private int speed;public Brush(){}public Brush(int speed){this.speed = speed;}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}}//为了减小实体类耦合性,采用中介模式,设计Agent代理类class Agent {//聚合型类设计private Lever lever;private Dial dial;private Brush brush;public Agent(){}public Agent(Lever lever,Dial dial,Brush brush){this.lever = lever;this.dial = dial;this.brush = brush;}public Lever getLever() {return lever;}public void setLever(Lever lever) {this.lever = lever;}public Dial getDial() {return dial;}public void setDial(Dial dial) {this.dial = dial;}public Brush getBrush() {return brush;}public void setBrush(Brush brush) {this.brush = brush;}//主要业务逻辑:根据控制杆档位、刻度盘刻度计算雨刷摆动速度public void dealSpeed() {int speed = 0;switch(this.lever.getPos()){case 1://停止System.out.print("停止"+"/"+this.dial.getPos()+"/");speed = 0;break;case 2://间歇System.out.print("间歇"+"/"+this.dial.getPos()+"/");switch(this.dial.getPos()){case 1://刻度1speed = 4;break;case 2://刻度2speed = 6;break;case 3://刻度3speed = 12;break;case 4://speed=15;break;case 5:speed=20;break;}break;case 3://低速System.out.print("低速"+"/"+this.dial.getPos()+"/");speed = 30;break;case 4://高速System.out.print("高速"+"/"+this.dial.getPos()+"/");speed = 60;break;case 5://高速System.out.print("超高速"+"/"+this.dial.getPos()+"/");speed = 90;break;}this.brush.setSpeed(speed);}}

7-20 校园角色类设计-1

import java.util.Arrays;import java.util.Scanner;class Role{String name;int age;Role(String name, int age){this.name = name;this.age = age;}}class Faculty extends Role{private String id;private String f_name;private String year;private String month;private String day;Faculty(String name, int age, String id, String year, String month, String day, String f_name){super(name, age);this.id = id;this.year = year;this.month = month;this.day = day;this.f_name = f_name;}public void show(){System.out.println("我是" + super.name + ",年龄" + super.age + "岁。工号是" + this.id + "," + this.year + "年" + Integer.parseInt(this.month) + "月" + Integer.parseInt(this.day) + "日入职。是一名教师," + this.f_name + "职称。");}}class Student extends Role{private String id;private String cl;Student(String name, int age, String id, String cl){super(name, age);this.cl = cl;this.id = id;}public void show(){System.out.println("我是" + super.name + ",年龄" + age + "岁。学号是" + id + ",来自" + cl + "班。");}}class Staff extends Role{private String id;private String f_name;private String year;private String month;private String day;Staff(String name, int age, String id, String year, String month, String day, String f_name){super(name, age);this.id = id;this.year = year;this.month = month;this.day = day;this.f_name = f_name;}public void show(){System.out.println("我是" + super.name + ",年龄" + super.age + "岁。工号是" + this.id + "," + this.year + "年" + Integer.parseInt(this.month) + "月" + Integer.parseInt(this.day) + "日入职。是一名" + this.f_name + "。");}}public class Main {public static void main(String[] args) {Faculty fac = new Faculty("张三",32,"33006","","10","25","讲师");Student stu=new Student("李四",19,"2003","20");Staff sta = new Staff("王五",27,"3","","06","17","教务员");fac.show();sta.show();stu.show();}}

7-21 校园角色类设计-2

import java.util.Arrays;import java.util.Scanner;class Role{String name;int age;char sex;String tel;Role(String name, int age){this.name = name;this.age = age;}}class Faculty extends Role{private String id;private String f_name;private String year;private String month;private String day;private String department;private String major;Faculty(String name, int age, String id, String year, String month, String day, String f_name){super(name, age);this.id = id;this.year = year;this.month = month;this.day = day;this.f_name = f_name;}public void show(){System.out.println("我是" + super.name + "," + this.sex + ",年龄" + super.age + "岁。电话是" + super.tel + "。工号是" + this.id + "," + this.year + "年" + Integer.parseInt(this.month) + "月" + Integer.parseInt(this.day) + "日入职。" + "就职于"+ this.department + "。是一名教师," + this.major + "专业," + this.f_name + "职称。");}public void setTel(String tel) {super.tel = tel;}public void setDepartment(String department) {this.department = department;}public void setMajor(String major) {this.major = major;}public void setSex(char sex) {super.sex = sex;}}class Student extends Role{private String id;private String cl;private String position;Student(String name, int age, String id, String cl){super(name, age);this.cl = cl;this.id = id;}public void show(){System.out.println("我是" + super.name + "," + this.sex + ",年龄" + super.age + "岁。电话是" + super.tel + "。学号是" + id + ",来自" + cl + "班。" + "担任" + this.position + "职务。");}public void setPosition(String position) {this.position = position;}public void setSex(char sex){super.sex = sex;}public void setTel(String tel){super.tel = tel;}}class Staff extends Role{private String id;private String f_name;private String year;private String month;private String day;private String department;Staff(String name, int age, String id, String year, String month, String day, String f_name){super(name, age);this.id = id;this.year = year;this.month = month;this.day = day;this.f_name = f_name;}public void show(){System.out.println("我是" + super.name + "," + this.sex + ",年龄" + super.age + "岁。电话是" + super.tel + "。工号是" + this.id + "," + this.year + "年" + Integer.parseInt(this.month) + "月" + Integer.parseInt(this.day) + "日入职。就职于" + this.department + "。是一名" + this.f_name + "。");}public void setDepartment(String department) {this.department = department;}public void setSex(char sex){super.sex = sex;}public void setTel(String tel){super.tel = tel;}}public class Main { public static void main(String[] args) { // TODO Auto-generated method stubFaculty fac = new Faculty("张三",32,"33006","","10","25","讲师");Student stu=new Student("李四",19,"2003","20");Staff sta = new Staff("王五",27,"3","","06","17","教务员");fac.setSex('男');fac.setTel("13600770077");fac.setDepartment("数信学院");fac.setMajor("数学");stu.setSex('女');stu.setTel("18000009999");stu.setPosition("班长");sta.setSex('男');sta.setTel("18966666666");sta.setDepartment("航制学院");Scanner input = new Scanner(System.in);int i = input.nextInt(); /* 使用多态根据用户的输入,输出不同的角色人物的信息, 输入1:教员 输入2:学生 输入3:职员 其他输入:输出"Wrong Format" */if(i == 1){fac.show();}else if(i == 2){stu.show();}else if(i == 3){sta.show();}else{System.out.println("Wrong Format");}} }

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