构造器和this的不解之缘

本文介绍了Java中的构造器,包括构造器的定义、特点和与普通方法的区别。此外,详细阐述了`this`关键字的含义,指出其在类中代指当前对象,并讨论了构造器的使用步骤,强调了构造器在对象初始化中的重要性。同时,文章提出了构造器与set方法在赋值上的差异以及在初始化时是否必须使用构造器的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、构造器是什么?

构造器也叫构造方法

构造方法和普通方法的区别:

1. 构造方法的修饰符只有权限修饰符,普通方法还可以有static等关键词
2. 构造器是无返回值类型的(连void都没有),普通方法是有返回值的
3. 构造器的名字只能和类名一样,普通方法的方法名可以随意写
构造器的作用:用于创建对象开辟空间、做初始化操作

内存图解--方便理解

二、this关键字

概念:this代指当前对象
运用前提的思考点:类中所有的非静态方法和属性都需要通过对象调用
思考以下代码的结果:

package day5;

public class Car {

	private int type;
	private String brand;
	private String color;
	private int tyreNum;
	public Car() {
		tyreNum=4;
	}
	public Car(String color) {
		tyreNum=4;
		this.color=color;
	}
	
	
	
	public Car(int type, String brand, String color) {
		//this();
		this(color);
		this.type = type;
		this.brand = brand;
		this.color = color;
	}
	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public int getTyrenum() {
		return tyreNum;
	}

	public void setTyrenum(int tyreNum) {
		this.tyreNum = tyreNum;
	}

	public static void main(String[] args) {


	}

}

二、使用步骤

1. 构造器的特点

1. 当类中没有提供构造器时,虚拟机会默认给提供一个无参的构造器,如果有构造器,虚拟机就不再提供默认的
2. 构造器可以重载的形式存在多个,具体根据实际需求进行选择使用


```java
package Constructor;


public class Person {
 private String name;
 private int age;
 private String idCard;
 int sex;
 /*
  * 性别:1男  2女
  */
 public Person() {
	 System.out.println("构造器---执行");
 }
 public Person(int age) {
	 this.age=age;
 }
 public Person(String name,int age) {
	 this.name = name;
		this.age = age;
 }
 
	public Person(String name, int age, String idcard) {
	
	this.name = name;
	this.age = age;
	this.idCard = idcard;
}
	
	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;
	}
	public static void main(String[] args) {
		

	}

}


```c




总结

/**

  • 构造方法也叫构造器
  • 当类中没有明确给出构造器的时候,虚拟机会提供一个默认的无参构造器,但是如果该类中已经有了构造器,那虚拟机就不再提供默认的无参构造器了
  • 大多数情况下,每个类中都要有无参及全部参数的构造器
  • 问题:set方法可以进行赋值,构造器也可以进行赋值,有什么区别?
  • 答案:set方法更主要的作用是用于对象创建后再对属性的值进行修改,而构造器对于属性而言主要是用于初始化的
  • 问题:初始化的时候一定要用构造器吗?
  • 回答:在对属性进行初始化的时候呢,到底要对哪些属性进行初始化是不确定的,因为属性的组合有很多种可能性,但是不能在类中针对每一种可能都给一个构造器。
  • 在构造器中使用this关键字调用其他的构造器时注意,只能放在第一行(每个分号就代表一行)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值