惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Security Latest
Security Latest
P
Palo Alto Networks Blog
AWS News Blog
AWS News Blog
NISL@THU
NISL@THU
T
Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
J
Java Code Geeks
P
Privacy International News Feed
阮一峰的网络日志
阮一峰的网络日志
S
Schneier on Security
博客园 - 聂微东
Project Zero
Project Zero
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Scott Helme
Scott Helme
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hacker News: Front Page
S
Security @ Cisco Blogs
博客园 - 司徒正美
O
OpenAI News
Last Week in AI
Last Week in AI
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
SecWiki News
SecWiki News
月光博客
月光博客
S
Security Affairs
The GitHub Blog
The GitHub Blog
P
Privacy & Cybersecurity Law Blog
S
Secure Thoughts
V
V2EX
S
Securelist
F
Fortinet All Blogs
W
WeLiveSecurity
D
Docker
博客园 - 三生石上(FineUI控件)
Simon Willison's Weblog
Simon Willison's Weblog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Engineering at Meta
Engineering at Meta

CrazyWong

CrazyWong AI LOGO 🎧 Anson Seabra - Keep Your Head Up Princess 是的,我又更換了域名 1.5 萬字 CSS 基礎拾遺(核心知識、常見需求) JavaScript - 日期 Date JavaScript - 數組 Array 域名更換 前端 JavaScript 自測清單 2 前端 JavaScript 自測清單 1 通過travis-ci或者GitHub Actions自動化部署GitHub Pages和Coding Pages 添加Windows Terminal到鼠標右鍵菜單 調研實現高性能動畫 在瀏覽器輸入 URL 回車之後發生了什麼(超詳細版) hexo-theme-butterfly 安裝文檔(一)快速開始 設置Windows電腦自動關機 Windows必裝軟件推薦 關於字符編碼,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…) 好用的新浪圖床工具推薦 - Weibo-Picture-Store Java知識點複習(一) Visual Studio Code 插件推薦-VSC Netease Music 重裝系統後重新部署恢復 Hexo blog Windows上Java的環境變量配置 Adapter 9Patch 介紹 第一行代碼筆記-RecyclerView 為Blog添加版權説明 第一行代碼筆記-ListView 第一行代碼筆記-創建自定義控件 第一行代碼筆記-四大Layout Hexo和Next主題的相關設置(持續更新) 第一行代碼筆記-bulid.gradle 解析 第一行代碼筆記-Android Studio工程目錄結構介紹 第一行代碼筆記-工具日志log
Java知識點複習(二)
MYW · 2019-04-10 · via CrazyWong

發表於|Java

|總字數:719|閱讀時間:2分鐘|瀏覽量:

面向對象程序設計(OOP)

面向對象的程序由對象組成的,每個對象包含對用户公開的特定功能部分和隱藏的實現部分。
oop將數據擺在第一位,然後考慮操作數據的算法。

對象

要使用OOP,要瞭解對象的三個主要特性:

  • 對象的行為(behavior) ———— 可以對對象施加哪些操作,或可以對對象施加哪些方法?
  • 對象的狀態(state) ———— 當施加那些方法時,對象如何響應?
  • 對象標識(identity) ———— 如何辨別具有相同行為與狀態的不同對象?

類之間的關係

  • 依賴(“uses-a”)
    如果一個類的方法操作另一個類的對象,我們就説一個類依賴另一個類

  • 聚合(“has-a”)
    聚合意味著類A的對象包含類B的對象

  • 繼承(“is-a”)
    類A擴展類B,類A不但包含從類B繼承的方法,還會擁有一些額外的功能

使用預定義類

對象與對象變量

要想使用對象,就必須首先構造對象,並指定其初始狀態。然後,對對象應用方法。
構造器(constructor)用來構造新實例。構造器是一種特殊的方法,用來構造並初始化對象。

構造器的名字應與類名相同。
以Date類為例,Date類的構造器名為Date。構造一個Date對象,需要在構造器前面加上new操作符。
new Date()
這個表達式構造一個新對象,這個對象被初始化啊為當前的日期和時間。
為了讓構造的對象能多次使用,將對象存放在一個變量
Date birthday = new Date()

下圖顯示了引用新構造的對象變量birthday

創建一個新對象

在對象與對象變量之間存在一個重要的區別。例如
Date deadline //deadline doesn’t refer to any object
定義了一個對象變量deadline,它可以引用Date類型的對象。
但是,變量deadline不是一個對象,實際上也沒有引用對象。

必須初始化變量deadline,有兩個選擇。一是用新構造的對象初始化這個變量
deadline = new Date()
二是讓這個變量引用一個已存在的對象:
deadline = birthday
現在兩個變量引用同一個對象

引用同一個對象的對象變量

一個對象變量並沒有實際包含一個對象,而僅僅引用一個對象。
在Java中,任何對象變量的值都是對存儲在另外一個地方的一個對象的引用

Date deadline = new Date()
表達式new Date()構造了一個Date類型的對象,並且它的值是對新創建對象的引用。這個引用存儲在變量deadline中。

可以將對象變量設為null,表明這個對象變量目前沒有引用任何對象。
deadline = null;

版權聲明: 本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 CrazyWong