成员变量可以在定义的时候初始化吗?成员方法中可以调用构造方法吗?

成员变量可以在定义的时候初始化吗?成员方法中可以调用构造方法吗?

问题描述:

  1. 成员变量能在定义的时候赋初值吗?没听老师讲过这样写,是开发中一般不这么用还是什么?

示例:

public class Person{
    String name = "花花";    //定义的同时初始化
}

2. 一个类中的成员方法可以调用其所在类中定义的构造方法吗?

示例:

public class Person{
    public Person(){
      System.out.println("创建一个Person类的实例");
    }
    public void run(){
      this();    //在成员方法中调用构造方法,这样对吗?
    }
}



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小明 2022-01-18 10:03:12

同学您好,

1、这里是可以在成员变量初始化时进行赋值,但这里更建议同学在set方法中进行赋值操作,这里只进行初始化而不赋值,则会使用默认值,实际开发中不会这样用

2、成员方法是可以调用构造方法的,但不会改变该对象的成员变量的值

祝同学学习愉快~

    1. 不应该说是初始化吗?我觉得应该说成:这里只进行变量声明而不赋值,则会使用默认值

    2. 如果构造方法的方法体中包含赋值操作,此时成员方法调用此构造方法,不是也可以改变该对象的成员变量的值吗?

    2022-01-18 10:20:01
  • 同学您好,

    这里是老师回答有误,给同学带来了不便,非常抱歉

    1. 关于同学的第一点是对的

    2. 同学第二点是错误的,成员方法是不能够调用构造方法的,此时编辑器会出现编译错误,同学可在编辑器上进行测试。

    祝同学学习愉快~

    2022-01-18 13:02:12
  • 嗯嗯,老师这次回答的是对的

    2022-01-18 13:54:03
到底是幼稚 2022-01-18 00:07:35

可以写可以不写,不写有默认值

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师