1. 程式人生 > >20165231 2017-2018-2 《Java程序設計》第3周學習總結

20165231 2017-2018-2 《Java程序設計》第3周學習總結

out IT 行數 變量 str 相同 bubuko mark 不能

教材學習內容總結

  • 對象(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小時

  • 改進情況:
    多敲代碼

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導
  • Java 程序設計視頻

20165231 2017-2018-2 《Java程序設計》第3周學習總結