日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象---类与对象

發(fā)布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象---类与对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 面向?qū)ο笏枷?/h1>

1.1 面向?qū)ο?/h2>

Java語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言,而面向?qū)ο笏枷胧且环N程序設(shè)計思想,以對象為基礎(chǔ)完成各種操作,強調(diào)的是對象。它是基于面向過程的。
這里的對象泛指現(xiàn)實中一切事物,每種事物都具備自己的屬性行為。面向?qū)ο笏枷刖褪窃谟嬎銠C(jī)程序設(shè)計過程中,參照現(xiàn)實中事物,將事物的屬性特征、行為特征抽象出來,描述成計算機(jī)事件的設(shè)計思想。

它區(qū)別于面向過程思想,強調(diào)的是通過調(diào)用對象的行為來實現(xiàn)功能,而不是自己一步一步的去操作實現(xiàn)。

2種編程思想的區(qū)別:

  • 面向過程:強調(diào)步驟。

  • 面向?qū)ο?#xff1a;強調(diào)對象。

洗衣服:

  • 面向過程:把衣服脫下來–>找一個盆–>放點洗衣粉–>加點水–>浸泡10分鐘–>揉一揉–>清洗衣服–>擰干–>晾起來
  • 面向?qū)ο?#xff1a;把衣服脫下來–>打開全自動洗衣機(jī)–>扔衣服–>按鈕–>晾起來

特點

面向?qū)ο笏枷胧且环N更符合我們思考習(xí)慣的思想,它可以將復(fù)雜的事情簡單化,并將我們從執(zhí)行者變成了指揮者。面向?qū)ο蟮恼Z言中,包含了三大基本特征,即封裝、繼承和多態(tài)。

1.2 類和對象

什么是類

  • :是一組相關(guān)屬性行為的集合??梢钥闯墒且活愂挛锏哪0?#xff0c;使用事物的屬性特征和行為特征來描述該類事物。

現(xiàn)實中,描述一類事物:

  • 屬性:就是該事物的狀態(tài)信息。
  • 行為:就是該事物能夠做什么。

什么是對象

  • 對象:是一類事物的具體體現(xiàn)。對象是類的一個實例(對象并不是找個女朋友),必然具備該類事物的屬性和行為。

現(xiàn)實中,一類事物的一個實例:一只小貓。

舉例:一只小貓。

? 屬性:tom、5kg、2 years、yellow。
? 行為:溜墻根走、蹦跶的跑、喵喵叫。

類與對象的關(guān)系

  • 類是對一類事物的描述,是抽象的。
  • 對象是一類事物的實例,是具體的
  • 類是對象的模板,對象是類的實體。

1.3 類的定義

事物與類的對比

現(xiàn)實世界的一類事物:

? 屬性:事物的狀態(tài)信息。
? 行為:事物能夠做什么。

Java中用class描述事物也是如此:

? 成員變量:對應(yīng)事物的屬性
成員方法:對應(yīng)事物的行為

類的定義格式

public class ClassName {//成員變量//成員方法 }
  • 定義類:就是定義類的成員,包括成員變量成員方法
  • 成員變量:和以前定義變量幾乎是一樣的。只不過位置發(fā)生了改變。在類中,方法外。
  • 成員方法:只不過把static去掉

類的定義格式舉例:

public class Student {//成員變量String name;//姓名int age;//年齡//成員方法//學(xué)習(xí)的方法publicvoid study() {System.out.println("好好學(xué)習(xí),天天向上");}//吃飯的方法publicvoid eat() {System.out.println("學(xué)習(xí)餓了要吃飯");} }

1.4 對象的使用

對象的使用格式

創(chuàng)建對象:

類名 對象名 = new 類名();

使用對象訪問類中的成員:

對象名.成員變量; 對象名.成員方法()

成員變量的默認(rèn)值

數(shù)據(jù)類型默認(rèn)值
基本類型整數(shù)(byte,short,int,long)0
浮點數(shù)(float,double)0.0
字符(char)‘\u0000’
布爾(boolean)false
引用類型數(shù)組,類,接口null

1.5 對象內(nèi)存圖

一個對象,調(diào)用一個方法內(nèi)存圖

通過上圖,在棧內(nèi)存中運行的方法,遵循"先進(jìn)后出,后進(jìn)先出"的原則。變量p指向堆內(nèi)存中的空間,尋找方法信息,去執(zhí)行該方法。

但是,這里依然有問題存在。創(chuàng)建多個對象時,如果每個對象內(nèi)部都保存一份方法信息,這就非常浪費內(nèi)存了,因為所有對象的方法信息都是一樣的。

兩個對象,調(diào)用同一方法內(nèi)存圖

對象調(diào)用方法時,根據(jù)對象中方法標(biāo)記(地址值),去類中尋找方法信息。這樣哪怕是多個對象,方法信息只保存一份,節(jié)約內(nèi)存空間。

一個引用,作為參數(shù)傳遞到方法中內(nèi)存圖

引用數(shù)據(jù)類型作為方法的參數(shù),傳遞的是地址 引用數(shù)據(jù)類型作為方法的返回值,返回的是地址

1.6 成員變量和局部變量區(qū)別

變量根據(jù)定義位置的不同,有不同的名字。如下圖所示:

  • 在類中的位置不同 重點
    • 成員變量:類中,方法外
    • 局部變量:方法中或者方法聲明上(形式參數(shù))
  • 作用范圍不一樣 重點
    • 成員變量:類中
    • 局部變量:方法中
  • 初始化值的不同 重點
    • 成員變量:有默認(rèn)值
    • 局部變量:沒有默認(rèn)值。必須先定義,賦值,最后使用
  • 在內(nèi)存中的位置不同 了解
    • 成員變量:堆內(nèi)存
    • 局部變量:棧內(nèi)存
  • 生命周期不同 了解
    • 成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失
    • 局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失

總結(jié)

以上是生活随笔為你收集整理的面向对象---类与对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。