面向对象的封装性及权限修饰符

面向对象的封装性:

/*
面向对象的特征一:封装与隐藏
问题:创建类的对象以后如果直接用”对象.属性“ 的方式对相应的对象属性赋值的话,可能
           出现不符合实际情况的意外,所以使用通过对象.方法的形式,来控制对象对属性的访问。
           实际情况中,对属性的要求就可以通过方法来体现
           
解决的方法:(封装性的思想) 将类的属性私有化,提供公共的方法(setter& getter)来调用   

 二:权限修饰符: 可以修饰属性和方法
               private   
               缺省   
               protected 
               public

 
 */
public class TestAnimal {
    public static void main(String[] args) {
        Animal a = new Animal();
        // a.legs = -4;
        // a.name="小白"; 属性声明为private出了他的这个类不能直接调用 得用方法调用
        a.setLegs(4);
    }
}

class Animal {

    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 m) {
        if (m > 0 && m % 2 == 0) {
            legs = 1;
        } else {
            System.out.println("输入有误");
        }
    }
    //获取类的属性
    public int getLegs() {
        return legs;
    }

    public void setName(String n) {
        // . . . .
        name = n;
    }

    public String getName() {
        return name;
    }
}

权限修饰符:

注意:

对于class的权限修饰符只可以用public和default(缺省)

public类可以在任意地方被访问

default类只可以被同一个包内部的类访问

All that work will definitely pay off
原文地址:https://www.cnblogs.com/afangfang/p/12485065.html