一.什么是构造方法

所谓的构造方法,是一种特殊的方法,其作用是用来创建对象时初始化对象,即为对象成员变量赋初始值,总是与new运算符一起使用在创建对象的语句中。特别的,一个类是可以有多个构造函数,可以根据参数个数的不同或者参数类型的不同来区分它们,即为构造函数的重载。

构造方法是类的一个特殊的成员,在类实例化时会自动调用,其构造方法定义格式如下:

java 构造方法重载无参 java构造方法不能重载_java


注意:

第一:修饰符列表目前统一写:public。千万不要写public static。
第二:构造方法名和类名必须一致。
第三:构造方法不需要指定返回值类型,也不能写void,写上void表示普通方法,就不是构造方法了。

二.方法重载

方法重载:在同一个类中,出现多个方法的方法名相同,参数列表不同(参数的个数、参数的类型、参数顺序)的现象。

1)在同一个类中
  2)方法名相同
  3)参数列表不同
  4)与返回值类型、访问权限修饰符无关

变量作用域:变量按照其所在的位置,可以分为成员变量(全局变量)、局部变量两大类

成员变量:
  		作用类中其它结构外的变量,
  		成员变量的作用范围是整个类中都可以使用(在静态方法中不能使用非静态的成员变量,可以使用静态的成员变量)
  		成员变量系统会给它赋值一个默认值
  		在同一个类中,不能有同名的全局变量,全局变量和局部变量可以同名,在使用的时候,局部变量具有更高的优先级
局部变量:
  		作用方法中或者其它结构内的变量,
  		局部变量的作用范围只限于定义局部变量的结构中
  		局部变量没有默认值,在使用之前要进行赋值,否则会报错
  		在不同的方法内(获取其它结构内)可以有相同名称的局部变量,在同一个方法或者结构内不能有同名的局部变量
public class Student {

	// 定义属性
	String name;
	int age;
	char gender;
	double height;
	double weight;
	String address;
	double score;
	long phoneNumber;

	// Student类中有一个默认的无参构造函数,只是隐藏起来了,不显示而已

	// 声明一个有参构造函数来创建对象
	/*
	 * 访问权限修饰符 类名(参数列表){ 方法体 }
	 */

	public Student() {
	}

	public Student(String name, int age, char gender, double height, double weight, String address, double score,
			long phoneNumber) {
		// this表示当前调用此方法的对象,谁调用这个方法this就表示谁
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.height = height;
		this.weight = weight;
		this.address = address;
		this.score = score;
		this.phoneNumber = phoneNumber;
	}

	// 声明一个方法来输出对象的所有信息
	public void printInfo() {
		System.out.println("姓名:" + this.name + ",年龄:" + this.age + ",性别:" + this.gender + ",身高:" + this.height + ",体重:"
				+ this.weight + ",地址:" + this.address + ",分数:" + this.score + ",电话:" + this.phoneNumber);

	}

当你写完属性值时不需要在来写方法,直接构造方法让编辑器来帮你构造

java 构造方法重载无参 java构造方法不能重载_java 构造方法重载无参_02


直接右键,选择Source,再选择Generate Constructor using Fields,编辑器会自动帮你构造好你需要的方法。
然后去测试代码里面写一个方法:

java 构造方法重载无参 java构造方法不能重载_jvm_03


注意:写的值要和你的方法参数里面的值一 一对应,不然会报错。