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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

对象属性的调用_面向对象的三主线之一:Java类及类的成员(1)

發(fā)布時(shí)間:2025/3/20 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对象属性的调用_面向对象的三主线之一:Java类及类的成员(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

01

屬性

屬性的賦值過程

①默認(rèn)初始化值

②顯式初始化

②在代碼塊中賦值

③構(gòu)造器中初始化

④通過“對象.方法”或“對象.屬性"方法賦值

注:顯式初始化和代碼塊中賦值的先后取決于其順序

this.屬性

“this.屬性”表示調(diào)用當(dāng)前對象的屬性。通常情況下省略“this”,只有在特殊情況下才會顯式使用。

>>方法的形參和屬性同名時(shí)

super.屬性

“super.屬性”表示調(diào)用當(dāng)前父類中聲明的屬性。通常情況下省略“super”,只有在特殊情況下才會顯式使用。

>>子父類定義同名的屬性,想在子類中調(diào)用父類中聲明的屬性時(shí)。

屬性繼承

當(dāng)子類繼承父類后,子類就獲得了父類中聲明的屬性包括聲明為private的屬性,只是因?yàn)榉庋b性的影響,使得子類不能直接調(diào)用父類的私有屬性。

創(chuàng)建子類對象,就會在堆空間中加載所有父類中聲明的屬性。

多態(tài)性不適用于屬性

多態(tài)性只適用于方法,不適用于屬性,是因?yàn)樵诙鄳B(tài)中,屬性的編譯運(yùn)行都看左邊。

static修飾屬性

實(shí)例變量 VS 靜態(tài)變量

實(shí)例變量:每個對象都擁有一套類中的非靜態(tài)屬性,當(dāng)修改其中一個對象的非靜態(tài)屬性時(shí),不會導(dǎo)致其他對象中該屬性的值發(fā)生變化。

靜態(tài)變量:多個對象共享一個靜態(tài)變量,當(dāng)通過某一個對象修改講臺變量時(shí),會導(dǎo)致其他對象調(diào)用此靜態(tài)變量時(shí)是修改后的。

靜態(tài)屬性的說明

靜態(tài)變量是隨著類的加載而加載的,早于對象的創(chuàng)建。

由于類只會加載一次,靜態(tài)變量在內(nèi)存中也只會存在一份,存在于方法區(qū)的靜態(tài)域中。

靜態(tài)變量可以通過“類.屬性”和“對象.屬性”調(diào)用,實(shí)例變量僅可以通過“對象.屬性”調(diào)用。

final屬性

final修飾屬性,可以考慮的位置:

>顯式初始化

每個對象值一樣時(shí)使用

>代碼塊中初始化

通常調(diào)用方法可能拋出異常時(shí)用

>構(gòu)造器中初始化

每個構(gòu)造器都得賦值,每個對象值都不同

static final 修飾屬性

該屬性即為全局變量,在類中始終不變的一個常量。

內(nèi)部類和屬性

>內(nèi)部類調(diào)用外部類屬性:“外部類.this.屬性”

>內(nèi)部類中可以定義屬性

>“this.屬性”指的是內(nèi)部類的屬性

代碼展示一

class?Base?{
????int?count?=?10;

????public?void?display()?{
????????System.out.println(this.count);
????}
}

class?Sub?extends?Base?{
????int?count?=?20;

????public?void?display()?{
????????System.out.println(this.count);
????}
}

public?class?FieldMethodTest?{
????public?static?void?main(String[]?args)?{
????????Sub?s?=?new?Sub();
????????System.out.println(s.count);//20
????????s.display();//20
????????Base?b?=?s;//多態(tài)性
????????System.out.println(b?==?s);//true
????????System.out.println(b.count);//10
????????b.display();//20
????}
}

代碼展示二

public?class?CircleTest?{
????public?static?void?main(String[]?args)?{
????????Circle?c1?=?new?Circle();
????????Circle?c2?=?new?Circle();
????????Circle?c3?=?new?Circle(3.4);
????????System.out.println("c1的id:"?+?c1.getId());
????????System.out.println("c2的id:"?+?c2.getId());
????????System.out.println("c3的id:"?+?c3.getId());
????????System.out.println("創(chuàng)建的圓的個數(shù)為:"?+?Circle.getTotal());
????}
}

class?Circle?{

????private?double?radius;
????private?int?id;//?自動賦值

????public?Circle()?{
????????id?=?init++;
????????total++;
????}

????public?Circle(double?radius)?{
????????this();
????????this.radius?=?radius;

????}

????private?static?int?total;//?記錄創(chuàng)建的圓的個數(shù)
????private?static?int?init?=?1001;//?static聲明的屬性被所有對象所共享

????public?double?findArea()?{
????????return?3.14?*?radius?*?radius;
????}

????public?double?getRadius()?{
????????return?radius;
????}

????public?void?setRadius(double?radius)?{
????????this.radius?=?radius;
????}

????public?int?getId()?{
????????return?id;
????}

????public?static?int?getTotal()?{
????????return?total;
????}
}

總結(jié)

以上是生活随笔為你收集整理的对象属性的调用_面向对象的三主线之一:Java类及类的成员(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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