前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类中的构造方法

类中的构造方法

作者头像
星哥玩云
发布2022-09-14 19:50:03
1K0
发布2022-09-14 19:50:03
举报
文章被收录于专栏:开源部署开源部署

1、构造方法概述

1.1、什么是构造方法

构造方法是正常开发中不可或缺的一部分,是语法上必须存在的。是一个具有特殊格式的方法,且有特殊的调用方式。

1.2、构造方法作用

1.2.1、实例化对象

用来创建实例对象的方法,给对象的数据进行初始化,如:

代码语言:javascript
复制
 Person p = new Person();  

调用构造方法 Person();只是我们没有写这个方法,而是Java自动补齐了这个方法,是方法就可以传入参数。

1.2.2、初始化成员变量

创建对象时,可以直接为成员变量赋值,无需再在对象产生后再赋值。

代码语言:javascript
复制
int x;
public Person(){
   //初始化x为0
}
public Person(int x){
   this.x=x;//局部变量赋值 
}

1.3、构造方法定义

**位置:**一般定义在其他方法前,成员变量后。

**定义规则:**一般用public修饰,没有返回值类型定义,方法名与类名相同,参数依据需求而定。

public 类名(参数类型 参数1,参数类型 参数2,…){

​ //创建对象时要执行的逻辑,经常为成员变量赋值

}

代码语言:javascript
复制
public class Person{
		private String name;
		private int age;
  	//两个构造方法为重载关系
		public Person() {} //空参的构造方法
		public Person(String name,int age) { //带参的构造方法
			this.name = name;
			this.age = age;
		}
}

2、构造方法表现形式

2.1、默认构造方法

构造方法是必须存在的,如果没有手动给出构造方法,Java会自动为我们补齐一个无参的构造方法。这个过程我们是看不到的。 如果手动给出了构造方法,java则不会再自动补齐任何构造。

代码语言:javascript
复制
public class Person{
   public static void main(Stringa args[]){
     Person p= new Person();
   }
}
代码语言:javascript
复制
public class Person{
   public Person(int age){}
   public static void main(String args[]){
     Person p= new Person();
   }
}

2.2、无参构造

无参的构造方法,一般情况下是我们的默认构造方法

代码语言:javascript
复制
public class Person{
   public Person(){}
   public static void main(Stringa args[]){
     Person p= new Person();
   }
}

2.3、有参构造

带参的构造方法通常是为了给属性赋值的

代码语言:javascript
复制
public class Person{
   public Person(String name,int age){}
   public Person(int age){}
   public static void main(Stringa args[]){
     Person p= new Person();
   }
}

3、构造方法应用

3.1、创建对象和初始化值

同其他方法相同,构造方法也是先定义再使用。而不同的是,其他方法的调用是为了这个方法对应的功能,而构造方法的功能就是创建对象,同时可以为属性赋值。

我们在此之前创建对象的方式均是通过构造方法,这样当对象创建出来后就已经具备了非默认值的初始值。

new 类名([实参列表]);

代码语言:javascript
复制
Person p = new Person();  //产生了Person的对象
System.out.println(p);  //打印结果为一个对象地址值,如0x9a64
System.out.println(p.getName());  //打印结果为null
代码语言:javascript
复制
Person p2 = new Person(“AngelaBaby”,18); //产生了一个Person对象
System.out.println(p2);  //打印结果为一个对象地址值,如0252b2
System.out.println(p2.getName()); //打印结果为AngelaBaby

3.2、注意事项

接口没有构造方法,抽象类具有构造方法

构造方法不能被继承,如:父类叫Person,子类叫Student 继承构造方法后,那么我new Person()后是子类的对象,还是父类的对象,我们分不清楚 。而且构造方法要求与类名相同,那么子类里面的Person构造方法和类名冲突了

构造方法的public并不是固定不变的,可以使用其他格式修饰构造方法。如:public、default、private

3.3、构造方法与set方法

构造方法是为了在创建的同时直接为属性赋值。

set方法时在创建对象之后,再重新为成员变量赋值,是修改值的过程。

代码语言:javascript
复制
public class Animal {
    private String name = "柳岩";
    private int age;
    //无参
    public Animal(){

    }
    /**
      * 带参的构造方法  用来给成员变量赋值
      		* @param name 第一个参数需要一个名字
      		* @param age  第二个参数需要一个年龄
      		*/
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
代码语言:javascript
复制
public class TestDemo {
    public static void main(String[] args) {
        Animal a = new Animal();
        System.out.println(a.getName());
        System.out.println(a.getAge());
        System.out.println("--------------");
        Animal a2 = new Animal("刘柳",20);
        a2.setName("刘艳");
        System.out.println(a2.getName());
        System.out.println(a2.getAge());
    }
}

运行结果:

image20200113143530675.png
image20200113143530675.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、构造方法概述
    • 1.1、什么是构造方法
      • 1.2、构造方法作用
        • 1.2.1、实例化对象
        • 1.2.2、初始化成员变量
      • 1.3、构造方法定义
      • 2、构造方法表现形式
        • 2.1、默认构造方法
          • 2.2、无参构造
            • 2.3、有参构造
            • 3、构造方法应用
              • 3.1、创建对象和初始化值
                • 3.2、注意事项
                  • 3.3、构造方法与set方法
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档