Java 学习和实践笔记(17):构造方法(构造器 constructor)

本文解释了构造方法在Java中的作用,强调了对象初始化的四个步骤,包括默认构造、显式初始化、执行自定义构造方法以及返回对象地址。通过实例分析Point类展示了构造方法与普通方法的区别。
摘要由CSDN通过智能技术生成

构造方法(构造器 constructor)

它只是用于指明对象的初始化,而不是创造对象。

在每一个类创建完,编译器都会自动做一个无参的构造方法(没有显示出来),因为做了这个,所以new才能自动创建对象。

创建对象的4步:

第一步:很简单,创建类时,成员的初始值都为0

比如 :public class Student{

int id;

int age;

}

最开始的id,就为0

第二步:显式初始化。

比如 :public class Student{

int id =1;

int age;

}

最开始id仍是0,然后将它改为1.

第三步:执行构造方法

比如 :public class Student{

int id =1;

int age;

}

如果我不自定义构造方法,编译器也自定了一个无参的构造方法 Student(),以便后续创造对象实例。

比如 s1= new Student();

如果我自定义一个构造方法:

Student (int a, int b){

id= int a;

age = int b;}

那么后续创造对象时,就要使用这个格式。

第四步:返回对象的地址给相关变量,这句话就是指:s1= new Student();即定义完后返回给s1.

注意,对象构造方法,与前面章节学的方法是完全不同的两件事!不要混淆了!

理解完下面的代码,也就明白了上面的意思:

public class Point {    //创建一个名叫Point的类或者表
    double x,y;//类的两个属性或者表的两个列

    Point(double _x,double _y) {
        x = _x;
        y = _y;
    } //因为这里定义了一个带参的对象构造方法,所以编译器虽默认自带但不显示的对象构造方法Point()就不起作用。
        //注意,对象构造方法,与前面学的方法是完全不同的两件事!不要混淆了!


    public double getDistance(Point p) {
        return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
    } //这里是定义一个方法(也是就一个函数)将其值返回给函数名;函数的形参是一个名叫p的Point类的对象
    //而根据上面定义的对象构造方法,这个名叫p的对象,使用时需要两个实参分别给p.x和p.y

        public static void main(String[] args){
        Point p1 = new Point(3.0,4.0);
        Point origin = new Point(0.0,0.0);
        System.out.println(p1.getDistance(origin));
        //p1本身有坐标值,它的方法属性列又通过origin传递实参给了形参point p,这样,整个Math.sqrt所需要的值就都有了。
            //相当巧妙啊!
        System.out.println(origin.getDistance(origin));

    }

}

Point p 定义了一个临时的对象

 xygetDistance
p134
origin00
p  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

复业思维20240108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值