在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    構造方法詳解

    /**

    * 構造方法詳解

    * 聲明構造方法的格式為 修飾符+當前類的名稱(形參列表){語句塊}

    * 構造方法通過new 調用

    * 構造方法固定返回通過方法運算后的對象 不能更改和定義返回值類型

    * 沒有定義構造方法的情況下默認構造方法為 類名稱(){} 兩個括號內均為空值 在new調用時對對象進行運算 無更改 直接返回對象

    */

    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調用構造方法Point() 類中沒有手動定義構造方法,默認方法中的(){}為空,只返回默認的對象

    //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;

    }

    //手動定義構造方法 設定形參_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開方運算

    //這里的x y為程序中實際使用調用命令來調用方法getDistance的那個對象的x y

    //用實際對象的x y 和形參p的p.x p.y運算

    return d;

    }

    public static void main(String[] args) {

    Point1 a = new Point1(3,5);

    //new調用構造方法 構造方法內(3,5)為實參 對應(_x,_y)形參

    //通過構造方法 使對象的x,y初始化為3,5

    //每次執(zhí)行方法 會在棧stack內開辟一個棧幀 這里調用構造方法 開辟了Point1()的棧幀

    /*構造方法為創(chuàng)建對象的第三步

    創(chuàng)建對象第一步創(chuàng)建一個全默認的對象 x y 全默認值

    第二步初始化xy 如果在類中定義了double x =7.0 第二步會將x從默認0初始化為7.0

    第三步調用構造方法 調用時生成對象的地址this 將構造方法的實參3,5賦值給對象的this.x this.y

    因為構造方法中的x y 沒有特意指名別的對象 所以默認x y 是指this.x this.y

    即將3,5賦值給當前正在構造的對象

    構造方法執(zhí)行完畢后該方法的棧幀從棧stack內消失

    */

    System.out.println(a.x+”,”+a.y);

    Point1 b = new Point1(5,6);

    /*第一步 創(chuàng)建新的對象 對象的x y 全默認值0

    第二步 初始化 對象的x y 類中沒有進行定義x=?y=? 所以跳過

    第三步 調用構造方法 在棧stack內開辟Point1()的棧幀 將當前正在構造的對象的地址賦值給方法內的this

    根據(jù)實參(5,6)進行運算 構造方法Point1的語句塊內設定將5賦值給this.x 將6賦值給this.y

    返回對象 構造方法執(zhí)行完畢 棧幀從棧stack內消失

    第四步 將new的對象的地址賦值給引用類型b

    */

    double d = a.getDistance(b);

    //a為調用方法的主體 (b)為實參 b的5,6對應Point1 p 形參的p.x,p.y

    //即用主體a的3,5和實參b的5,6運算

    //調用getDistance()方法 在棧stack內開辟一個棧幀 執(zhí)行完畢后消失

    //主體a的地址賦值給方法的this

    //運算時使用 this.x this.y 和 b.x b.y

    System.out.println(d);

    }

    //main方法結束 棧幀main()消失

    }

    鄭重聲明:本文內容及圖片均整理自互聯(lián)網,不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月14日 06:07
    下一篇 2022年6月14日 06:08

    相關推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息