不正經的面向對象

来源:https://www.cnblogs.com/yangchaojie/archive/2017/12/27/8120966.html
-Advertisement-
Play Games

在剛開始學JAVA經常會被一些聽上去高大上的術語所迷惑,比如:OOP,封裝,繼承,多態。 這些都是基於對象操作的,而理解了對象,對這三大特性就會好理解許多。 經常會聽說一些人說什麼:"萬物皆對象"。 這話沒錯,世界上所有存在的不存在的事物都可以是對象,你就是上帝的上帝。 我在初學JAVA時也對面向對 ...


   在剛開始學JAVA經常會被一些聽上去高大上的術語所迷惑,比如:OOP,封裝,繼承,多態。

   這些都是基於對象操作的,而理解了對象,對這三大特性就會好理解許多。

   經常會聽說一些人說什麼:"萬物皆對象"。

   這話沒錯,世界上所有存在的不存在的事物都可以是對象,你就是上帝的上帝。

   我在初學JAVA時也對面向對象迷糊過,隨著寫的對象越來越多,就慢慢理解的深刻了一些,所以你可以多寫寫對象。

   

   比如我想要個女朋友,那麼現在開始發揮你的想象力:你理想的女朋友是什麼樣子的?

   我估計是:膚白貌美大長腿。

   恩,然後她的年齡?性別(?)?身份證號,住址?

   並不是說必須要定義這些,如果你需要話,請不要節省代碼。

   比如我可以這樣寫:

    

 

 

 

  或者這樣:

 

  現在來簡單使用一下:沒有對象怎麼辦!?    new一個出來!

    

 

 看已經出來了,只是你並不能對你的女朋友進行任何操作。

 當然還是有一些方法可以使用,這裡就要提一下Object這個不可描述的對象了,它是所有對象的爸爸,是超類,所有類預設繼承它,因此現有的方法就是自帶的,就是人生下來就會睡覺一樣,天生的。

 先不談這個,有沒有覺得有什麼不對的地方?

  

   

  作為直男癌患者當然不能忍受這一點!

  那如果這樣呢?

  

  

  編譯無法通過!

  因為這樣寫這個類就無法被訪問,也就是說這個類毫無用處。

  打個比方就是你的女朋友還是個胚胎,或者是你把你的女朋友鎖在了一個屋子裡永遠放不出來。

  這樣當然不行,接下來就需要封裝

  你的女朋友屬於你,但她也要生活,也要外出。

  

  這樣就對了!

  別人可以看到你的女朋友,但不能看到她的個人信息,這樣很安全!

  當然有一種技術叫做反射,是JAVA的高級特性,如果有人可以訪問你的私有女朋友,那麼他一定會反射技術。

  現在還少點什麼,只定義了屬性,但我要如何進行操作呢?

  那麼接下來就是Get,Set方法乾的事了。

  如果你有Eclipse,右鍵選擇source,選擇create Getters and setters 快速創建GetSet方法,如圖:

  

  

  OK,接下來就可以進行操作了,她是你的了!

  

  

  

  但這樣有點乏味,"她"能幹什麼?這就是方法。

  

  //先到這,睡覺了。


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

-Advertisement-
Play Games
更多相關文章
  • 零基礎HTML及CSS編程(一) 導航鏈接四 導航鏈接三 導航鏈接二 導航鏈接一 網站一級標... ...
  • react使用redux做狀態管理,實現多個組件之間的信息共用,解決了父子組件、兄弟組件之間的複雜通信問題。vue有vuex,總之是一種flux的思想。react提供了react redux這個庫,一看名字就知道是為了將react和redux關聯起來,react redux有connect高階函數以 ...
  • 對於webpack的loader相關主題的核心知識進行闡述整理 ...
  • 一、區別 window.onload是在DOM樹載入完成之後(DOM樹載入完不代表全部資源載入完,例如圖片,音頻和視頻等還沒載入)執行的。 在Jquery中$(function(){ })和$(document).ready(function(){ })的效果是一樣,是在DOM樹載入完成之後就會執行 ...
  • AngularJS集合數據遍歷顯示 ...
  • 1 2 3 4 5 AngularJS雙向數據綁定 6 7 8 9 10 11 12 13 14 15 16 hello,{{n... ...
  • AngularJS基於MVC的複雜操作案例 ...
  • 數據圖形化控制項(PC):echarts複製到剪切板控制項(PC):ZeroClipboard、clipboard.js日曆插件(PC):datePicker上傳文件插件(PC):Uploadify、localresizeimg、消息提醒插件(PC):messager圖片分屏載入(PC/MOBILE): ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...