JavaSE基础语法--封装

Java是一门面向对象的语言。面向对象的三大特性:封装,继承,多态。封装到底是什么含义呢?通俗来讲就是屏蔽掉类的实现细节,对外提供接口让你调用。举个现实生活中的例子:

刚好618刚过,我因为需求换了一台电脑(旧电脑卡的飞起来经常死机)。拿到新电脑之后,我开机就能使用CPU,内存等功能,我插入键盘接口我就能使用键盘,我插入鼠标接口我就能使用我的鼠标。但是我并没有关心CPU是怎么工作的,我也没有关心键盘鼠标驱动的实现细节。我只是插入即可使用。这其实就是我们封装的思想--对内屏蔽细节,对外提供接口。


上面我们讲了封装的本质,那么我们一个在定义一个类的时候,类里有成员变量,成员方法。成员变量本质就是数据,成员方法本质就是功能实现。那么封装就是要讲数据和操作数据的方法进行有机的结合,隐藏对象的属性和细节,仅对外公开接口来和对象进行交互。具体怎么实现呢,这就涉及到一个权限问题了。

权限也叫访问修饰限定符,下图是权限表,图片截取网上:

缺省的意思就是在不加权限说明的时候,是有一个默认的权限,也就是default,但default不是一个权限关键字。只是默认的。而private,protected,public都是权限的关键字。

我们还要提到一个概念就是包。包其实可以理解为是一个文件夹。不同的文件夹很好的管理着不同的东西:JavaSE基础语法--封装_第1张图片

比如游戏的放在游戏文件夹,联系人放在联系人文件夹中。那么Java中,包的概念是一样的。为了方便管理我们写的类。分门别类的管理的这些文件夹就叫包。 举个例子就比好我们之前用的Arrays这个类。并不在我们的代码中实现。而我们想要使用就需要把这个包给导进来:

JavaSE基础语法--封装_第2张图片

有了包的概念就能理解上面图中的一些权限问题。


 我们看封装的具体实现:

JavaSE基础语法--封装_第3张图片

 我们更改了name的权限,发现类外访问是报红的。private权限只能类内访问。于是我们可以通过公共接口的手段实现,代码如下:

class Person{
    private String name;   //只有类内能访问,实现封装
    private int age;
    public  Person(String name,int age){
        this.name=name;
        this.age=age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class TestDemo {
    public static void main(String[] args) {
      Person person=new Person("郭志伟",2);
        System.out.println(person.getName()+" "+person.getAge());
        person.setName("伟大佬");
        System.out.println(person.getName()+" "+person.getAge());



    }
    }

输出结果如下:

JavaSE基础语法--封装_第4张图片

 代码较简单,仔细看看就明白了。这就是封装的思想。

 

 

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