瘋狂java講義

封裝:

  • 封裝:將對象狀態信息隱藏在對象內部,不允許外部程序直接訪問對象內部信息,而是用類所提供的方法訪問和操作。
  • 訪問控制符:private(當前類訪問權) ,protected(子類訪問),public(公共訪問),default(包訪問)
  • set(),get()
  • 構造器重載,名字相同 ,形參不同。
  • 構造器中調用另一個構造器用this();必須出現在構造器第一行。
  • 方法重載:名字相同,形參不同。與返回值,修飾符無關。

繼承:

  • 繼承:每個子類只有一個直接父類,extends。
  • 默認繼承java.lang.Object,是所有類的父類。
  • 子類可以重寫父類方法。方法重寫。兩同兩小一大:方法名同,形參同,返回值小,異常小,子類訪問權限大。
  • 子類覆蓋后子類對象不可調用父類方法,但可在子類方法中調用,super(實例方法),父類類名(類方法)來調用。
  • 如果父類private,那方法對子類隱藏,子類無法調用,無法重寫。
  • super:也可用來訪問父類被覆蓋的實例變量。
  • 會為所有實例變量分配內存。(被覆蓋了也分配)
  • 子類也可以用super調用父類構造器。
  • 子類沒有super調用父類構造器,系統會在執行子類構造器之前調用父類構造器。
  • 父類構造器在子類構造器之前進行,還會上溯,最先執行的總是java.lang.Object構造器。

繼承注意點:子類可以訪問父類成員變量和方法,不安全

  • 盡量隱藏父類內部數據,private
  • 不讓子類隨便訪問,修改父類方法,不能訪問private.如果希望訪問不讓重寫,用final public,可以被子類重寫不能被外部訪問用protected.
  • 盡量不在父類構造器中調用被子類重寫的方法。

多態:編譯時類型和運行時類型不同,相同類型的變量調用同一個方法呈現多種不同行為特征。

  • 編譯時類型:聲明該變量時的類型。
  • 運行時類型:實際賦給該變量的對象。
  • 子類對象賦給父類引用變量——向上轉型,系統自動完成。
  • 父類對象賦給子類引用變量——強制類型轉換,instanceof判斷更安全,否則ClassCastException
  • 最終類不能被繼承:1.用final修飾類,2.用private修飾類的所有構造器,子類無法調用,就無法繼承。
  • 組合復用。

初始化塊:

  • 可有修飾符static。初始化塊按順序進行。
  • 創建對象時,先調用類里的初始化塊再執行構造器。
  • 初始化塊是構造器補充,在構造器前執行。
  • 但是不能接受任何參數,對所有對象初始化相同。

?

?

  • ==和equals:引用變量用==時,只有他們指向同一個對象才true。==兩邊沒有父子關系的兩個對象會編譯錯誤。
  • “hello”直接量存在常量池,new String ("hello")Jvm會用常量池保存"hello",在調用String類構造器創建一個新對象,保存在堆內存中。所以不相等。
  • 值相等用str1.equals(str2);

?

?

  • 類成員,類方法,即使實例是Null也可以訪問類成員,null訪問實例成員會引發NullPointerException。
  • 靜態初始化塊也是類成員,類初始化時調用,之后不再執行,
  • 類成員不能訪問實例變量。

?

  • 單例類:一個類只能創建一個實例。構造器private。提供一個public 方法作為訪問點,用于創建對象,且是public static.且類還必須緩存已經創建的對象。用一個成員變量來保存曾創建的對象,要被靜態方法訪問,必須也static.
  • 只能創建一個對象,再多引用所指的都相等。
  • final:
  • 修飾變量,該變量一旦有初始值就不可改變,final修飾的成員變量必須顯示指定初始值,系統不會對final成員隱形初始化,final修飾局部變量,修飾形參
  • final修飾引用變量,final保證指向的對象不變,但對象內容可以改變。
  • final修飾變量,宏定義,定義final時就為變量指定初始值,在編譯時確定,final變量實際是宏變量。
  • 修飾方法,不可被子類重寫。但可以被類內重載
  • 修飾類:不可以有子類,不可被繼承、

