1.编写“人”类及其测试类。属性:姓名、性别、年龄、身份证号码。
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类运行结果:
2.编写“手机”类及其测试类。属性:手机品牌、手机型号。
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类运行结果:
3.编写“书籍”类及其测试类。属性:书名、书号、主编、出版社、出版时间、页数、价格。
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类运行结果:
4.编写“圆柱体”类及其测试类。属性:圆底半径、高。
方法1:计算底面积
方法2:计算体积
方法3:打印圆底半径、高、底面积和体积
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类型时就不会有偏差。