第二次过程性考核
码云:https://gitee.com/happywindmannn/the_second_process_assessment/tree/master
7-1 学生类-构造函数
定义一个有关学生的Student类,内含类成员变量: String name、String sex、int age,所有的变量必须为私有(private)。
1.编写有参构造函数:
能对name,sex,age赋值。
2.覆盖toString函数:
按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式
3.main方法中
输入1行name age sex , 调用上面的有参构造函数新建对象。
输入样例:
tom 15 male
输出样例:
Student [name='tom', sex='male', age=15]
设计思路:
1.创建一个Student的类内容含有各种属性。
在Student类中构造有参数函数时,应该注意在类中构造有参函数public后不用定义该函数,切构造函数名称与类相同。
2.toString函数的创建,定义输入字符覆盖到Student类中的属性。
1 import java.util.Scanner; 2 3 class Student { //创建类 4 private String name; 5 private String sex; 6 private int age; 7 8 public Student() { //此处为有参构造函数,把类中属性赋值。 9 this.name = "tom"; 10 this.sex = "male"; 11 this.age = 15; 12 } 13 14 public void toString(String n, int a, String s) { //toString输出函数,并定义输入字符n,s,a赋值到类中属性。 15 this.name = n; 16 this.sex = s; 17 this.age = a; 18 System.out.println("Student [name=" + this.name + ", sex=" + this.sex + ", age=" + this.age + "]"); 19 } 20 21 } 22 23 public class StudentClass { 24 public static void main(String[] args) { 25 26 Scanner reader = new Scanner(System.in); 27 String n = reader.next(); // 创建对象,实例化 28 int a = reader.nextInt(); 29 String s = reader.next(); 30 Student ww = new Student(); 31 ww.toString(n, a, s); 32 reader.close(); 33 34 } 35 }
总结:此题在考试中没有得分,因为没有掌握toString函数,以及对输入的覆盖问题没有掌握。
ps:此题思路参考陈炳全同学,应还有没有完善的地方,在之后补充。
7-2 定义类
请补充以下代码,完成输出要求。
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner in = new Scanner(System.in); 5 int a,b,c,d,e; 6 a = in.nextInt(); 7 b = in.nextInt(); 8 c = in.nextInt(); 9 d = in.nextInt(); 10 e = in.nextInt(); 11 RR rr = new RR(); 12 double dd = rr.fun(a,b,c,d,e); 13 System.out.printf("%.2f",dd); 14 } 15 } 16 class RR{ 17 18 19 }
输入格式:
在一行中给出5个不超过1000的正整数。
输出格式:
输出5个整数的平均值,保留小数点后两位
输入样式:
1 2 3 4 5
输出样式:
3.00
设计思路:
此题应该把类RR补全,RR内应该定义方法将5个输入变量,方法内求五个变量求平均数。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a,b,c,d,e; a = in.nextInt(); b = in.nextInt(); c = in.nextInt(); d = in.nextInt(); e = in.nextInt(); RR rr = new RR(); double dd = rr.fun(a,b,c,d,e); System.out.printf("%.2f",dd); } } class RR{ public double fun(int a, int b, int c, int d, int e,double i) { i =(a+b+c+d+e)/5; return i; }
总结:
类中方法的构建,以及方法中的值传参。
7-3 横平竖直
程序填空题。根据题目要求完善下面的代码。请提交完整代码。 一个木块如果高度比宽度大,我们说它是竖着放的,否则我们说它是平放的。 读入一个木块的高度和宽度。如果它是平放的,则输出A,否则输出B
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner in = new Scanner(System.in); 5 int height, width; 6 char status; 7 height = in.nextInt(); 8 width = in.nextInt(); 9 Board board = new Board(height, width); 10 status = board.getStatus(); 11 System.out.print(status); 12 } 13 } 14 class Board{ 15 int height, width; 16 public Board(int height, int width){ 17 this.height = height; 18 this.width = width; 19 } 20 public char getStatus(){ 21 if(height<=width){ 22 return status(1); 23 }else{ 24 return status(1.0); 25 } 26 } 27 public char status(double rate){ 28 29 } 30 public char status(int rate){ 31 32 } 33 }
设计思路:
(height<=width) 当宽大于等于高的时候返回值为1所以执行 public char status(int rate) 函数所以输出“A”。
反之则执行public char status(double rate)函数输出值为“B”。
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner in = new Scanner(System.in); 5 int height, width; 6 char status; 7 height = in.nextInt(); 8 width = in.nextInt(); 9 Board board = new Board(height, width); 10 status = board.getStatus(); 11 System.out.print(status); 12 } 13 } 14 class Board{ 15 int height, width; 16 public Board(int height, int width){ 17 this.height = height; 18 this.width = width; 19 } 20 public char getStatus(){ 21 if(height<=width){ 22 return status(1); 23 }else{ 24 return status(1.0); 25 } 26 } 27 public char status(double rate){ 28 return 'B'; 29 } 30 public char status(int rate){ 31 return 'A'; 32 } 33 }
7-4 程序改错题
程序改错题。以下代码存在错误,请修改后提交。
1 public class Main { 2 public static void main(String[] args) { 3 Animal animal = new Dog(); 4 animal.shout(); 5 animal.run(); 6 } 7 } 8 9 class Animal { 10 void shout() { 11 System.out.println("animal shout!"); 12 } 13 } 14 15 class Dog extends Animal { 16 void shout() { 17 super.shout(); 18 System.out.println("wangwang……"); 19 } 20 21 void run() { 22 System.out.println("Dog is running"); 23 } 24 }
输出样例:
animal shout!
wangwang……
Dog is running
设计思路:
Dog为Animal的继承类,在实例化输出时无法输出子类的方法,可以在父类中重新定义一个run方法,在子类Dog构造run时相当于重写run函数
1 public class Main { 2 public static void main(String[] args) { 3 Animal animal = new Dog(); 4 5 animal.shout(); 6 animal.run(); 7 } 8 } 9 10 class Animal { 11 void shout() { 12 System.out.println("animal shout!"); 13 public void run() { 14 15 } 16 } 17 } 18 } 19 20 class Dog extends Animal { 21 void shout() { 22 System.out.println("wangwang……"); 23 } 24 25 void run() { 26 System.out.println("Dog is running"); 27 } 28 }
代码行数 |
博客行数 |
? | 1000 |