?

  • 不可變類:創建該類實例后,該實例實例變量不可改變。
  • 規則:1.用private和final修飾該類成員變量? ?2.提供帶參數構造器,傳入參數來初始化。? 3.只為該類成員提供getter().不能setter()

?抽象:

  • 抽象方法,抽象類:abstract。
  • 抽象方法不能有方法體,抽象類不能被實例化,不能new.這個類只能被繼承。
  • 抽象方法沒有方法體,必須被子類重寫。
  • final與abstract不能同時用。static和abstract也不能同時修飾同個方法。
  • 抽象類只定義某些方法,把不能實現的部分抽象成抽象方法,留給子類實現。

?

轉載于:https://www.cnblogs.com/Aozorazy/p/10444636.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278258.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278258.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

將背景色添加到Word 2007文檔中

Instead of using the standard white background with Word documents, here is how to add some background color to spice up your documents. 代替在Word文檔中使用標準的白色背景,這是如何添加一些背景顏色來為文檔增添色彩。 Open your word document and ch…

jquery實現增刪改(偽)-老男孩作業day13

使用jquery進行&#xff0c;文件的編寫&#xff0c;實現自增id,刪除&#xff0c;添加&#xff0c;編輯模式。 jquery放在本地&#xff0c;src"jquery_js.js" 可以改成其他&#xff0c;或者在線的路徑 readme<!DOCTYPE html> <html lang"en"> &…

uoj#119. 【UR #8】決戰圓錐曲線(線段樹+復雜度分析)

題解 傳送門 題解 然而要我來說我感覺只是個爆搜啊…… //minamoto #include<bits/stdc.h> #define R register #define ll long long #define ls (p<<1) #define rs (p<<1|1) #define fp(i,a,b) for(R int ia,Ib1;i<I;i) #define fd(i,a,b) for(R int ia…

如何在Raspberry Pi上設置兩因素身份驗證

Kiklas/ShutterstockKiklas /快門The Raspberry Pi is everywhere now, which is why it’s caught the eye of threat actors and cybercriminals. We’ll show you how to secure your Pi with two-factor authentication. Raspberry Pi現在無處不在&#xff0c;這就是為什么…

Laravel Passport里的授權類型介紹

本文來自pilishen.com----原文鏈接; 歡迎來和pilishen一起學習php&Laravel&#xff1b;學習群&#xff1a;109256050OAuth2是一個安全框架&#xff0c;控制著程序受保護部分的準入&#xff0c;主要是控制不同的客戶端如何來調取API&#xff0c;保證它們在請求相應資源的時候…

vue 開發環境搭建

1.創建vue項目 1.node js 生成項目&#xff0c;編譯項目 2.hbuilder 開發環境 1.下載安裝node js http://nodejs.cn/download/ 確認是否安裝成功 如果安裝不了 代碼錯誤2503 解決方法&#xff1a; 管理員命令運行cmd; cd\ cd C:\Users\Administrator\Desktop msiexec/package n…

iphone視圖放大_如何將iPhone用作放大鏡

iphone視圖放大It’s a common problem: Some things are just too hard to see. Usually, they’re too far away, too dark, or too small. With a feature called Magnifier, your iPhone can function as a magnifying glass and sight aid. Here’s how to use it. 這是一…

chmod權限

本文引用:https://www.cnblogs.com/zhangym/p/5826200.html linux數字權限解釋 644 第一位代表文件所有者的權限,第二位代表同組用戶的權限&#xff0c;第三位代表其他用戶的權限. 讀取權限等于4,用r表示;寫入權限2,用w表示;執行權限1,用x表示. 通過4、2、1組合,得到以下幾種權…

輸出最大值MXNet實現

網絡結構&#xff0c;輸入為2個數&#xff0c;先經過10個節點的全連接層&#xff0c;再經過10個節點的ReLu&#xff0c;再經過10個節點的全連接層&#xff0c;再經過1個節點的全連接層&#xff0c;最后輸出。 #-*-coding:utf-8-*- import logging import math import random im…

discord linux_如何在Discord中應用文本格式

