Home

韧桂

思考,总结

面向对象的封装性

package six_one;
/**
 * 一、面向对象的特征一:封装与隐藏
 * 问题:当创建了类的对象以后,如果直接通过 "对象.属性" 的方式对相应的对象属性进行赋值的话,
 * 可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,而是通过 "对象.方法" 的形式,
 * 来控制对象对属性的访问。实际情况中,对属性的要求就可以通过方法 (setter & getter) 来体现。
 *
 * 解决的方法:(封装性的思想)①将类的属性私有化,②提供公共的方法来实现调用。
 *
 *  二、权限修饰符:public  private  protected  缺省
 *     可以用来修饰属性、方法
 *     注:1)权限从大到小排列:public protected 缺省 private
 *        2)修饰类的权限有:public 缺省
 */

public class TestAnimal {
    public static void main(String[] args) {
        Animal a1 = new Animal();
//        a1.name = "暗金恐爪熊";
//        a1.legs = 4;
        a1.setLegs(4);
        a1.setName("暗金恐爪熊");
        a1.info();
        a1.eat();
    }
}

class Animal{
    //private属性私有化,修饰的属性,只能在本类中被调用,出了此类,就不能被调用了。
    private String name;//动物的名字
    private int legs;//退的个数

    public void eat(){
        System.out.println("动物进食");
    }
    public void sleep(){
        System.out.println("动物睡觉");
    }
    public void info(){
        System.out.println("name:" + name + " legs:" + legs);
    }
    public void setLegs(int l){
        if (l > 0 && l % 2 == 0){
            legs = l;
        }else {
            System.out.println("您输入的数据有误");
        }
    }
    public int getLegs(){
        return legs;
    }
    //设置类的属性
    public void setName(String n){
        //....
        name = n;
    }
    //获取类的属性
    public String getName(){
        return name;
    }
}

韧桂 2019-12-24