日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java創建子類對象設置并調用父類的變量操作

瀏覽:26日期:2022-08-18 14:14:13

通過子類調用父類的變量,有兩種方法:

1、把父類的變量設置成public:

package triangle.opengl.wlz.stu.childusefathervariable; import android.util.Log; public class BasePublicVariable { private String TAG = getClass().getName(); public int data; public void ptData(){ Log.d(TAG, 'ptData: ' + data); }}

當我們這樣做時,需要時直接在對象中設置這個變量的值就可以了,子類不需要任何處理:

package triangle.opengl.wlz.stu.childusefathervariable; import triangle.opengl.wlz.stu.childusefathervariable.BasePublicVariable; public class ChildPublicVariable extends BasePublicVariable { }2、通過構造方法透傳:

package triangle.opengl.wlz.stu.childusefathervariable; import android.util.Log; public class BaseVariableInConstructed { private String TAG = getClass().getName(); private int data; public BaseVariableInConstructed(int data){ this.data = data; } public void ptData(){ Log.d(TAG, 'ptData: ' + data); }}

這時,子類可以使用super方法,調用父類的構造方法:

package triangle.opengl.wlz.stu.childusefathervariable; import android.util.Log; public class ChildVaralbleInConstructed extends BaseVariableInConstructed { public ChildVaralbleInConstructed(int data) { super(data); }}

最終的使用方式:

package triangle.opengl.wlz.stu.childusefathervariable; import android.support.v7.app.AppCompatActivity;import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test(); } private void test(){ ChildVaralbleInConstructed base = new ChildVaralbleInConstructed(100); base.ptData(); ChildPublicVariable base2 = new ChildPublicVariable(); base2.data = 10; base2.ptData(); }}

補充:Java子類訪問父類私有變量的思考

示例如下:

父類User,包含私有變量name和money;

以及兩個構造函數和基本的getter方法。

public class User { public User() { } public User(String name, int money) { this.name = name; this.money = money; } public String getName() { return name; } public int getMoney() { return money; }}

子類Manager繼承User

public class Manager extends User { public Manager() { } public Manager(String name, int money) { super(name, money); } private String name; private int money; public void show(){ System.out.println('我是'+this.name+',我有'+this.money+'元錢'); System.out.println('我是'+this.getName()+',我有'+this.getMoney()+'元錢'); System.out.println('我是'+super.getName()+',我有'+super.getMoney()+'元錢'); }}

主類ClassDemo新建一個Manager對象,并調用其show()函數。

public class ClassDemo { public static void main(String[] args) { Manager m=new Manager('q',1); m.show(); }}

結果如下

我是null,我有0元錢---1

我是q,我有1元錢------2

我是q,我有1元錢------3

其中結果1容易理解,本類中的兩個變量沒有初始化,返回的是默認值。

結果2一開始感覺很困惑,子類繼承了父類的getName()和getMoney(),可并沒有繼承私有變量name和money,這里返回的值是誰的呢?

之后了解了一下這一部分的內存原理,原來新建子類時,會先在堆中新建一個父類,父類的變量和方法,以及子類獨有的變量和方法,二者共同組成了子類空間。

所以,新建子類后,父類中的private變量雖然不能被子類繼承,但卻是真實存在的,只是不可被直接訪問,只能間接使用。

結果2中,Manager對象其實在創建時就已經在構造函數中通過super(name,money)給name和mongey這兩個父類私有變量賦值了。而在使用this.getName()方法時,該方法是從父類繼承,所以方法內使用的變量也是父類的這兩個私有變量,所以在結果2中返回的是自定義的兩個值。

結果3中,super()直接通過父類調用getter方法,返回值當然也是兩個父類私有變量。

不過,如果在子類Manager中重寫getter方法,結果2就發生了改變。

public class Manager extends User { public Manager() { } public Manager(String name, int money) { super(name, money); } /*****************************新增重寫方法***************************/ @Override public String getName() { return name; } @Override public int getMoney() { return money; } /*****************************************************************/ private String name; private int money; public void show(){ System.out.println('我是'+this.name+',我有'+this.money+'元錢'); System.out.println('我是'+this.getName()+',我有'+this.getMoney()+'元錢'); System.out.println('我是'+super.getName()+',我有'+super.getMoney()+'元錢'); }}

我是null,我有0元錢---1

我是null,我有0元錢---2

我是q,我有1元錢------3

