码云地址:https://gitee.com/c_cy/16012102
7-5 jmu-Java-03面向对象基础-01-构造函数与toString
import java.util.Scanner; class Person{ private String name; //用private创建私有变量 private int age; private boolean gender; private int id=0; public Person(){ //创建无参的构造函数 System.out.println("This is constructor"); System.out.println(name+","+age+","+gender+","+id); System.out.println("Person [name="+name+", age="+age+", gender="+gender+", id="+id+"]"); } public Person(String name, int age, boolean gender){ //创建有参的构造函数 this.name=name; this.age=age; this.gender=gender; } public String toString(){ System.out.println("Person [name="+this.name+", age="+this.age+", gender="+this.gender+", id="+0+"]"); return name; } } public class One{ public static void main(String[] args) { Scanner reader=new Scanner(System.in); int n=reader.nextInt(); Person[] p=new Person[n]; //实例数组对象 for(int i=0; i<p.length; i++) { //循环输入 String name=reader.next(); int age=reader.nextInt(); boolean genter=reader.nextBoolean(); p[i]=new Person(name,age,genter); } for(int x=p.length-1; x>=0;x--){ //逆序输出 p[x].toString(); } p.toString(); Person p1=new Person(); } }

第一题是最难的,考试的时候做了一节课也没做完,最后还是回来之后和同学一起做的,还用了数组,主函数比较难写,因为调用的时候不熟练,有可能是练习的太少吧
7-6 集体评分
import java.util.Scanner; public class Two { 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(); } for(int i=0;i<grade.length;i++){ for(int j=i;j<grade.length;j++){ if(grade[i]<grade[j]){ //用冒泡排序法给数组排序 int a=grade[i]; grade[i]=grade[j]; grade[j]=a; } } } 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{ RT(int[] grade){ //创建构造函数继承父类的构造函数 super(grade); } public double mark(){ //创建mark函数,实现去除一个最高分,去除一个最低分,取平均值的计算 double z; z=(grade[1]+grade[2]+grade[3])/3; return z; } }

二三题是比较简单的题,这道题只要做好排序就没有难度了
7-7 程序填空题3
public class Three { 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 { Son(){ //创建构造函数继承父类的构造函数 super(true); System.out.println("Son's Constructor without parameter"); } public void method(){ System.out.println("Son's method()"); super.method(); //继承父类的method函数 } }

这到题主要用到的知识点就是使用super·继承
7-8 求两点之间距离
import java.util.Scanner; class Point{ double x; double y; public Point(double x,double y){ this.x=x; this.y=y; } public static double Distance(Point a,Point b){ double z; z=Math.sqrt(Math.pow((a.x-b.x),2)+Math.pow((a.y-b.y),2)); //使用了Math函数的平方和根号 return z; } } public class Four{ public static void main(String[] args){ Scanner reader=new Scanner(System.in); int x1=reader.nextInt(); int y1=reader.nextInt(); int x2=reader.nextInt(); int y2=reader.nextInt(); Point p1=new Point(x1,y1); //调用Point函数,传入第一个坐标 Point p2=new Point(x2,y2); //调用Point函数,传入第二个坐标 double a=Point.Distance(p1,p2); //调用Point的Distance函数实现距离的计算(Distance必须是static的否则Point调用不了) System.out.printf("%.2f",a); } }

这一题当初做的时候也是卡了很久,因为传参的地方没怎么想好,计算最后是在网上查到的方法
总结:
这次考核完成的有点烂,感觉是这段时间学习进度有点快,知识点有很多,然后自己又缺少练习,中间还放了十一的假期,学习状态有点不好,以后会继续努力!
| 学习内容 | 代码行数 | 博客字数 |
| 构造方法与对象 | 50 | |
| 子类与继承,重载 | 30 | |
| 第二次过程性考核 | 140 | 500 |
浙公网安备 33010602011771号