java面向对象基本特征 --- 封装

本文介绍了Java面向对象编程中的封装概念,通过访问修饰符(Public、Protected、Default、Private)控制属性和方法的访问权限,以及如何使用Get和Set方法操作私有属性。封装有助于提高代码的可维护性和安全性。
摘要由CSDN通过智能技术生成

java面向对象基本特征 — 封装

封装

封装 就是对一些属性、方法通过一个类进行封装,把要进行的一些操作通过封装的形式放在一个方法中,这个过程就叫做封装;通俗的讲:封装就相当于一个书包(这个书包就叫做书包类),书包里面有很多笔和书(也就是你需要进行的一些操作),然后我们通过文具盒把笔放在一个文具盒里面,其余的书放在其他空间里面,这个的方式就类似于java里面的封装。

访问修饰符

在封装的基础上,我们需要进行对你的具体内容进行限定(限制)。
访问修饰符就类似于手机里面加密的应用和不加密的应用,它们的权限不一样,加密的就是不能随便打开的,在java里面就可以通过添加访问修饰符来对他们进行修饰。
四个访问修饰符:
Public: 公共的访问修饰符;
**Protected:**受保护的访问修饰符,它比public弱一点;
**Default(默认)**默认的访问修饰符,它又比protected弱一点;
Private:私有的访问修饰符,访问的权限最低。
以上四个访问修饰符就可以对 类,属性,方法进行不同的修饰。
在修饰类的时候,Protected,Private只能修饰
内部类

在这里插入图片描述

通过上面对表格的理解,下面我用纯代码演示给大家看:

public

public 是公有的,只要在同一个项目中都能拿到。

Protected(受保护的)

受保护的类它只能修饰你的内部类;但它依然可以修饰你的属性和方法,
它在不同包下的不同类无法取到它的数据,如果在同包下的类存在继承关系,那么它的子类就可以取到;

//这里是受保护的访问修饰符
class Encapsulation {
//    修饰属性
    protected int id;
    protected  String name;
//    修饰方法
    void show(){
        System.out.println("这里的是受保护类,这是我们的两个属性:"+this.name+"\t"+this.id);
        show();
    }
}

上面这张图忘加了public 来修饰,但是它的实现效果是一样的,并不冲突。

public class Test {
    public static void main(String[] args) {
        Encapsulation encapsulation = new Encapsulation();
        encapsulation.id = 1;
        encapsulation.name = "玛卡巴卡";
        encapsulation.show();
    }
}

实现效果:
在这里插入图片描述
在这里插入图片描述

Default(默认)

//这里是默认的属性和方法
class Encapsulation {
//    修饰属性
    int id;
    String name;
//    修饰方法
    void show(){
        System.out.println("这里的是默认类,这是我们的两个属性:"+this.name+"\t"+this.id);
    }


}


public class Test {
    public static void main(String[] args) {
        Encapsulation encapsulation = new Encapsulation();
        encapsulation.id = 001;
        encapsulation.name = "玛卡巴卡";
    }
}

这里使用的是默认属性来修饰它的类和方法:
在这里插入图片描述

下面是在同一个包下的不同类(测试类)里面,可以拿到它的属性和方法:
在这里插入图片描述

Private(私有的)

修饰的类必须是内部类;不可以直接写在普通类上,只要是使用了私有化属性的,就只能在当前类里面使用;
那么在这里就说一下类里面被私有化属性,怎么来调用它们呢?
请看一下操作:

Get 和 Set方法

在对私有化属性操作时,我们需要在当前类里面生成他们的Get和Set方法,
在这里插入图片描述
在这里插入图片描述

get方法

用来读取对象的值,并返回该值。通常都是以get开头,后面的属性值会使用驼峰命名法get+属性名(首字母大写),例如:getName()。

public  class Encapsulation {
//    私有化属性
    private int id;
    private   String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

这里的 Encapsulation类里面的 id和name 都是私有化的,在此类的外部是无法访问的,所以就可以生成它们的get方法 来对其进行访问,get是读取属性的值。

set方法

是用来设置属性的值;同调用set跟上后面的属性值(首字母大写)它会接收你需要对属性添加的参数,也就是你需要对这个属性设置的值。

public  class Encapsulation {
//    私有化属性
    private int id;
    private   String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

这里的 Encapsulation类里面的 id和name 都是私有化的,在此类的外部是无法访问的,所以就可以生成它们的Set方法 来对其进行属性值的设置,Set是设置属性的值。
下面是在调用属性值的操作:

public static void main(String[] args) {
        Encapsulation encapsulation = new Encapsulation();
        encapsulation.setId(2);
        encapsulation.setName("xiaoxiao");
        System.out.println(encapsulation.getId()+"\t"+encapsulation.getName());


    }

实现效果:
因为 get和set 的方法都是Public ,那么我们就可以用对象调到它的公共方法,再用公共方法去操作私有化属性值,我们就可以通过封装方法的方式对其进行操作,这就是它的过程啦。
在这里插入图片描述
get和set方法
好处包括以下几点:
get和set可以私有化对象的属性值,在使用封装方式对其操作,提高代码的封装性,防止其他代码直接访问它的属性值;
在需要对其进行添加或修改等操作时,只需要重新生成它的get和set方法,不需要操作其他代码。

今天的分享就到这里啦,小江会一直与大家一起努力,文章中如有不足之处,还请指出哦,感谢支持,持续更新中 ……

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值