最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

構(gòu)造方法詳解

2022-06-07 22:40 作者:虛云幻仙  | 我要投稿

/**
* 構(gòu)造方法詳解
* 聲明構(gòu)造方法的格式為 修飾符+當(dāng)前類的名稱(形參列表){語句塊}
* 構(gòu)造方法通過new 調(diào)用
* 構(gòu)造方法固定返回通過方法運(yùn)算后的對象 不能更改和定義返回值類型
* 沒有定義構(gòu)造方法的情況下默認(rèn)構(gòu)造方法為 類名稱(){} 兩個括號內(nèi)均為空值 在new調(diào)用時對對象進(jìn)行運(yùn)算 無更改 直接返回對象
*/

public class Point {
? ?double x,y;

? ?public void set(int a,int b){
? ? ? ?x = a;
? ? ? ?y = b;
? ?}

? ?public void print(){
? ? ? ?System.out.println("("+x+","+y+")");
? ?}


? ?public static void main(String[] args) {
? ? ? ?Point a = new Point();
? ? ? ?//通過new調(diào)用構(gòu)造方法Point() 類中沒有手動定義構(gòu)造方法,默認(rèn)方法中的(){}為空,只返回默認(rèn)的對象
? ? ? ?//Point a 為引用類型 占用4字節(jié) a的4字節(jié)用來保存對象的地址

? ? ? ?a.print();
? ? ? ?a.set(3,5);
? ? ? ?a.print();
? ?}
}

class Point1 {

? ?double x,y;

? ? public Point1(double _x,double _y){
? ? ? ?x = _x;
? ? ? ?y = _y;
? ?}
? ?//手動定義構(gòu)造方法 設(shè)定形參_x _y 用這兩個的值賦值給x y

? ?public double getDistance(Point1 p){
? ? ? ?//定義求距離的方法getDistance 返回double型的距離
? ? ? ?//方法里()定義形參p p是Point1類的對象

? ? ? ?double d = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
? ? ? ?//Math.sqrt開平方 百度搜索java開方運(yùn)算
? ? ? ?//這里的x y為程序中實(shí)際使用調(diào)用命令來調(diào)用方法getDistance的那個對象的x y
? ? ? ?//用實(shí)際對象的x y 和形參p的p.x p.y運(yùn)算

? ? ? ?return d;
? ?}

? ?public static void main(String[] args) {
? ? ? ?Point1 a = new Point1(3,5);
? ? ? ?//new調(diào)用構(gòu)造方法 構(gòu)造方法內(nèi)(3,5)為實(shí)參 對應(yīng)(_x,_y)形參
? ? ? ?//通過構(gòu)造方法 使對象的x,y初始化為3,5
? ? ? ?//每次執(zhí)行方法 會在棧stack內(nèi)開辟一個棧幀 這里調(diào)用構(gòu)造方法 開辟了Point1()的棧幀
? ? ? ?/*構(gòu)造方法為創(chuàng)建對象的第三步
? ? ? ?創(chuàng)建對象第一步創(chuàng)建一個全默認(rèn)的對象 x y 全默認(rèn)值
? ? ? ?第二步初始化xy 如果在類中定義了double x =7.0 第二步會將x從默認(rèn)0初始化為7.0
? ? ? ?第三步調(diào)用構(gòu)造方法 調(diào)用時生成對象的地址this 將構(gòu)造方法的實(shí)參3,5賦值給對象的this.x this.y
? ? ? ?因?yàn)闃?gòu)造方法中的x y 沒有特意指名別的對象 所以默認(rèn)x y 是指this.x this.y
? ? ? ?即將3,5賦值給當(dāng)前正在構(gòu)造的對象
? ? ? ?構(gòu)造方法執(zhí)行完畢后該方法的棧幀從棧stack內(nèi)消失
? ? ? ? */

? ? ? ?System.out.println(a.x+","+a.y);
? ? ? ?Point1 b = new Point1(5,6);
? ? ? ?/*第一步 創(chuàng)建新的對象 對象的x y 全默認(rèn)值0
? ? ? ?第二步 初始化 對象的x y 類中沒有進(jìn)行定義x=?y=? 所以跳過
? ? ? ?第三步 調(diào)用構(gòu)造方法 在棧stack內(nèi)開辟Point1()的棧幀 將當(dāng)前正在構(gòu)造的對象的地址賦值給方法內(nèi)的this
? ? ? ?根據(jù)實(shí)參(5,6)進(jìn)行運(yùn)算 構(gòu)造方法Point1的語句塊內(nèi)設(shè)定將5賦值給this.x 將6賦值給this.y
? ? ? ?返回對象 構(gòu)造方法執(zhí)行完畢 棧幀從棧stack內(nèi)消失
? ? ? ?第四步 將new的對象的地址賦值給引用類型b
? ? ? ? */

? ? ? ?double d = a.getDistance(b);
? ? ? ?//a為調(diào)用方法的主體 (b)為實(shí)參 b的5,6對應(yīng)Point1 p 形參的p.x,p.y
? ? ? ?//即用主體a的3,5和實(shí)參b的5,6運(yùn)算
? ? ? ?//調(diào)用getDistance()方法 在棧stack內(nèi)開辟一個棧幀 執(zhí)行完畢后消失
? ? ? ?//主體a的地址賦值給方法的this
? ? ? ?//運(yùn)算時使用 this.x this.y 和 b.x b.y

? ? ? ?System.out.println(d);

? ?}
? ?//main方法結(jié)束 棧幀main()消失

}

構(gòu)造方法詳解的評論 (共 條)

分享到微博請遵守國家法律
黔西县| 理塘县| 建湖县| 黔西县| 武宁县| 新乡县| 勃利县| 高淳县| 濮阳市| 眉山市| 油尖旺区| 五指山市| 桐城市| 习水县| 德保县| 满洲里市| 永善县| 星子县| 永川市| 海安县| 龙州县| 南木林县| 凤山市| 乌拉特前旗| 滨海县| 讷河市| 遂平县| 封开县| 普洱| 任丘市| 凉城县| 华安县| 武威市| 宁城县| 衡山县| 简阳市| 乐都县| 盐边县| 乌鲁木齐县| 绥化市| 淮安市|