Java封装

封装概述
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点
1.隐藏实现细节,提供公共的访问方式
2.提高了代码的复用性
3.提高安全性。

Java封装实例

class Student{
    String name;
    private int age; //将age属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
    public void show(){
        System.out.println("名字: " + name);
        System.out.println("年龄: " + age);
    }
    public void getAge(int a){
    age = a;
    }
}

class StudentDemo{
    public static void main(String[] args){
        Student s = new Student();
        s.show();
        System.out.println("-------------------");
        //给成员变量赋值
        s.name = "李冰冰";
    //通过方法赋值
        s.getAge(27);
        s.show();

    }
}

private关键字
是一个权限修饰符,可以修饰成员变量和成员方法,被其修饰的成员只能在本类中被访问。

例1:不能访问私有的成员变量

class demo{
    int num = 10;
}

class PrivateDemo{
    public static void main(String[] args){
        demo d = new demo();
        System.out.println(d.num);
    }
}

输出结果:
C:\Users\Dell\Desktop\study>java PrivateDemo
10

class demo{
    private int num = 10;  //用private修饰
}

class PrivateDemo{
    public static void main(String[] args){
        demo d = new demo();
        //不能访问私有的成员方法
        System.out.println(d.num);
    }
}

输出结果:
C:\Users\Dell\Desktop\study>javac PrivateDemo.java
PrivateDemo.java:8: 错误: num可以在demo中访问private
System.out.println(d.num);
^
1 个错误
程序报错了,因为用了private关键字修饰,只能通过公共方式访问。

修改程序:

class demo{
    private int num = 10;  //用private修饰
    public void show(){
    System.out.println(num);
    }
}

class PrivateDemo{
    public static void main(String[] args){
        demo d = new demo();  //通过公共方式进行访问
        d.show();
    }
}

例2:不能访问私有的成员方法

class demo{
    private void method(){  //定义method成员方法
        System.out.println("method");
    }  

}

class PrivateDemo{
    public static void main(String[] args){
        demo d = new demo();  
        d.method();  //不能访问私有的成员方法
    }
}

程序会报错:
C:\Users\Dell\Desktop\study>javac PrivateDemo.java
PrivateDemo.java:11: 错误: method()可以在demo中访问private
d.method();
^
1 个错误

修改程序:

class demo{
    private void method(){  //定义method成员方法
        System.out.println("method");
    }
    public void function(){
        method();
    }

}

class PrivateDemo{
    public static void main(String[] args){
        demo d = new demo();
        d.function();
    }
}

你可能感兴趣的:(Java)