构造方法
一、构造方法概述:
构造方法也叫做构造器,构造函数,平时叫做构造方法
二、构造方法的作用:
创建对象的时候,由虚拟机自动调用,给成员变量进行初始化(赋值)
三、构造方法的格式:
public class student{
修饰符 类名(参数){
方法体;
}
}
四、特点:
-
方法名与类名相同,大小写也要一致
-
没有返回值类型,连void的都没有
-
没有具体的返回值(不能由return带回结果数据)
五、构造方法的两种形式:
-
无参数构造方法:初始化的对象时,成员变量的数据均采用默认值
-
有参数构造方法:在初始化对象的时候,同时可以为对象进行赋值
eg:
public class 构造方法01 {
public class Student{
private String name;
private int age;
public Student(){
//空参的构造方法
}
public Student(String name,int age){
//带参数的构造方法
}
}
}
六、执行时机:
-
创建对象的时候由虚拟机调用,不能手动调用构造方法
-
每创建一次对象,就会调用一次构造方法
eg:
public class Student {
private String name;
private int age;
//如果我们自己没有写任何的构造方法
//那么虚拟机给我们加一个空参构造方法,方法内容如下
public Student(){
}
//
public Student(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;
}
}
package com.itheima.Method01Test03;
public class StudentTest {
public static void main(String[] args) {
Student s = new Student();//创建对象调用的空参构造
Student s1 = new Student("张三",18);
System.out.println(s1.getName());
System.out.println(s1.getAge());
}
}
运行结果:
张三
18
七、构造方法注意事项:
构造方法的定义:
-
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
-
如果定义了构造方法,系统将不再提供默认的构造方法,此时如果需要使用,就需要自己写无参数构造器(构造方法)
构造方法的重载:
- 带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
推推荐的使用方法
- 无论是否使用,都建议手动书写无参数构造方法,和带全部参数的构造方法
标准JavaBean
一、标准的JavaBean类:
-
类名需要见名知意,驼峰命名
-
为了保证所有变量的安全性,成员变量使用private修饰
-
提供至少两个构造方法:1、无参构造方法,2、带全部参数的构造方法
-
成员方法:1、提供每一个成员变量对应的setXxx()/ getXxx() 2、如果还有其他行为也需要写上
快速生成set和get快捷键:Alt+insert或者Alt+Fn+insert或者鼠标右键、生成、seter和geter
使用插件PTG 1秒生成JavaBean:鼠标右键、PGT to JavaBean
二、练习:
public class User {
private String username;
private String password;
private String email;
private String gender;
private int age;
//空参
public User(){}
//带全部参数的构造方法
public User(String username,String password,String email,String gender){
this.username = username;
this.password = password;
this.email = email;
this.gender = gender;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
使用插件PTG 1秒生成JavaBean:鼠标右键、PGT to JavaBean
public class user02 {
private String username;
private String password;
private String email;
private String gender;
private int age;
public user02() {
}
public user02(String username, String password, String email, String gender, int age) {
this.username = username;
this.password = password;
this.email = email;
this.gender = gender;
this.age = age;
}
/**
* 获取
* @return username
*/
public String getUsername() {
return username;
}
/**
* 设置
* @param username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取
* @return password
*/
public String getPassword() {
return password;
}
/**
* 设置
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取
* @return email
*/
public String getEmail() {
return email;
}
/**
* 设置
* @param email
*/
public void setEmail(String email) {
this.email = email;
}
/**
* 获取
* @return gender
*/
public String getGender() {
return gender;
}
/**
* 设置
* @param gender
*/
public void setGender(String gender) {
this.gender = gender;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "user02{username = " + username + ", password = " + password + ", email = " + email + ", gender = " + gender + ", age = " + age + "}";
}
}