构造方法
构造方法概述
构造方法是一种特殊的方法,主要是完成对象的创建和对象数据的初始化
构造方法定义
- 格式
// 空参构造方法
修饰符 类名(){
}
// 有参构造方法
修饰符 类名(参数列表){
// 方法体
}
特点:
- 构造方法的写法上,方法名与它所在的类名相同。
- 构造方法没有返回值,所以不需要返回值类型,甚至不需要void。
- 构造方法可以重载
- 示例代码
public class Student {
// 属性
String name;
int age;
// 构造方法:
// 空参构造方法
// 创建对象,属性为默认值
public Student(){//空参构造
System.out.println("空参构造方法执行了...");
}
// 有参构造方法
public Student(String name,int age){// 满参构造方法
// 给属性赋值
this.name = name;
this.age = age;
}
public Student(String name){// 有参构造方法
// 给属性赋值
this.name = name;
}
// 方法
public void show(){
System.out.println("姓名:"+name+",年龄:"+age);
}
}
/*
测试类
*/
public class Demo1Student {
public static void main(String[] args) {
// 使用构造方法
// 创建Student对象: 类名 对象名 = new 类名();
// 调用空参构造方法创建对象,对象的属性为默认值
Student stu1 = new Student();// 等于号的右边其实就是调用空参构造方法
stu1.show();// 姓名:null,年龄:0
// 调用满参构造方法创建对象,对象的属性会被赋值
Student stu2 = new Student("张三",18);
stu2.show();// 姓名:张三,年龄:18
// 调用有参构造方法创建对象,对象的部分属性会被赋值
Student stu3 = new Student("李四");
stu3.show();// // 姓名:李四,年龄:0
}
}
注意事项
-
构造方法的创建
- 如果没有定义构造方法,系统将给出一个默认的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
-
构造方法可以重载,既可以定义参数,也可以不定义参数。
-
示例代码
/*
学生类
*/
class Student {
private String name;
private int age;
public Student() {}
public Student(String name) {
this.name = name;
}
public Student(int age) {
this.age = age;
}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println(name + "," + age);
}
}
/*
测试类
*/
public class StudentDemo {
public static void main(String[] args) {
//创建对象
Student s1 = new Student();
s1.show();
//public Student(String name)
Student s2 = new Student("张三");
s2.show();
//public Student(int age)
Student s3 = new Student(30);
s3.show();
//public Student(String name,int age)
Student s4 = new Student("张三",30);
s4.show();
}
}
标准类的制作
标准类组成
JavaBean
是 Java语言编写类的一种标准规范。符合JavaBean
的类,要求类必须是公共的,属性使用private修饰,并且具有无参数的构造方法,提供用来操作成员变量的set
和get
方法。
public class ClassName{
//成员变量 private
//构造方法
//无参构造方法【必须】
//满参构造方法【建议】
//getXxx()
//setXxx()
//成员方法
}
案例代码
- 需求:定义标准学生类,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。
- 示例代码:
public class Student {
// 成员变量 private
public String name;
public int age;
// 生成构造方法和set\get方法的快捷键: alt+insert
// 空参构造方法
public Student() {
}
// 满参构造方法
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// set方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
// get方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
// 成员方法 功能方法
public void show(){
System.out.println(name+","+age);
}
}
public class Test {
public static void main(String[] args) {
// 需求:要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。
// 使用空参构造方法创建对象
Student stu1 = new Student();
// 使用有参构造方法创建对象
Student stu2 = new Student("张三",18);
// 使用stu1和stu2调用show方法打印各自属性的值
stu1.show();// null,0
stu2.show();// 张三,18
// 空参创建的对象只能通过setXxx赋值
stu1.setName("李四");
stu1.setAge(19);
stu1.show();// 李四,19
}
}