從零自學Java-10.充分利用現有對象

来源:https://www.cnblogs.com/redlogic/archive/2018/03/22/8626218.html
-Advertisement-
Play Games

1.超類和子類的設計;2.建立繼承層次;3.覆蓋方法。 程式StringLister:使用數組列表和特殊的for迴圈將一系列字元串按字母順序顯示到屏幕上。這些字元串來自一個數組和命令行參數 1 package com.jsample; 2 3 import java.util.*; 4 5 publ ...


1.超類和子類的設計;
2.建立繼承層次;
3.覆蓋方法。

程式StringLister:使用數組列表和特殊的for迴圈將一系列字元串按字母順序顯示到屏幕上。這些字元串來自一個數組和命令行參數

 1 package com.jsample;
 2 
 3 import java.util.*;
 4 
 5 public class StringLister {
 6     String[] names = { "Spanky", "Buckwheat", "Daria",
 7         "Stymie", "Marianne", "Scotty", "Tommy", "Chubby" };
 8 
 9     public StringLister(String[] moreNames){
10         Vector<String> list = new Vector<String>();
11         for (int i = 0; i < moreNames.length; i++){
12             list.add(moreNames[i]);
13         }
14         Collections.sort(list);
15         for (String name : list){
16             System.out.println(name);
17         }
18     }
19 
20     public static void main(String[] args){
21         StringLister lister = new StringLister(args);
22     }
23 }
View Code

 

輸出:

Buckwheat
Chubby
Daria
Marianne
Scotty
Spanky
Stymie
Tommy

 

