新手学习Java笔记(四)封装的简单例子

新手学习Java笔记(四)

为了将某些方法和成员变量保护起来,不直接暴露在外部,通常要封装

封装是面向对象程序设计的四大特征之一

public class Test {
    public static void main(String[] args) {
        Student A = new Student();
        StringBuffer A_Name = new StringBuffer("ZhangSan");
        
        A.setName(A_Name);
        A.setAge(10);
        
        System.out.println(A.getName());
        
        A.setAge(12);
        
        System.out.println(A.getAge());
    }
}

class Student{
    private StringBuffer name;
    private int age;

    void setName(StringBuffer name){
        this.name = name;
    }
    void setAge(int age){
        this.age = age;
    }

    StringBuffer getName(){
        return this.name;
    }
    int getAge(){
        return this.age;
    }
}

封装的实现:访问控制修饰符

public、protected、(default)、private按照权限从低到高

  • public:对所有类可见 接口里的变量隐式声明为"public static final"

  • protected:对同一包的所有类可见 不能修饰外部类

  • default:对同一包的所有类可见 此为默认值

  • private:对同一类可见 不能修饰外部类,被修饰变量只能通过类中方法被外部类访问,且被修饰的父类方法不会被继承

在类的外部调用被private修饰成员时提示编译错误,这表明该类已被封装,内部已被隐藏。只有在内部可以调用。

set/get 存取器

	void setName(StringBuffer name){
        this.name = name;
    }
    void setAge(int age){
        this.age = age;
    }

    StringBuffer getName(){
        return this.name;
    }
    int getAge(){
        return this.age;
    }

这一段是对private修饰成员的存取器,用于从外部对内部private的成员进行操作,一般为设置(改变)和获取(返回)二者搭配使用操作一个变量。命名为set/get + 变量名。(某些 IDE可以一键生成)

你可能感兴趣的:(#,面向对象程序设计导论)