【Android逆向】Java基础(五)掌握封装进行实操

上一篇文章点此观看
下一篇文章【Java基础继承与多态】

封 装

继承、封装、多态、抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为JAVA中的所有程序都写在类中的,类也能当做一种封装。

1.1 封装的介绍

1.封装的概念
封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。适当封装可以让程式码更容易理解和维护,加强程式码的安全性。
2.封装的作用:
(1)隐藏实现的细节。
(2)增加代码的复用性,对模块的任何实现细节所作的更改,不会影响使用该模块的代码。
(2)安全性。防止用户意外修改数据。
(3)模块化。使模块易于使用和维护。

1.2 Java封装访问权限控制

1.访问权限控制是具体实现的隐藏,是封装性的部分体现。它有4种访问权限:包访问权限,public,protected和private。
在这里插入图片描述
private(当前类访问权限):被修饰的成员只能在该类的内部被访问。
包访问权限:包访问权限就是没有任何修饰符所修饰,缺省的成员可以被同一个包中的其他类所访问,关于包的概念,之后再提。
Protected(子类访问权限):被修饰的成员既可以被同一个包中的其他类访问,也可以被不同包中的子类所访问。关于子类和父类之后将会总结。
public(公共访问权限) :被修饰的成员可以被其他所有类访问,不论是否在同一包,不论是否具有继承关系。

位置privatedefaultprotectedpublic
同一个类
同一个包内的类
不同包内的类
不同包且不是子类

8.3 包(package)
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
1.包的意义:
(1)把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
(2)如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
(3)包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
2.包的语法格式:package 包名.包名.包名…]];
3.包的创建:
(1)包名可以是一个合法的标识符,也可以是由若干个标识符通过"." 连接而成。
(2)包的命名规则为:包名称的元素全部小写。
(3)该语句是Java 源文件的第一条语句,并且只能有一个。
4.包的导入
当一个类使用与自己同在一个包中的类时,直接访问即可。如果要使用其他包中的类,就需要对其导入,即import 语句,有以下两种方法引用包中的类:
import 包名.*; //表示将该包名下的所有类都导入当前程序中
import 包名.类名; //表示将该包名下的某一类导入当前程序中
8.4 封装的实现
1.字段封装的实现:
(1)修改字段的可见性来限制对字段的访问,也就是加上private修饰。
(2)为每个字段创建一对赋值(setter)方法和取值 (getter)方法,用于公开对这些字段的访问接口。
(3)在setter和getter方法中,根据需要加入对字段操作的限制。
(4)案例,如下所示:
在这里插入图片描述
2.方法封装的实现:
(1)隐藏方法实现细节(方法体),向外部提供公开接口。
(2)案例,如下所示:
在这里插入图片描述8.5 构造方法
1.类的构造方法概念和作用:
(1)构造方法负责对象初始化工作,为对象的属性赋合适的初始值。
(2)创建对象时,其类的构造方法确保:在用户操作对象之前,系统保证初始化的进行。
2.构造方法的语法规则:
(1)构造方法名与类名相同。
(2)没有返回类型。
(3)方法实现主要为字段赋初值。
3.构造方法的调用:
(1)构造方法的调用很特别:new操作符(返回新建实例的引用)。
(2)案例如下所示:
在这里插入图片描述
8.6 this关键字
1.this关键字的特点:
(1)在类的方法中使用的this关键字代表的是调用此方法对象的引用。
(2)this可以看作是一个变量,它的值是当前对象的引用。
(3)使用this可以处理方法中的成员变量和形参同名的问题。
(4)当在方法内需要用到调用该方法的对象时,就可以用this。
(5)在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法。
2.案例:
在这里插入图片描述8.7 static关键字
1.static关键字的特点:
(1)用来修饰类的成员—修饰成员变量的称之为类变量(静态变量),修饰成员方法的称之为类方法(静态方法)。
(2)当类被加载的时候就会被加载,优先于对象的存在。
(3)用来修饰语句块—称之为静态代码块。先于构造方法之前执行,只会执行一次,用来对静态成员做初始化。
(4)静态修饰的成员被所有的对象共享。
(5)调用的时候可以直接通过类名.成员来进行访问。
2.案例:
在这里插入图片描述
注意
①静态方法中只能访问外部的静态成员。
②静态方法中不能出现this 关键字。
1.8 方法重载

多数程序设计语言要求为每个方法(函数)提供一个独一无二的方法名,不存在方法重载的概念。在Java中,规定方法签名是解析方法的规则而不是方法名,为方法重载开创了条件。方法重载使得在一个类中,方法名相同而参数列表不同的方法可同时存在,代表相似的行为或功能。
重载(overload):同一类中,同名不同参的方法称为重载方法。
注意
仅有返回类型不同的方法不能称为重载,即方法重载必须与方法签名不同。

案例:
在这里插入图片描述
通过本次的学习,我们掌握了封装的概念—私有化成员,提供专属的方法访问,构造的方法—负责对象初始化,并给对象的属性赋初始值,以及this关键字-用于调用该类对象。static关键字-被修饰的成员随类的加载而加载,优先于对象,包(package)-为了防止混乱而制定出的规则。
安卓逆向交流学习:
vx:yijin1108an

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值