程式PointTester:使用Point,Point3D,Point4D對象的程式,併在屏幕上移動它們。

 1 package com.jsample;
 2 
 3 import java.awt.*;
 4 
 5 public class PointTester {
 6     public static void main(String[] args){
 7         Point objcet1 = new Point(11,22);
 8         Point3D object2 = new Point3D(7,6,64);
 9         Point4D object3 = new Point4D(12,56,73,90);
10 
11         System.out.println("The 2D point is located at (" + objcet1.x
12                 + ", " + objcet1.y + ")");
13         System.out.println("\tIt's being moved to (4,13)");
14         objcet1.move(4,13);
15         System.out.println("The 2D point is now at (" + objcet1.x
16             + ", " + objcet1.y + ")");
17         System.out.println("\tIt's being moved -10 units on the x "
18             + "and y axes");
19         objcet1.translate(-10,-10);
20         System.out.println("The 2D point ends up at (" + objcet1.x
21             + ", " + objcet1.y + ")\n");
22 
23         System.out.println("The 3D point is located at (" + object2.x
24             + ", " + object2.y + ", " + object2.z + ")");
25         System.out.println("\tIt's being moved to (10, 22, 71)");
26         object2.move(10,22,71);
27         System.out.println("The 3D point is now at (" + object2.x
28             + ", " + object2.y + ", " + object2.z +")");
29         System.out.println("\tIt's being moved -20 units on the x,y "
30             + "and z axes");
31         object2.move(-20,-20,-20);
32         System.out.println("The 3D point ends up at (" + object2.x
33             + ", " + object2.y + ", " + object2.z + ")\n");
34 
35         System.out.println("The 4D point is located at (" + object3.x
36                 + ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
37         System.out.println("\tIt's being moved to (9, 1, 7, 4)");
38         object3.move(9,1,7,4);
39         System.out.println("The 4D point is now at (" + object3.x
40                 + ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
41         System.out.println("\tIt's being moved 20 units on the x,y "
42                 + "and z axes");
43         object3.move(20,20,20,20);
44         System.out.println("The 4D point ends up at (" + object3.x
45                 + ", " + object3.y + ", " + object3.z + ", " + object3.t + ")");
46     }
47 }
View Code

 

下屬class:

Point——java.awt.*中自帶。

Point3D:記錄對象三維坐標,將對象移到新坐標處,將三個坐標各移動特定距離。

 1 package com.jsample;
 2 
 3 import java.awt.*;
 4 
 5 public class Point3D extends Point{
 6     public int z;
 7 
 8     public Point3D(int x, int y, int z){
 9         super(x,y);
10         this.z=z;
11     }
12 
13     public void move(int x, int y, int z){
14         this.z += z;
15         super.translate(x,y);
16     }
17 }
View Code

 

Point4D:記錄對象四維坐標,將對象移到新坐標處,將四個坐標各移動特定距離。

 1 package com.jsample;
 2 
 3 public class Point4D extends Point3D{
 4     public int t;
 5 
 6     public Point4D(int x, int y, int z, int t){
 7         super(x,y,z);
 8         if (t < 0)
 9             return;
10         this.t = t;
11     }
12 
13     public void move(int x, int y, int z, int t){
14         this.z += z;
15         this.t += t;
16         super.translate(x,y);
17     }
18 }
View Code

輸出:

The 2D point is located at (11, 22)
 It's being moved to (4,13)
The 2D point is now at (4, 13)
 It's being moved -10 units on the x and y axes
The 2D point ends up at (-6, 3)

The 3D point is located at (7, 6, 64)
 It's being moved to (10, 22, 71)
The 3D point is now at (17, 28, 135)
 It's being moved -20 units on the x,y and z axes
The 3D point ends up at (-3, 8, 115)

The 4D point is located at (12, 56, 73, 90)
 It's being moved to (9, 1, 7, 4)
The 4D point is now at (21, 57, 80, 94)
 It's being moved 20 units on the x,y and z axes
The 4D point ends up at (41, 77, 100, 114)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Jar包使用,及層的劃分 c3p0-config.xml JDBCUtils dao Service client ...
  • 匹配電話號碼: 把正則表達式,編程成一個對象,可以提高匹配效率 可以通過編譯成對象,傳參(re.I),把匹配方式改成忽略大小 match,匹配到的字元是否在 被匹配字元串的開頭,如果是,返回一個對象. search:存在就返回對象 finditer返回一個迭代器,findall返回的是列表 grou ...
  • 需要導入的hibernate的包 其中所需要的依賴包 需要的配置文件 一個是元數據orm的配置文件 例如 當前一個Customer對象 需要建立他相應的xml文件 接下啦是hibernate的主配置文件最重要的該文件的文件名字必須是hibernate.cfg.xml,同時在src的目錄 代碼的增刪改 ...
  • 窗函數(window function)經常用在頻域信號分析中。我其實不咋個懂,大概是從無限長的信號中截一段出來,然後把這一段做延拓變成一個虛擬的無限長的信號。用來截取的函數就叫窗函數,窗函數又分很多種,什麼矩形窗、三角窗、高斯窗。 在scipy.signal中有各種我不懂的實現窗函數的方法。瀏覽了 ...
  • 過濾器 過濾器是處於客戶端與伺服器資源文件之間的一道過濾網,在訪問資源文件之前,通過一系列的過濾器對請求進行修改、判斷等,把不符合規則的請求在中途攔截或修改。也可以對響應進行過濾,攔截或修改響應。 如下圖,瀏覽器發出的請求先遞交給第一個filter進行過濾,符合規則則放行,遞交給filter鏈中的下 ...
  • 我們都知道,java的gc是基於java的分代前提,不管是CMS還是G1,都是基於分代思想:老年代和新生代 思考一:為什麼可以分代? 1、java中對象的生命周期是不一樣的,在gc中對應年齡的概念。 短命的對象:如方法臨時變數等。 長命的對象:如緩存對象、連接池等。 2、長命對象和短命對象之間的引用 ...
  • Tornado 如何做文件下載 要求:瀏覽器輸入url地址,直接彈窗提示下載 Tornado服務端,搭建文件下載服務 瀏覽器驗證 輸入地址http://127.0.0.1:8888/?filename=meeting_welcome.wav: 補充:之前測試,一直在瀏覽器頁面顯示的是二進位字元串,後 ...
  • 問題: 開發web應用的過程中,我們通常會有文件上傳的需求,一般由客戶端上傳到伺服器上的文件不會被保存到資料庫中(這樣會產生一定的安全性問題),而是將上傳的文件保存到伺服器上的一個特定的目錄中.如果單單將所有的文件都保存到一個目錄中,也會產生一些問題,當網站訪問量很大,上傳文件很多時,伺服器上保存文 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...