在Java中,为了数据的安全,换句话说就是为了隐藏你的代码的一些实现细节,我们会用private来修饰属性,使用private修饰的属性就不能被其他类直接访问了,想要访问就需要通过set、get方法;顾名思义,set是设置数据,ge是得到数据。不知道你想不想问,那我通过get、set 方法还是能访问到数据,为啥说数据变安全了呢?先说有了set、get方法,假如别人的类需要用到你的类里面的name,而你用了private修饰name,他就得通过getName()方法来得到你的name数据,并且是只得到了name数据,想要瞅一眼别的?没门。那要是没有用private修饰属性呢?他是不是想要哪个要哪个,想改哪个改哪个,简直是为所欲为啊。好了,上代码:
第一个类:Person01
1 package test; 2 3 public class Person01 { 4 5 //用private来修饰属性 6 private String name; 7 private int age; 8 9 //给属性添加get、set方法 10 public String getName() { 11 return name; 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17 18 public int getAge() { 19 return age; 20 } 21 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 }
第二个类:Person02
1 package test; 2 3 public class Person02 { 4 5 public static void main(String[] args) { 6 //创建的是前面的类Person01类的对象 7 Person01 p1 = new Person01(); 8 9 //现在我想给Person01(别人的类)的属性附上值,然后拿过来用 10 11 //不能这样赋值 如果给Person01里name的private修饰符去掉就可以这样赋值 12 // p1.name = "张三"; 13 14 //通过set方法赋值 15 p1.setName("张三"); 16 17 //是不是每一个set只能赋一个值 如果把Person01类的setAge()方法删掉,那这个就会报错 18 p1.setAge(18); 19 20 //这样拿不到值,会报错 21 // System.out.println("姓名:"+p1.name+" 年龄:"+p1.age); 22 23 //得通过get方法才能拿到 24 System.out.println("姓名:"+p1.getName()+" 年龄:"+p1.getAge()); 25 26 } 27 28 }
结果:
姓名:张三
年龄:18