person包代码:
1 package com.wsy.person;
2
3 public class Person {
4 private String name ;
5 private char sex;
6 private int age;
7 private String IDCardNumber;
8
9 public Person(String name, char sex, int age, String IDCardNumber) {
10
11 this.name = name;
12 this.sex = sex;
13 this.age = age;
14 this.IDCardNumber = IDCardNumber;
15 }
16 public void print()
17 {
18 System.out.println("姓名:"+name);
19 System.out.println("性别:"+sex);
20 System.out.println("年龄:"+age);
21 System.out.println("身份证号码:"+IDCardNumber);
22 }
23 public String getName() {
24 return name;
25 }
26 public void setName(String name) {
27 this.name = name;
28 }
29 public char getSex() {
30 return sex;
31 }
32 public void setSex(char sex) {
33 this.sex = sex;
34 }
35 public int getAge() {
36 return age;
37 }
38 public void setAge(int age) {
39 this.age = age;
40 }
41 public String getIDCardNumber() {
42 return IDCardNumber;
43 }
44 public void setIDCardNumber(String iDCardNumber) {
45 IDCardNumber = iDCardNumber;
46 }
47
48 }
package com.wsy.person;
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person("张三",'男',18,"430101010101010101");
Person p2 = new Person("李四",'女',18,"123456789009876543");
p1.print();
p2.print();
}
}
TestPerson类运行结果:

phone包代码:
1 package com.wsy.phone;
2
3 public class Phone {
4 private String brand;
5 private String model;
6
7 public Phone(String brand, String model) {
8 this.brand = brand;
9 this.model = model;
10 }
11 public void print()
12 {
13 System.out.println("手机品牌:"+brand);
14 System.out.println("手机型号:"+model);
15 }
16 public String getBrand() {
17 return brand;
18 }
19 public void setBrand(String brand) {
20 this.brand = brand;
21 }
22 public String getModel() {
23 return model;
24 }
25 public void setModel(String model) {
26 this.model = model;
27 }
28
29 }
1 package com.wsy.phone;
2
3 public class TestPhone {
4
5 public static void main(String[] args) {
6 Phone p1 = new Phone("华为","荣耀3c");
7 Phone p2 = new Phone("联想","A3600D");
8 Phone p3 = new Phone("小米","note");
9 p1.print();
10 System.out.println("=========================================================");
11 p2.print();
12 System.out.println("=========================================================");
13 p3.print();
14 }
15
16 }
TestPhone类运行结果:

book包代码:
1 package com.wsy.book;
2
3 import java.util.Scanner;
4
5 public class BookInput {
6 Scanner in = new Scanner(System.in);
7 private String name;
8 private int bookNumber;
9 private String editorInChief;
10 private String press;
11 private String publishTime;
12 private int pageNumber;
13 private double price;
14 public void scanner()
15 {
16 name = in.nextLine();
17 bookNumber = Integer.valueOf(in.nextLine());
18 editorInChief = in.nextLine();
19 press = in.nextLine();
20 publishTime = in.nextLine();
21 pageNumber = Integer.valueOf(in.nextLine());
22 price = Double.valueOf(in.nextLine());
23 }
24 public String getName() {
25 return name;
26 }
27 public void setName(String name) {
28 this.name = name;
29 }
30 public int getBookNumber() {
31 return bookNumber;
32 }
33 public void setBookNumber(int bookNumber) {
34 this.bookNumber = bookNumber;
35 }
36 public String getEditorInChief() {
37 return editorInChief;
38 }
39 public void setEditorInChief(String editorInChief) {
40 this.editorInChief = editorInChief;
41 }
42 public String getPress() {
43 return press;
44 }
45 public void setPress(String press) {
46 this.press = press;
47 }
48 public String getPublishTime() {
49 return publishTime;
50 }
51 public void setPublishTime(String publishTime) {
52 this.publishTime = publishTime;
53 }
54 public int getPageNumber() {
55 return pageNumber;
56 }
57 public void setPageNumber(int pageNumber) {
58 this.pageNumber = pageNumber;
59 }
60 public double getPrice() {
61 return price;
62 }
63 public void setPrice(double price) {
64 this.price = price;
65 }
66
67
68 }
1 package com.wsy.book;
2
3 public class Book {
4 private String name;
5 private int bookNumber;
6 private String editorInChief;
7 private String press;
8 private String publishTime;
9 private int pageNumber;
10 private double price;
11
12 public Book(String name, int bookNumber, String editorInChief, String press, String publishTime, int pageNumber,
13 double price) {
14 this.name = name;
15 this.bookNumber = bookNumber;
16 this.editorInChief = editorInChief;
17 this.press = press;
18 this.publishTime = publishTime;
19 this.pageNumber = pageNumber;
20 this.price = price;
21 }
22 public void print()
23 {
24 System.out.println("书名:"+name);
25 System.out.println("书号:"+bookNumber);
26 System.out.println("主编:"+editorInChief);
27 System.out.println("出版社:"+press);
28 System.out.println("出版时间:"+publishTime);
29 System.out.println("页数:"+pageNumber);
30 System.out.println("价格:"+price);
31 }
32 public String getName() {
33 return name;
34 }
35 public void setName(String name) {
36 this.name = name;
37 }
38 public int getBookNumber() {
39 return bookNumber;
40 }
41 public void setBookNumber(int bookNumber) {
42 this.bookNumber = bookNumber;
43 }
44 public String getEditorInChief() {
45 return editorInChief;
46 }
47 public void setEditorInChief(String editorInChief) {
48 this.editorInChief = editorInChief;
49 }
50 public String getPress() {
51 return press;
52 }
53 public void setPress(String press) {
54 this.press = press;
55 }
56 public String getPublishTime() {
57 return publishTime;
58 }
59 public void setPublishTime(String publishTime) {
60 this.publishTime = publishTime;
61 }
62 public int getPageNumber() {
63 return pageNumber;
64 }
65 public void setPageNumber(int pageNumber) {
66 this.pageNumber = pageNumber;
67 }
68 public double getPrice() {
69 return price;
70 }
71 public void setPrice(int price) {
72 this.price = price;
73 }
74
75 }
1 package com.wsy.book;
2
3 import java.util.Scanner;
4
5 public class TestBook {
6
7 public static void main(String[] args) {
8 Scanner in = new Scanner(System.in);
9 BookInput input = new BookInput();
10 System.out.println("请依次输入书名、书号、主编、出版社、出版时间、页数、价格");
11 //以下代码出现代码重复,所以我建立了一个类把以下代码放入了类中,在类中写入了一个方法用来输入
12 //所以只需要建立一个BookInput对象就能够解决代码重复的问题了
13 // String name;
14 // int bookNumber = Integer.valueOf(in.nextLine());
15 // String editorInChief = in.nextLine();
16 // String press = in.nextLine();
17 // String publishTime = in.nextLine();
18 // int pageNumber = Integer.valueOf(in.nextLine());
19 // double price = Double.valueOf(in.nextLine());
20 input.scanner();
21 Book b1 = new Book(input.getName() , input.getBookNumber() , input.getEditorInChief() ,
22 input.getPress() , input.getPublishTime() , input.getPageNumber() , input.getPrice());
23 b1.print();
24 System.out.println("================================================================");
25 System.out.println("请依次输入书名、书号、主编、出版社、出版时间、页数、价格");
26 input.scanner();
27 Book b2 = new Book(input.getName() , input.getBookNumber() , input.getEditorInChief() ,
28 input.getPress() , input.getPublishTime() , input.getPageNumber() , input.getPrice());
29 b2.print();
30 in.close();
31 }
32
33 }
TestBook类运行结果:

