类的属性的处理:
1. 一般使用private访问权限。
2. 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。
3. 一些只用于本类的辅助性方法可以用private修饰,其他类调用的方法用public修饰。
set和get方法快捷键:
右键----Generate-----SetterandGetter
public class fengzhuang {
public static void main(String[] args) {
Person2 p1 = new Person2();
//p1.name = "小红"; //编译错误
//p1.age = -45; //编译错误
p1.setName("小红");
p1.setAge(-45);
System.out.println(p1);
Person2 p2 = new Person2("小白", 300);
System.out.println(p2);
}
}
class Person2 {
private String name;
private int age;
public Person2() {
}
public Person2(String name, int age) {
this.name = name;
//this.age = age;
/*构造方法中不能直接赋值,应该调用setAge方法,
如果用this.age就没有调用我们的方法,那么我们传进来什么他就输出什么
不经过setAge的判断
*/
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//在赋值之前先判断年龄是否合法
if (age > 130 || age < 0) {
this.age = 18;//不合法赋默认值18
} else {
this.age = age;//合法才能赋值给属性age
}
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}