标准的Javabean类:
- 类名要见名知意
- 成员变量使用private修饰
- 提供至少两个构造方法,1.无参构造法 2.带全部参数的构造方法
- 成员方法:1.提供每一个成员变量对应的setxxx()/getxxx(); 2.如果还有其他行为,也要写上;
代码示例:
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, 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 "User{username = " + username + ", password = " + password + ", email = " + email + ", gender = " + gender + ", age = " + age + "}";
}
//空参
}
对象内存图:
方法区:字节码文件加载时进入的内存
栈内存:方法运行时所进入的内存,变量也是在这里
堆内存:new出来的东西会在这块内存中开辟空间并产生地址
一个对象的内存图:
- 加载class文件
- 申明局部变量
- 在堆内存中开辟一个空间
- 默认初始化
- 显示初始化
- 构造方法初始化
- 将堆内存中的地址值赋值给左边的局部变量
两个对象的内存图:
图片示例:
基本数据类型和引用数据类型:
内存角度:
基本数据类型:数据值是存储在自己的空间中;
特点:赋值给其他变量,也是赋的真实的值;
引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值;
特点:赋值给其他变量,赋的是地址值;
this的内存原理:
this的作用:区分局部变量和成员变量;
this的本质:所在方法调用者的地址值;