<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      第三次Blog作業

      Java面向對象編程學習全記錄——從基礎到GUI開發的成長之旅

      經過一個學期的Java面向對象編程學習,我完成了一系列PTA作業、實驗項目、線上學習和線下課程。整體來看,這門課程的工作量相當充實,每周平均需要投入10-12小時才能完成所有任務。PTA作業從基礎的類與對象設計逐漸過渡到復雜的集合框架應用;實驗項目則從簡單的"大象裝冰箱"模擬逐步升級為帶有圖形界面的完整應用系統。

      課程難度呈現明顯的階梯式上升特征:實驗一和實驗二主要考察類與對象的基本概念;實驗三引入集合框架和排序算法;實驗四增加了抽象類和接口的設計;實驗五則綜合應用JavaFX實現圖形界面。這種循序漸進的設計讓我能夠逐步適應面向對象編程的思維方式,而不會一開始就被復雜的系統嚇倒。

      一, 面向對象技術深度總結

      1. 封裝:從數據保護到職責劃分
        在實驗二中,我首次真正理解了封裝的意義。通過將大象類的屬性(name, weight, height)設為private并提供公有的getter/setter方法,我學會了如何保護對象內部狀態不被意外修改。隨著實驗的深入,我發現封裝不僅僅是數據隱藏,更是模塊職責的劃分。

      // 實驗二中的Elephant類體現了基本封裝思想
      public class Elephant {
      private String name;
      private int weight;
      private int height;

      public Elephant(String name, int weight, int height) {
          this.name = name;
          this.weight = weight;
          this.height = height;
      }
      
      // 公有的getter方法提供受控訪問
      public String getName() { return name; }
      public int getWeight() { return weight; }
      

      }

      1. 繼承與多態:構建靈活的對象體系
        實驗四讓我深入理解了繼承與多態的價值。通過設計Animal抽象類和Elephant、Lion、Tiger等子類,我學會了如何將共性提取到父類中,而將特性保留在子類中。多態則讓我能夠以統一的方式處理不同類型的動物對象。

      // 實驗四中的繼承體系
      public abstract class Animal {
      protected String name;
      protected int weight;
      // 公共屬性和方法...
      }

      public class Lion extends Animal implements HasAggression {
      @Override
      public void cry() {
      System.out.println(name + " 獅子:怒吼一聲!");
      }
      }

      1. 抽象類與接口:契約式編程的實踐
        實驗四中的抽象類Electric和接口HasAggression讓我理解了"面向接口編程"的意義。抽象類Electric定義了電器類的基本結構和部分實現,而HasAggression接口則標記了具有攻擊性的動物。

      // 實驗四中的接口應用
      public interface HasAggression {
      int getAggression(); // 1表示有攻擊性,0表示無
      }

      public class Lion extends Animal implements HasAggression {
      @Override
      public int getAggression() {
      return 1;
      }
      }
      4. 集合框架:從數組到動態容器
      實驗三到實驗五展示了集合框架的強大能力。從實驗二中使用簡單數組存儲大象,到實驗四中使用ArrayList管理動物列表,再到實驗五中結合JavaFX控件展示集合數據,我深刻體會到了集合框架的靈活性。

      // 實驗四中電器類使用ArrayList管理動物
      public abstract class Electric {
      protected List animals = new ArrayList<>();

      public void addAnimal(Animal animal) {
          if (animals.size() >= capacity) return;
          animals.add(animal);
      }
      

      }

      5.** JavaFX:面向對象的GUI開發**
      實驗五是我第一次接觸JavaFX圖形編程,通過將實驗四的邏輯與圖形界面結合,我理解了事件驅動編程模型和MVC架構的基本思想。PathTransition動畫的實現尤其讓我印象深刻。

      // 實驗五中的動畫實現
      PathTransition transition = new PathTransition();
      transition.setNode(movingMarker);
      transition.setPath(path);
      transition.setDuration(Duration.seconds(distance/speed));
      transition.play();

      二, 采坑心得:從挫折中成長

      1. 類型轉換與接口實現
        在實驗四中,我最初對HasAggression接口的實現方式理解有誤,導致在判斷動物攻擊性時頻繁出現ClassCastException。通過反復調試,我學會了使用instanceof進行類型檢查的正確方式:

      // 錯誤的方式
      int aggression = ((HasAggression)animal).getAggression(); // 可能拋出ClassCastException

      // 正確的方式
      if (animal instanceof HasAggression) {
      int aggression = ((HasAggression)animal).getAggression();
      }

      1. 集合排序的困惑
        實驗四要求使用Collections.sort()進行多種排序,我最初混淆了Comparable和Comparator的用法。通過實踐,我理解了:

      Comparable:對象自身實現的默認排序規則

      Comparator:外部定義的可插拔排序策略

      // 實驗四中的兩種排序方式
      Collections.sort(animalList); // 使用Animal實現的Comparable
      Collections.sort(animalList, new AnimalOrderComparator()); // 使用Comparator
      JavaFX坐標系的誤解

      1. 實驗五中實現動物移動動畫時,我最初錯誤理解了局部坐標和場景坐標的關系,導致動物總是飛到錯誤位置。通過調試,我掌握了坐標轉換的正確方法:

      // 獲取精確的場景坐標
      Bounds sourceBounds = sourceMarker.localToScene(sourceMarker.getBoundsInLocal());
      double targetX = targetBounds.getMinX() - animalContainer.localToScene(0, 0).getX();

      三, 改進建議與課程總結

      1. 課程亮點
        (1)漸進式學習路徑:從基礎到高級的內容安排非常合理

      (2)理論與實踐結合:每個概念都有對應的實驗驗證

      (3)綜合性實驗設計:實驗五整合了前面所有知識點

      1. 改進建議
        (1)JavaFX前置知識:建議在實驗五前增加1-2個基礎GUI實驗

      (2)調試指導:可以提供更多常見錯誤的排查指南

      (3)代碼評審環節:增加同學間的代碼互評可能更有助于學習

      四, 個人收獲總結
      代碼之外,是成長的詩與遠方
      學習編程,最初或許只是為了完成作業、通過考試,但不知不覺中,它已經改變了我的思維方式。從實驗二的“大象裝冰箱”到實驗五的JavaFX動畫,我不僅學會了如何讓對象在內存中交互,更學會了如何讓邏輯在思維中流動。

      記得在實驗四調試排序算法時,深夜的屏幕前,我一遍遍修改compareTo()方法,直到Collections.sort()終于按照我期望的順序排列動物列表。那一刻的成就感,不亞于解開一道困擾已久的數學題。而在實驗五,當我第一次看到自己寫的小獅子從屏幕中央飛入冰箱,并在日志區留下“獅子已裝入”的記錄時,那種“讓代碼活起來”的驚喜,讓我真切地感受到編程的魔力。

      編程不僅是邏輯,更是創造。
      它像寫詩一樣,需要嚴謹的結構,也需要靈感的迸發。類與對象是詞匯,繼承與多態是修辭,而整個程序,就是一首由代碼寫成的詩。

      這門課讓我明白,真正的編程高手,不是記住了多少API,而是能用代碼優雅地描述世界。冰箱、大象、獅子、老虎,它們不僅僅是對象,而是我構建的一個小小世界。而Java的封裝、繼承、多態,就像是這個世界的物理法則,讓一切運行得井然有序。

      posted on 2025-06-22 19:41  高涵子林  閱讀(9)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 中文字幕乱码熟妇五十中出| 亚洲国产精品久久综合网| 国产精品一区 在线播放| 亚洲一区二区经典在线播放| 迁安市| 丝袜美腿亚洲综合第一页| 国产福利社区一区二区| 男女18禁啪啪无遮挡激烈网站| 国产中年熟女高潮大集合| 狠狠做五月深爱婷婷伊人| 日本少妇自慰免费完整版| 激情综合网激情激情五月天| 天津市| 国产三级黄色片在线观看| 好男人日本社区www| 国产一区二区三区精品久| 亚洲AV无码一区二区一二区色戒| 中日韩精品视频一区二区三区| 免费A级毛片无码A∨蜜芽试看 | 久久精品人人槡人妻人人玩av| 97视频精品全国免费观看| 国产国产人免费人成免费| 色噜噜狠狠成人综合| 区一区二区三区中文字幕| 亚洲av精彩一区二区| 国产不卡一区二区在线| 国产精品熟女一区二区三区| 日本一区二区三区免费播放视频站 | 亚洲国产长腿丝袜av天堂| 亚洲 日韩 国产 制服 在线| 日韩精品一区二区三区日韩| 亚洲国产午夜精品理论片| 黑人玩弄人妻中文在线| 亚洲男人精品青春的天堂| 欧美一区二区三区成人久久片| 精品国产一区av天美传媒| 亚洲精品成人久久av| L日韩欧美看国产日韩欧美| 国产精品乱子乱xxxx| 疯狂的欧美乱大交| 国产久久热这里只有精品|