20165231 2017-2018-2 《Java程序设计》第3周学习总结

Posted yhooyon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165231 2017-2018-2 《Java程序设计》第3周学习总结相关的知识,希望对你有一定的参考价值。

教材学习内容总结

  • 对象(Object):存在的具体实体,具有明确的状态和行为

  • 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制

  • 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象

  • 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)

  • 类是对象的设计图,对象是类的实例,生成对象要先定义类。
  • 类成员变量整个类中有效,局部变量仅在方法中有效。
  • 局部变量的名字与成员变量的名字相同时,成员变量被隐藏。
  • 成员变量有默认值,局部变量没有,所以使用局部变量前需要先需要声明其值。(注:声明与赋值不等价 int a=12;不等于int a; a=12;)

  • 在一个程序功能中有多个类class复合调用时,编译后运行应当运行有main函数的那一个类,别的类可能看似行数很多,但是只是作为主程序中的一个方法不能单独运行。例如教材代码:

SingGame.java

public class SingGame {
  public static void main (String args[]) {
    Line line=new Line();
    line.givePersonScore();
  }
}

InputScore.java

import java.util.Scanner;
public class InputScore {
  DelScore del;
  InputScore(DelScore del) {
    this.del=del;
  }
  public void inputScore(){
    System.out.println("请输入评委数:");
    Scanner read=new Scanner(System.in);
    int count = read.nextInt();
    System.out.println("请输入评委的分数:");
    double []a =new double[count];
    for(int i=0;i<count;i++){
      a[i]=read.nextDouble();
    }
    del.doDelete(a);
  }
}

DelScore.java

public class DelScore {
  ComputerAver computer;
  DelScore(ComputerAver computer) {
    this.computer=computer;
  }
  public void doDelete(double [] a) {
    java.util.Arrays.sort(a);
    System.out.print("去掉一个最高分:"+a[a.length-1]+",");
    System.out.print("去掉一个最低分:"+a[0]+"。");
    double b[] =new double[a.length-2];
    for(int i=1;i<a.length-1;i++) {
      b[i-1]=a[i];
    }
      computer.giveAver(b);
    }
  }

ComputerAver.java

public class ComputerAver {
  public void giveAver(double [] b) {
    double sum=0;
    for(int i=0;i<b.length;i++){
      sum=sum+b[i];
    }
    double aver=sum/b.length;
    System.out.println("选手的最后得分:"+aver);
  }
}

Line.java

public class Line {
  InputScore one;
  DelScore two;
  ComputerAver three;
  Line(){
    three = new ComputerAver();
    two=new DelScore(three);
    one=new InputScore(two);
  }
  public void givePersonScore() {
    one.inputScore();
  }
}

此时有五个类文件,编译通过后应当运行SingGame

代码调试中的问题和解决过程

问题:不在一个程序中的多个类相互调用时,想要通过一条命令让位于src下的多个代码编译后自动放入bin文件夹中,会提示错误找不到符号。

技术分享图片

解决方法:新建一个文件夹将此程序所有类放入,然后通过命令编译该文件夹所有.java文件。

技术分享图片

代码托管

技术分享图片

感悟

学习至第四章,发现渐渐开始有些难度了,也算是正式开始步入Java程序设计的。对象,方法等内容也是一般java程序必不可少的设计内容,勤加练习多打代码,会渐渐了解其套路,从而理解其使用。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/4 10/10
第二周 300/500 1/5 10/20
第三周 800/1300 1/6 20/40
第四周
  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:
    多敲代码

参考资料


以上是关于20165231 2017-2018-2 《Java程序设计》第3周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20165231 2017-2018-2 《Java程序设计》第9周学习总结

20165231 2017-2018-2 《Java程序设计》第6周学习总结

20165231 2017-2018-2 《Java程序设计》第7周学习总结

20165231 2017-2018-2 《Java程序设计》第2周学习总结

20165231 2017-2018-2 《Java程序设计》第1周学习总结

20165231 2017-2018-2 《Java程序设计》第3周学习总结