Java封装性

2020-02-09  本文已影响0人  南在南方i

封装的基础实现

在Java中所有面向对象的概念都是以类与对象的关系为主的,那么首先我们通过一个例子解释为什么需要提供封装性

观察如下代码:

class Person{
    String name;
    int age;
    public void tell(){
        System.out.println("姓名:"+name+",年龄:"+age);
    }
}

public class MyClass {
    public static void main(String[] args){
       Person person = new Person();
       person.name = "张三";
       person.age = -30;
       person.tell();
    }
}

封装性代码如下:

class Person{
    private String name;
    private int age;
    public void tell(){
        System.out.println("姓名:"+name+",年龄:"+age);
    }
}

加入private之后,就表示此时name和age两个属性只能够被Person访问

使得外部可以访问:

class Person{
    private String name;
    private int age;
    public void tell(){
        System.out.println("姓名:"+name+",年龄:"+age);
    }
    public void setName(String n){
        name = n;
    }
    public String getName(){
        return name;
    }
    public void setAge(int n){
        if (age >0 && age < 200){
            age = n;
        }
    }
    public int getAge(){
        return age;
    }
}

public class MyClass {
    public static void main(String[] args){
       Person person = new Person();
       person.setName("张三");
       person.setAge(30);
       person.tell();
    }
}

此时经过封装后,外界访问属性需设置符合现实规律的值才可以显示(0<age<200),否则无法得到想要的结果

\color{red}{开发原则}:只要是类中的属性应使用private封装,封装后的属性必须严格按照要求编写settergetter方法

总结:

上一篇下一篇

猜你喜欢

热点阅读