cylinder包代码:
1 package com.wsy.cylinder;
2
3 import java.math.BigDecimal;
4 import java.util.Scanner;
5
6 public class CylinderInput {
7 Scanner in = new Scanner(System.in);
8 private BigDecimal ridius;
9 private BigDecimal height;
10 public void scanner()
11 {
12 ridius = new BigDecimal(in.nextLine());
13 height = new BigDecimal(in.nextLine());
14 }
15 public void showPrompt()
16 {
17 System.out.println("请输入圆柱体的半径和高:");
18 }
19 public BigDecimal getRidius() {
20 return ridius;
21 }
22 public void setRidius(BigDecimal ridius) {
23 this.ridius = ridius;
24 }
25 public BigDecimal getHeight() {
26 return height;
27 }
28 public void setHeight(BigDecimal height) {
29 this.height = height;
30 }
31
32 }
1 package com.wsy.cylinder;
2
3 import java.math.BigDecimal;
4
5 public class CylinderCalculation {
6 public static BigDecimal getBottomArea(BigDecimal p ,BigDecimal ridius)
7 {
8 return p.multiply(ridius).multiply(ridius);
9 }
10 public static BigDecimal getVolume(BigDecimal p , BigDecimal ridius , BigDecimal height)
11 {
12 return p.multiply(ridius).multiply(ridius).multiply(height);
13 }
14 }
1 package com.wsy.cylinder;
2
3 import java.math.BigDecimal;
4
5 public class Cylinder {
6 private final BigDecimal p = new BigDecimal("3.14");
7 private BigDecimal ridius;
8 private BigDecimal height;
9 public Cylinder(BigDecimal ridius, BigDecimal height) {
10 this.ridius = ridius;
11 this.height = height;
12 }
13 public void print()
14 {
15 System.out.println("圆底半径:"+ridius);
16 System.out.println("高:"+height);
17 System.out.println("底面积:"+CylinderCalculation.getBottomArea(p , ridius));
18 System.out.println("体积:"+CylinderCalculation.getVolume(p, ridius, height));
19 }
20 public BigDecimal getRidius() {
21 return ridius;
22 }
23 public void setRidius(BigDecimal ridius) {
24 this.ridius = ridius;
25 }
26 public BigDecimal getHeight() {
27 return height;
28 }
29 public void setHeight(BigDecimal height) {
30 this.height = height;
31 }
32
33 }
1 package com.wsy.cylinder;
2
3 public class TestCylinder {
4
5 public static void main(String[] args) {
6 CylinderInput input = new CylinderInput();
7 input.showPrompt();
8 input.scanner();
9 Cylinder c1 = new Cylinder(input.getRidius() , input.getHeight());
10 c1.print();
11 System.out.println("=======================================================");
12 input.showPrompt();
13 input.scanner();
14 Cylinder c2 = new Cylinder(input.getRidius() , input.getHeight());
15 c2.print();
16 }
17
18 }
TestCylinder类运行结果:

在本次作业中遇到了两个问题:
1.在TestBook类进行输入的时候出现大量的代码重复,在学长的提醒下,建立了一个新对象解决了问题,把所有的输入都放入那个类里,然后建立一个新的那个对象,然后调用对象的方法去给对象的成员变量赋值,然后使用get方法得到该对象的成员变量去传递值给book对象。
2.在TestCylinder类中,输入整数时没有问题,但是在输入浮点数时会有偏差,经过百度搜索该问题的时候,得知可以使用大浮点数(BigDecimal)new BigDecimal的时候使用String类型时就不会有偏差。
来源:https://www.cnblogs.com/sucker/p/10643608.html