java面对对象-封装

1.访问控制符

Java的访问控制符:private、protected、public,还有一个不加任何访问控制符的访问控制级别。
四个控制级别由小到大:private、default、protected、public
private:当前类访问权限
default:包访问权限,可以被相同包下的其他类访问
protected:子类访问权限,既可以被同一个包中的其他类访问,也可以被不同包中的子类访问
public:公共访问权限

对于局部变量而言,其作用于就是它所在的方法,不能被其他类访问,所以不能使用访问控制符修饰。

2.封装:将对象的状态信息对外部隐藏起来,不允许外部直接访问,而是由该类提供方法来实现对信息的访问。

良好的封装应该是,对象的Field和实现细节隐藏起来,外界无法直接访问,提供方法来对Field进行访问和操作。

如果一个Java类的每个Field都被使用private修饰,并为每个Field都提供了public修饰的setter和getter方法,那么这个类就是一个符合JavaBean规范的类。JavaBean是一个封装良好的类。

eg:

复制代码
package cn.it.lsl;

public class Person {
    private String name;
    private int age;
    
    public void setName(String name){
        if(name.length()>6 || name.length()<2){
            System.out.println("您设置的人名不符合要求");
            return;
        }else{
            this.name = name;
        }
    }
    
    public String getName(){
        return this.name;
    }
    
    public void setAge(int age){
        if(age>100 || age<0){
            System.out.println("您设置的年龄不符合要求");
            return;
        }else{
            this.age = age;
        }
    }
    
    public int getAge(){
        return this.age;
    }
}
复制代码
复制代码
package cn.it.lsl;

public class PersonTest {
    public static void main(String[] args) {
        Person p = new Person();
        //p.age = 50;        //错误。不能直接访问
        p.setAge(1000);
        System.out.println(p.getAge());        //未能正确设置年龄
        p.setAge(25);
        System.out.println(p.getAge());
    }
}
复制代码

猜你喜欢

转载自www.cnblogs.com/wuqiance/p/11573349.html