Java封装

面向对象程序三大特性:封装、继承、多态。

一、封装的概念

将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。

优点:

  1. 良好的封装可以减少耦合(提高代码间的独立性)。
  2. 更好的维护代码,加强了代码安全性。
  3. 更好的控制成员变量。

二、访问限定符

Java中主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,更符合人类对事物的认知,而访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种访问限定符:

范围    private      defaut   protected      public
1 同包同类        √         √        √       √
2 同包不同类         √         √       √
3 不同包中子类         √       √
4 不同包非子类       √
  • 其中defaut是默认的限定符,当你什么限定符都不写的时候,默认就是defaut。
  • 限定符不仅可以限制类成员变量,也可以限制类的可见性。
  • protected在继承中会详细讲解。
class Dog{
    public String name;//public修饰
    private int age;//private修饰
    String color;//默认,default修饰

    public Dog(String name, int age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }
    public void eat(){
        System.out.println(name + "在吃狗粮");
    }
}
public class Test1 {
    public static void main(String[] args) {
        Dog dog = new Dog("豆豆",1,"白色");
        System.out.println(dog.name);//public修饰,可以被任何类访问,可以打印
        System.out.println(dog.color);//默认,default修饰,可以在本包访问,可以打印
        System.out.println(dog.age);//private修饰,只可以在Dog类访问,无法打印
    }
}

那我们就没有办法访问 private修饰的成员变量了吗?那当然是有的。

三、如何访问private修饰的成员变量

 public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

就如上面代码,我们只需要借助getAge(),setAge(),然后直接访问 getAge(),那么就可以打印这个属性了。

 System.out.println(dog.getAge());

总结

封装是面向对象程序三大特性之一,这次为大家带来封装,我们下次见!    

你可能感兴趣的:(Java,servlet,jvm,java)