首页 > 技术文章 > Java第二次作业

sucker 2019-04-02 16:46 原文

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类型时就不会有偏差。

 

推荐阅读