java 封装是什么?

Python09

java 封装是什么?,第1张

什么是封装?

在定义类的时候,如果可以直接修改类中的字段那么就可能会出现以下的情况,age可以设置成1000,score可以设置为10000

所以就引出了封装的概念,那么什么是封装呢或者说封装可以实现那些目的

封装可以隐藏实现的细节

让使用者只能通过实现写好的访问方法来访问这些字段,这样一来我们只需要在这些方法中增加逻辑控制,限制对数据的不合理访问、

方便数据检查,有利于于保护对象信息的完整性

便于修改,提高代码的可维护性

为了实现良好的封装,需要从两个方面考虑

把字段(成员变量)和实现细节隐藏起来,不允许外部直接访问

把方法暴露出来,让方法控制这些成员变量进行安全的访问和操作

因此,封装就有两个含义:把该隐藏的隐藏起来,把该暴露的暴露出来。

封装是将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。\x0d\x0ajava封装类通过三个步骤实现:\x0d\x0a\x0d\x0a(1)修改属性的可见性,限制访问。\x0d\x0a(2)设置属性的读取方法。\x0d\x0a(3)在读取属性的方法中,添加对属性读取的限制。

Java的封装类型和原始类型的区别如下:\x0d\x0a1、基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。\x0d\x0aJava中的简单类型从概念上分为四种:实数、整数、字符、布尔值。但是有一点需要说明的是,Java里面只有八种原始类型,其列表如下:\x0d\x0a实数:double、float\x0d\x0a整数:byte、short、int、long\x0d\x0a字符:char\x0d\x0a布尔值:boolean\x0d\x0a2、封装类型就是java面向对象引入的数据类型,里面定义了一些常用的方法,是用new分配到堆内存上的。引入封装类型的主要目的是因为类能够提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其他的实用程序方法。Java为每个原始类型提供了封装类。\x0d\x0a1 、Boolean VS boolean\x0d\x0apublic final class Boolean extends Object implementsSerializable,Comparable\x0d\x0aBoolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 boolean时非常有用的其他一些常量和方法。\x0d\x0a2、 Byte VS byte\x0d\x0apublic final class Byte extends Number implements Comparable Byte类将基本类型 byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为 byte的字段。此外,该类还为 byte和 String的相互转换提供了几种方法,并提供了处理 byte时非常有用的其他一些常量和方法。\x0d\x0a3、 Character VS char\x0d\x0apublic final class Character extends Object implements Serializable, Comparable\x0d\x0aCharacter类在对象中包装一个基本类型char的值。\x0d\x0aCharacter类型的对象包含类型为char的单个字段。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。\x0d\x0a4 、Double VS double\x0d\x0apublic final class Double extends Number implements Comparable Double类在对象中包装了一个基本类型double的值。每个Double类型的对象都包含一个double类型的字段。此外,该类还提供了多个方法,可以将double转换为String,将String转换为double,还提供了其他一些处理double时有用的常量和方法。\x0d\x0a5、 Float VS float\x0d\x0apublic final class Float extends Number implements Comparable\x0d\x0aFloat类在对象中包装了一个float基本类型的值。Float类型的对象包含一个float类型的字段。此外,此类提供了几种方法,可在float类型和String类型之间互相转换,并且还提供了处理float类型时非常有用的其他一些常量和方法。\x0d\x0a6、 Integer VS int\x0d\x0apublic final class Integer extends Number implements Comparable\x0d\x0aInteger类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段。\x0d\x0a此外,该类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常有用的其他一些常量和方法。\x0d\x0a7 Long VS long\x0d\x0a\x0d\x0apublic final class Long extends Number implements Comparable\x0d\x0aLong类在对象中封装了基本类型long的值。每个Long类型的对象都包含一个long类型的字段。\x0d\x0a此外,该类提供了多个方法,可以将long转换为String,将String转换为long,除此之外,还提供了其他一些处理long时有用的常量和方法。\x0d\x0a8、 Short VS short\x0d\x0apublic final class Short extends Number implements Comparable\x0d\x0aShort类在对象中包装基本类型short的值。一个Short类型的对象只包含一个short类型的字段。另外,该类提供了多个方法,可以将short转换为String,将String转换为short,同时还提供了其他一些处理short时有用的常量和方法。\x0d\x0a9、public final class Voidextends Object\x0d\x0aVoid 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。\x0d\x0a类的对象才能为null,不能把null赋值给一个变量不能,如int m=null但可以String s=null因为String是个类。