構造方法
一、構造方法概述:
構造方法也叫做構造器,構造函數,平時叫做構造方法
二、構造方法的作用:
創建對象的時候,由虛擬機自動調用,給成員變量進行初始化(賦值)
三、構造方法的格式:
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 + "}";
}
}