java opp 是什么意思_Java面向对象学习
Java面向對象學習
面向對象思想
物以類聚,分類的思維模式,思考問題首先會解決問題需要哪些分類,然后對這些分類進行單獨思考。最后,才對某個分類下的細節進行面向過程的思索
面向對象適合處理復雜的問題,適合處理需要更多人協作的問題
對于描述復雜的事物,為了從宏觀上把握,從整體上合理分析,我們需要使用面對對象的思路來分析整個系統。但是,具體到微觀的操作,仍然需要面向過程的思路去分析
什么是面對對象
面向對象編程(Object-Oriented Programming,OOP)
面向對象編程的本質就是:以類的方式組織代碼,以對象的形式組織(封裝)數據
抽象
三大特性:
封裝
繼承
多態
從認識論角度考慮是先有對象后有類。對象,是具體的事物。類,是抽象的,是對對象的抽象
從代碼運行角度考慮是先有類后有對象。類是對象的模板
類與對象的關系
類是一種抽象的數據類型,它是對某一事物整體描述/定義,但是并不能代表某一個具體的事物
對象是抽象概念的具體實例
創建與初始化對象
使用new關鍵字創建對象
使用new關鍵字創建的時候,處理分配內存空間之外,還會給創建好的對象進行默認的初始化以及對類中構造器的調用
類中的構造器也稱為構造方法,是在進行創建對象的時候必須要調用的。并且構造器有以下兩個特點:
必須和類的名字相同
必須沒有返回類型,也不能寫void
封裝
我們程序設計要求“高內聚”,“內耦合”。高內聚就是內類的內部數據操作細節自己完成,不允許外部干涉;低耦合:僅暴露少量的方法給外部使用
封裝(數據的隱藏)
通常,應禁止直接訪問一個對象中數據的實際表示,而應通過操作接口來訪問,這稱為信息的隱藏
屬性私有,get/set
封裝的意義:
提高程序的安全性,保護數據
隱藏代碼的實現細節
統一接口
系統可維護性增加了
繼承
繼承的本質是對某一批類的抽象,從而實現對現實世界更好的建模
extends的意思是“擴展”。子類是父類的擴展
Java中類只有單繼承,沒有多繼承
繼承是類和類之間的一種關系。除此之外,類和類之間的關系還有依賴、組合、聚合等
繼承關系的兩個類,一個為子類(派生類),一個為父類(基類)。子類繼承父類,使用關鍵字extends來比表示
object類
Java中,所有類,都默認直接或間接繼承object類
super
調用父類中的屬性和方法
調用父類的構造器,必須要在子類構造器的的第一行
super必須只能出現在子類的方法和構造方法中
super和this不能同時調用構造方法
super和this的區別
代表的對象不同
this:本身調用者這個對象
代表父類對象的應用
前提:
this:沒有繼承也可以使用
super:只能在繼承條件才可以使用
構造方法:
this():本來的構造
super():父類的構造
方法重寫
需要有繼承關系,子類重寫父類的方法
方法名必須相同
參數列表必須相同
修飾符:范圍可以擴大:public>protected>default>private
拋出的異常:范圍可以被縮小,但不能被擴大
多態
即同一方法可以根據發送對象的不同而采用不同的行為方式
一個對象的實際類型是確定的,但可以指向對象的引用的類型有很多
多態存在的條件:
有繼承關系
子類重寫父類方法
父類引用指向子類對象
注意:多態是方法的多態,屬性沒有多態
instanceof 判斷兩個類型之間是否有父子關系
類型轉換注意:
父類引用指向子類的對象
把子類轉換為父類,向上轉型
把父類轉換為子類,向下轉型
方便方法調用,減少重復的代碼
Static
通過static關鍵字來定義靜態
靜態變量和靜態函數可以直接通過類名進行調用,非靜態只能通過對象進行調用
靜態代碼塊
package com.opp.demo01;
//學生類
public class Student extends Person {
//匿名代碼塊可以用于賦初始值
{
System.out.println("匿名代碼塊");
}
//只執行一次
static {
System.out.println("靜態代碼塊");
}
public Student(){
System.out.println("構造方法");
}
public static void main(String[] args) {
Student student = new Student();
System.out.println("==================");
Student student1 = new Student();
}
}
靜態代碼塊
匿名代碼塊
構造方法
==================
匿名代碼塊
構造方法
抽象類
abstract修飾符可以用來修飾方法也可以修飾類,如果休息方法,那么該方法就是抽象方法,如果修飾類,那么該類就是抽象類
抽象類中可以沒有抽象方法,但是有抽象方法的類一定要聲明為抽象類
抽象類不能使用new關鍵字來創建對象,它是用來讓子類繼承的
抽象方法,只有方法的聲明,沒有方法的實現,它是用來讓子類實現的
子類繼承抽象類,那么就必須要實現抽象類沒有實現的抽象方法,否則該子類也要聲明為抽象類
接口
普通類:只有具體實現
抽象類:具體實現和規范(抽象方法)都有
接口:只有規范! 約束和實現分離:面向接口編程
接口就是規范,定義的是一組規則,體現了現實世界中“如果你是...則必須是...”的思想
接口的本質是契約,就像法律一樣,定制好后大家都遵守
OO的精髓,是對對象的抽象,最能體現這一點的就是接口
內部類
內部類就是在一個類的內部再定義一個類
成員內部類
靜態內部類
局部內部類
匿名內部類
標簽:Java,對象,子類,繼承,學習,面向對象,抽象類,父類,方法
來源: https://www.cnblogs.com/wy-xllzb/p/14158857.html
總結
以上是生活随笔為你收集整理的java opp 是什么意思_Java面向对象学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 登录踢出_spring sec
- 下一篇: 找不到java.vbs_无法找到脚本*.