discord linuxDiscord allows for text-and audio-based chatting between gamers and other like-minded individuals. If you want to make a bigger impact on Discord, you can use formatting to jazz up your text-based messages. Here’s how. Discord允許游戲玩家和其…

一張圖看懂阿里云網絡產品[十二]云企業網

2019獨角獸企業重金招聘Python工程師標準>>> 摘要&#xff1a; 阿里云致力于為用戶提供優質、高效、穩定的網絡傳輸環境&#xff0c;云企業網&#xff08;Cloud Enterprise Network&#xff09;將提供一種能夠快速構建混合云和分布式業務系統的全球網絡&#xff0c;…

# 2019-2020.3 《java程序設計》第一周學習總結

2019-2020-3 《Java 程序設計》第一周學習總結 在本周的學習中&#xff0c;學習到了好多也收獲了好多&#xff0c;從最基礎的安裝虛擬機開始&#xff0c;根據老師的博客中的教程一步一步的進行&#xff0c;在這過程中也遇到了好多問題&#xff0c;因為是初步接觸Linux系統&…

聊聊Java反射

反射是Java最重要的特性。通過Java反射可以在運行時知道一個類的所有成員和方法&#xff0c;知道一個對象的類類型、成員和方法的所有信息&#xff0c;進而調用對象的方法或生成對象的代理或包裝類。Java是面向對象語言&#xff0c;除了靜態變量或原始數據類型外都是完全面向對…

01. 把存儲過程結果集SELECT INTO到臨時表

原文:01. 把存儲過程結果集SELECT INTO到臨時表在開發過程中&#xff0c;很多時候要把結果集存放到臨時表中&#xff0c;常用的方法有兩種。 一. SELECT INTO 1. 使用select into會自動生成臨時表&#xff0c;不需要事先創建 select * into #temp from sysobjects select * fro…

day5學python 基礎+裝飾器內容

基礎裝飾器內容 遞歸特性# 1.必須有一個明確的結束條件# 2.每次進入更深一層遞歸時&#xff0c;問題規模相比上次遞歸應有所減少# 3.遞歸效率不高 def run(n):print(n)if int(n/2)>0:return run(n / 2)print("-->",n) run(10) 局部變量與全局變量知識 1.全局變…

如何在Windows 10上跳過回收站以刪除文件

Windows 10 normally sends files you delete to the Recycle Bin. They’ll be kept until you empty it—or, in some cases, until Windows 10 automatically empties your Recycle Bin. Here’s how to skip the Recycle Bin and delete files immediately. Windows 10通常…

OSChina 周日亂彈 —— 我叫張一條

2019獨角獸企業重金招聘Python工程師標準>>> Osc亂彈歌單&#xff08;2018&#xff09;請戳&#xff08;這里&#xff09; 【今日歌曲】 萊布妮子 &#xff1a;分享Lube的單曲《Skoro dembel》 《Skoro dembel》- Lube 手機黨少年們想聽歌&#xff0c;請使勁兒戳&am…

面向對象初識

一. 面向對象初識 1.1 回顧面向過程編程vs函數式編程 # 面向過程編程 測量對象的元素個個數。 s1 fjdsklafsjda count 0 for i in s1:count 1l1 [1,2,3,4] count 0 for i in l1:count 1 面向過程編程def func(s):count 0for i in s:count 1return count …

iOS逆向:在任意app上開啟malloc stack追蹤內存來源

lldb有一個內存調試工具malloc stack&#xff0c;開啟以后就可以查看某個內存地址的malloc和free記錄&#xff0c;追蹤對象是在哪里創建的。 這個工具可以打印出對象創建的堆棧&#xff0c;而在逆向時&#xff0c;也經常需要追蹤某些方法的調用棧&#xff0c;如果可以隨時打印出…

【CH4302】Interval GCD

思路&#xff1a;線段樹維護a的差分數組的gcd&#xff0c; 因為$gcd(a_1,a_2,a_3,...,a_n)gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。 原區間修改可以轉化為差分數組上的兩次單點修改。 因為實際計算時還需要原數&#xff0c;所以用樹狀數組維護b的增減量。 詢問時&#xff…