JAVA封装的使用

类的属性的处理:

      1. 一般使用private访问权限。

      2.  提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。

      3. 一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的方法用public修饰。

JavaBean的封装实例:

public class Person {

    // 属性一般使用private修饰

    private String name;

    private int age;

    private boolean flag;

    // 为属性提供public修饰的set/get方法

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    public boolean isFlag() {// 注意:boolean类型的属性get方法是is开头的

        return flag;

    }

    public void setFlag(boolean flag) {

        this.flag = flag;

    }

}

      下面我们使用封装来解决一下提到的年龄非法赋值的问题。

封装的使用:

/**
 * 封装细节
 * @author 赵广陆
 *
 */
class Person {
    private String name;
    private int age;
    public Person() {
 
    }
    public Person(String name, int age) {
        this.name = name;
        // this.age = age;//构造方法中不能直接赋值,应该调用setAge方法
        setAge(age);
    }
     
    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 + "]";
    }
}
 
public class Person4 {
    public static void main(String[] args) {
        Person p1 = new Person();
        //p1.name = "小红"; //编译错误
        //p1.age = -45;  //编译错误
        p1.setName("张三");
        p1.setAge(-45);
        System.out.println(p1);
         
        Person p2 = new Person("李四", 300);
        System.out.println(p2);
    }
}

运行效果:

 

posted @ 2020-02-01 17:35  赵广陆  阅读(19)  评论(0编辑  收藏  举报