set(),get()方法的理解
为什么要用set(),get()方法
在我们实例化一个类对象的时候,要对这个类对象的属性进行赋值,并且输出这个类的属性。
举一个例子:
假如定义了一个Person类,要对Person类中的名字,年龄进行赋值
public class Demo {
public static void main(String[] args) {
Person person = new Person();
person.name = "张三";
person.age = 18;
System.out.println("姓名:"+person.name+",年龄:"+person.age);
}
}
class Person{
String name;
int age;
}
假如是这样那么结果就应该是:
姓名:张三,年龄:18
为什么要使用get() 和 set() 方法呢
通常来说属性就是类的隐私,不是什么人都能够进行访问的。
这就是JAVA面向对象编程中的封闭性和安全性了。
那么我们就需要在Person类的name和age前面加private修饰了,但是加了private以后外部类就不能访问了,所以person.name 和 person.age 就会报错。此时就需要我们使用set() 和 get() 方法了。
set() 和 get()的使用
set是传入值
get是得到值
不管你的属性(Xxx)是什么只要:
public void setXxx(String Xxx) {
this.Xxx = Xxx;
}
public String getXxx() {
return Xxx;
}
所以不管什么属性都可以通过set()方法输入,get()方法得到。
例子:
public class Demo {
public static void main(String[] args) {
Person person = new Person();
person.setOccupation("teacher");
person.setAge(18);
person.setName("张三");
System.out.println("姓名:" + person.getName() + ",年龄:" + person.getAge() + "职业:" + person.getOccupation());
}
}
class Person {
private String occupation;
private String name;
private int age;
public void setOccupation(String occupation) {
this.occupation = occupation;
}
public String getOccupation() {
return occupation;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
结果:
姓名:张三,年龄:18职业:teacher
或许你会问person.age 和 setAge() 都是从外界获取age值,用什么都一样?
假如你输入的年龄是负值呢?它还表示是年龄吗?
用set()方法就能够在方法里面判断输入的值是否正确了。
总结:为使程序的更安全,除了运用set() 和 get() 方法以外其实我们还可以使用构造方法。