因為現在本類Manager中已經有了getter()方法,所以方法內直接調用本類的兩個name,money變量,因此結果2返回的是兩個初始值。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费在线观看成人| 国产精品一区二区美女视频免费看 | 亚洲精品第一| 在线综合视频| 日韩在线一二三区| 亚洲精品观看| 国产亚洲精品精品国产亚洲综合| 欧美亚洲专区| 国产探花在线精品| 美女视频网站久久| 国产精品精品| 久久人人88| 免费久久99精品国产自在现线| 蜜臀av一区二区三区| 日精品一区二区三区| 国产欧美日韩一区二区三区四区| 久久精品一区二区三区中文字幕| 日韩欧美精品一区| 欧美日韩激情| 亚洲精品大片| 国产精品网站在线看| 国产成人在线中文字幕| 国产传媒在线| 999国产精品| 蜜臀国产一区二区三区在线播放| 日韩精品亚洲一区二区三区免费| 美女视频免费精品| 伊人精品一区| 亚洲精品影视| 国产日韩欧美一区二区三区| 日本欧美国产| 亚洲黄页一区| 国产另类在线| 99久久99久久精品国产片果冰| 综合亚洲色图| 日韩不卡一区| 亚洲一区二区毛片| 国产免费久久| 国产伦久视频在线观看| 国产精品日本| 国产精成人品2018| 亚洲成人三区| 999国产精品视频| 91福利精品在线观看| 综合激情网...| 日韩不卡手机在线v区| 美女尤物国产一区| 激情偷拍久久| 国产日韩精品视频一区二区三区| 中文字幕成在线观看| 天堂成人免费av电影一区| 久久av影院| 国产一级久久| 日本va欧美va欧美va精品| 色爱综合网欧美| 免费在线欧美视频| 日韩a一区二区| 亚洲91网站| 日韩不卡免费高清视频| 中文字幕av亚洲精品一部二部| 国产中文欧美日韩在线| 在线观看亚洲精品福利片| 国产在线不卡一区二区三区| 久久亚洲国产精品一区二区| 精品国产不卡| 日韩三级一区| 免费不卡中文字幕在线| 欧美精品91| 国产视频一区三区| 国产成人免费精品| 日本91福利区| 精品中文字幕一区二区三区av| 91成人在线网站| 免费日韩视频| 香蕉视频亚洲一级| 欧美久久香蕉| 奶水喷射视频一区| 成人啊v在线| 欧美极品中文字幕| 亚洲精品乱码日韩| 91精品高清| 日韩不卡在线| 嫩呦国产一区二区三区av| 国产精品美女久久久| 亚洲最新无码中文字幕久久| 欧美日本久久| 亚洲精品亚洲人成在线观看| 婷婷综合五月| 激情视频网站在线播放色| 国产欧美日韩亚洲一区二区三区| 久久亚洲精品伦理| 2023国产精品久久久精品双| 亚洲成av在线| 91综合网人人| 精品三级国产| 国产精品一区二区免费福利视频| 亚洲综合激情在线| 99在线|亚洲一区二区| 中文在线а√在线8| 国产精品欧美在线观看| 日本在线一区二区三区| 久久福利影视| 在线亚洲成人| 在线亚洲成人| 合欧美一区二区三区| 日韩精品欧美| 欧美日韩免费看片| 日本在线啊啊| 国产精品黑丝在线播放| 精品久久国产一区| 精品一区二区三区在线观看视频 | 欧美色图一区| 国产中文在线播放| 国产精品国产三级国产在线观看| 国产精品欧美三级在线观看| 久久国产生活片100| 日韩av一区二区在线影视| 青草av.久久免费一区| 色综合视频一区二区三区日韩 | 欧美日韩午夜电影网| 亚洲毛片在线免费| 亚洲精品国产日韩| 欧美日韩中出| 国产精品亚洲二区| 粉嫩av一区二区三区四区五区 | 日精品一区二区三区| 中文字幕免费一区二区| 亚洲综合五月| 亚洲精品国产精品粉嫩| 日韩av一二三| 国产精品17p| 综合日韩av| 欧美69视频| 亚洲欧美日本视频在线观看| 亚洲精品a级片| 美女网站久久| 亚洲人成亚洲精品| 欧美一区自拍| 久久中文精品| 日韩不卡在线| 99国产精品久久久久久久| 视频一区在线视频| 日韩二区三区四区| 国产精品久久久久久久久免费高清| 国产精品久久久久av蜜臀| 精品三级在线观看视频| 日韩成人三级| 最新日韩av| 四虎精品永久免费| 麻豆国产一区| 国产精品毛片一区二区在线看| 久久精品高清| 蜜臀久久久99精品久久久久久| 欧美一区成人| 高清一区二区三区av| 日韩不卡在线| 喷白浆一区二区| 里番精品3d一二三区| 久久婷婷激情| 中文字幕中文字幕精品| 久久精品一区二区国产| 天堂资源在线亚洲| 日本不卡的三区四区五区| 精品三级在线| 日韩视频一区二区三区在线播放免费观看| 日韩精选在线| 97视频热人人精品免费| 91成人超碰| 国产伦精品一区二区三区视频 | 国产高清日韩| 三级在线看中文字幕完整版| 欧美在线资源| 国产日本久久| 久久国产欧美| 午夜亚洲福利| 特黄毛片在线观看| 一区二区三区网站| 国产精品美女久久久久久不卡| 久久久一本精品| 日韩免费精品| 99久久激情| 国产探花一区| 999国产精品999久久久久久| 欧美在线看片| 香蕉精品久久| 国产精品二区影院| 亚洲激情五月| 精品亚洲二区| 中文字幕亚洲在线观看| 97精品国产一区二区三区 | 婷婷亚洲综合| 欧美黑人做爰爽爽爽| 国产一区91| 日韩欧美一区二区三区免费看| 亚洲1区在线| 亚洲手机视频| 精品国产99| 青青在线精品| 久久精品在线| 国产精品主播在线观看|