码云地址: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
posted on 2018-10-13 19:51  丛春艳  阅读(153)  评论(2)    收藏  举报