构造方法详解

/**

* 构造方法详解

* 声明构造方法的格式为 修饰符+当前类的名称(形参列表){语句块}

* 构造方法通过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字节 a的4字节用来保存对象的地址

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

//每次执行方法 会在栈stack内开辟一个栈帧 这里调用构造方法 开辟了Point1()的栈帧

/*构造方法为创建对象的第三步

创建对象第一步创建一个全默认的对象 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赋值给当前正在构造的对象

构造方法执行完毕后该方法的栈帧从栈stack内消失

*/

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

Point1 b = new Point1(5,6);

/*第一步 创建新的对象 对象的x y 全默认值0

第二步 初始化 对象的x y 类中没有进行定义x=?y=? 所以跳过

第三步 调用构造方法 在栈stack内开辟Point1()的栈帧 将当前正在构造的对象的地址赋值给方法内的this

根据实参(5,6)进行运算 构造方法Point1的语句块内设定将5赋值给this.x 将6赋值给this.y

返回对象 构造方法执行完毕 栈帧从栈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内开辟一个栈帧 执行完毕后消失

//主体a的地址赋值给方法的this

//运算时使用 this.x this.y 和 b.x b.y

System.out.println(d);

}

//main方法结束 栈帧main()消失

}

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月14日
下一篇 2022年6月14日

相关推荐

  • 手美白的快速方法 一个月的实测,拒绝白手走弯路 黄黑皮必看

    经过整个夏季高温紫外线的洗礼,相信很多重视手部护理的姐妹,一人拥有白皙嫩滑的双手,而不重视手部护理的姐妹,反而手部的皮肤不仅暗沉发黄、还特别的干燥。没有女性不爱美,不希望自己的皮肤…

    2022年8月14日
  • 英雄联盟空格怎么打

    英雄联盟空格怎么打呢?快来看看吧。 英雄联盟空格怎么打 1、使用搜狗输入法,玩家们可以按V+1键,弹出特殊符号,然后再按D也可以在lol起名字时打出空格 2、将半角转换全角,快捷键…

    2022年5月1日
  • 《战神5》梦嫛花怎么获得?梦嫛花获得方法介绍

    战神5是战神系列的最新一作,玩家将扮演奎托斯和阿特柔斯探索九界各界寻找真相。很多小伙伴可能还不清楚游戏中的梦嫛花怎么获得吧,今天小编给大家带来战神5梦嫛花获得方法介绍,快来看一下吧…

    2022年11月9日
  • 构造方法的重载

    /** * 测试构造方法的重载 */ public class User { int id; String name; String pwd; public User(int id…

    2022年6月13日
  • rar文件怎么打开电脑「电脑怎么打开压缩文件rar」

    方法一: 首先,双击鼠标以打开需要打开的rar文件,然后出现一个解压提示框,然后在菜单栏中单击“提取到”。 解压后,单击保存位置和打开方法。选择后单击“确认”。 然后等待解压缩完成…

    2022年5月6日
  • 皱纹 多种皱纹的去除方法

    面部的皱纹最容易暴露年龄,想要面容生动不留衰老迹象, 就要肯下功夫,将皱纹抚平,做个光洁亮丽的时光美人。 去除表情纹、缺水纹 脆弱的肌肤容易形成皱纹,适当按摩能够舒展肌肤,减少皱纹…

    2022年7月3日
  • 重新定义宇宙的人-杨振宁

    这个世界究竟有没有造物者?这个伟大的科学家给出了答案,他是被人们称为爱因斯坦后重新定义宇宙的伟大物理学家。爱因斯坦耗尽后半生都没有做到统一宇宙斯大力、引力、电磁力、强力和弱力,而他…

    2022年8月18日
  • 小米盒子怎么看电视直播免费(小米盒子怎么看电视台的节目)

    小米盒子一直都是网络机顶盒里的大热门,很多购买小米盒子的用户除了安装特定的软件外,观看直播软件尤为刚需。今天小编就来教大家,如何轻松给小米盒子安装直播软件观看央视和卫视直播。 这个…

    2022年4月19日
  • 女人反脆弱的方法

    [太阳]正确认识接纳自己。不可否认人与人之间出生、相貌乃至智力的差异,大概率你只是个普通人,但普通并不值得你自卑、自我否定和自暴自弃,坦率的评估并接受自己的劣势与弱项,有针对性的学…

    2022年8月31日
  • 时间真的客观存在吗?

    时间存在吗?我经常看到有人这样的发问,大部分的人直截了当地下结论:时间不存在,仅是人为定义的一种概念罢了,真的是这样吗? 哲学上,先秦道家先哲庄子在《逍遥游》中有论:“朝菌不知晦朔…

    2022年6月26日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息