Java四大特性:抽象,封装,继承,多态。
java四大权限修饰符:public,protected,default,private.
private这个关键字可以帮我们实现java的封装。
private这个关键字可以帮我们实现java的封装。
封装:
何为封装?我的理解就是,在一个java类里面,成员变量设置为private,不让其它类直接访问这个private的成员。如果其它类要访问这个类的private变量,
需要调用此类里面的方法。
在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,
注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。
在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,
注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。
以下代码在编译时会报错,因为age是用private修饰的,在PersonTest这个类中不能直接访问age这个属性。
public class Person {
//用private修饰的变量,在其它类中不能直接访问 private int age; void speak(){ System.out.println("I'am a person, my age:"+age); } } class PersonTest{ public static void main(String[] args) { Person person=new Person();
//虽然负数也是int类型,但我们知道一个人的年龄不能是负数
//需要我们写一些语句去判断正负 person.setAge(-20); person.speak(); } }
private实现了对类的属性的封装,但是其它类不能直接访问private属性,即使在其它类里面创建了类的对象也不能。
如果在其它类中要访问是私有的属性,常见的作法是调用geter和setter方法。
如下:
public class Person { private int age; public int getAge() { return age; } public void setAge(int age) { if(age>0 && age<130) { this.age = age; }else{ System.out.println("Age is not right,please check your input."); } } void speak(){ System.out.println("I'am a person, my age:"+age); } } class PersonTest{ public static void main(String[] args) { Person person=new Person(); person.setAge(20); person.speak(); } }