Java 面向对象-构造方法

构造方法(构造函数)

当一个对象被创建时,构造方法用来初始化该对象,所有的类都有构造方法。

注意:
1.构造方法必须和它所在的类的名字相同;
2.可以有参也可以无参,但一定无返回值,默认的构造方法无参数;
3.如果手动定义了构造方法(不论无参还是带参),默认构造方法就会失效;
4.只能在对象实例化的时候调用;
5.构造方法在类内不可被普通成员方法调用

// 构造方法名与类名相同
// 没有返回值类型
<class_name>(){}
 // 无参构造方法
public class Demo { 
 // 方法名与类名相同 无返回值类型
     public Demo() { // 可以带参数也可以无参
            System.out.println("无参构造方法");
     }

// 普通成员方法
     public void run() {  // 方法名任意 有返回值类型
          System.out.println("普通成员方法");
     }
}

// 当时实例化demo时 不论是否显式的定义了Demo这个构造方法 都不会报错
// 因为会默认定义一个无参的构造方法
public static void main (String[] args){
    Demo demo = new Demo(); 
}
// 如果手动定义了一个构造方法,不论有参还是无参,默认的构造方法会失效
public class Demo { // 带参的构造方法
    public Demo (String age){
        System.out.println("我的年龄是"+age);
    }
}

public class DemoTest {
      public static void main(String[] args){
     // 此处如果不带参数就会提示 Expected 1 arguments but found 0  可见 默认的无参构造方法失效了
          Demo demo = new Demo(); 
      }
}

这里如果想要继续 Demo demo = new Demo()生效,需要显式定义

另外,构造方法的调用在构造方法之间,不可以被普通成员方法调用,如图写法报错,编译器认为是在调用普通的Demo成员方法而不是构造方法

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容