Java封装

面向对象的三大特征:封装、继承、多态。封装在书面上来说,他无非就是set和get方法罢了。为什么要用到封装,比如买主机如果没有机箱只有内存条、CPU、主板等等那些零件买回到家,你还得一个个的去装那些零件要是不会装怎么办?就算把所有的零件全部装在一起了,要是不小心把水倒入机子了那就会坏掉,要是时间久了灰尘多了还会让机子死机。所以我们就得要有这个机箱要把里面的零件给保护起来这样才能不会不小心破坏掉里面的零件。

  我们在写一些类的时候,我们把属性全部写在外面没有把属性隐藏起来,就等于把一些信息写在了脸上别人就能够看出知道你的年龄体重爱好缺点还有一些信息都全部给别人看到了。

  我们不能把所有的东西都给显示出来,那样别人就知道了你的缺点是什么,所以说为什么要有封装,因为有了封装他能把重要的东西给保护隐藏起来,把有些可以让别人看到的东西给共享出来。

  封装是面向用户更简单(用户指的是程序员):把复杂的东西包装起来给用户使用更加的简单更加的方便。封装是面向属性更安全:把私有的属性都保护起来,不让别人修改内部的信息,不让别人去访问内部的信息。这才是为什么要有封装的目的。例题8.4图所示:

  图8.4

  有一个Dog类,有2个属性一个是name 一个是age然后new了对象,把name赋上了那么长的名字,那age赋值了那么大的年龄。但是狗有这么长的寿命吗?没有,但是他的赋值也很符合他的name属性和age属性。这就是公开的缺点,我们不能把所有的东西都给公开出来不能乱赋值。那么我们就要用封装,把这些name属性和age属性给封装起来给保护起来,不让他随意的去更改他。如图8.41所示:

  图8.41

  封装第一就是先把属性私有化private关键字就是私有的意思,他是不允许在外面调用,那么就要提供set方法然后把set方法的参数交给私有的属性,也就好比似拐了个弯。如果想得到name 那么就要使用get方法,return name; 把name返回出去。set是设置替换的意思,get是得到的意思。

  如果这个属性彻彻底底不让人家访问那么就拒绝提供set和get方法。如果这个属性仅仅只让人家得值那么就只需要提供get方法。如果这个属性只让人家设置值那么就只提供set方法。

  封装为什么要使用方法,原因是因为只有方法里面才可以写代码,所以要在方法里面设置值和得到值,只有他这里才可以写很多的代码可以做验证可以做判断判断他是否合要求,或者抛异常。例题8.42所示:

  图8.42

技术分享:www.kaige123.com

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的封装是一种面向对象编程的重要概念,用于隐藏类的内部细节,并提供公共接口以便其他类可以使用。封装可以保证数据的安全性和一致性,并且可以使代码更易于维护。 Java中的封装通常通过访问修饰符来实现,其中public、protected、private是三个最常用的访问修饰符。public表示该成员可以被任何类访问,protected表示该成员可以被同一个包中的类和继承该类的子类访问,private表示该成员只能被该类的方法访问。 封装的主要思路是将类的数据成员设置为私有,然后通过公共的方法提供访问这些私有成员的接口。这些公共方法通常被称为getter和setter方法,其中getter方法用于获取类的私有成员变量的值,setter方法用于修改类的私有成员变量的值。 以下是一个简单的Java类的封装示例: ``` public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age >= 0 && age <= 120) { this.age = age; } else { System.out.println("Invalid age!"); } } } ``` 在上面的代码中,name和age被设置为私有成员变量,只能通过公共的getter和setter方法进行访问。setName和setAge方法包含一些条件判断,以确保输入的值是有效的。这种封装可以防止类的数据被错误地修改,并提供了更好的代码可读性和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值