Java教程

java三大特性之封装

本文主要是介绍java三大特性之封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java三大特性之封装

封装的概念

什么是封装呢?封装是指将类的某些信息隐藏在类的内部,不允许外部程序直接访问,
通过该类提供的方法来实现对隐藏信息的操作和访问
也就是说,封装是指,将实体特征的类、方法、属性隐藏起来,对象与外界仅通过公共方法进行交流。

这么做有什么好处呢?

这样可以提高程序的可靠性、安全性,改善程序的可维护性。
总结起来就是两点:
1.只能通过规定的方法来访问数据。
2.隐藏类的实例细节,方便修改和实现

封装的操作

封装的操作:封装的三步走:

第一步,定义属性、方法、类的可见性

Java 提供 public、protected、private、默认等 4 种访问
控制符,在类、成员变量、成员方法的前面均可以使用访问控制符关键字,没有显式使用的为默认控制类型。

这四种修饰符详解如下:

  • public 访问权限最具有开放性,可以用来修饰类、类与接口的成员(包括成员变量、 成员方法)。由 public
    类修饰的类或类成员可被任何类访问,他们既可以位于同一个包中,也可以位于不同包中。修饰为 public
    的类可以被其他任何类及成员方法访问和引用。Java文件名应与修饰为 public 的类名相同。修饰为 public
    的类成员变量或方法,可以在其他类中无限制地访问该成员。

  • protected 可以用来修饰类的成员变量或方法。具有 protected
    访问特性的类成员可以被本类、本包中的其他类访问,也可以被其他包中的子类继承,它的可访问性低于 public,高于默认。

  • 如果在定义类、接口、成员变量、成员方法时没有指定访问权限控制符,他们的权限
    就为默认权限。具有默认权限的类、接口、成员变量、成员方法,只能被本类和同一个包中的其他类、接口及成员方法引用,因此默认权限也被称为包权限。

  • 私有访问控制符 private 用来声明类的私有成员,它提供了最高的保护级别。用
    private修饰的成员变量或方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类)来获取和引用。
    需要注意的是:为了保证数据的隐藏性和安全性,不建议把所有的成员变量或方法全部设置为 public,通常只将公共类或公共接口的成员方法指定为 public。

在这里插入图片描述
结构我们用实例来说明:

//用private修饰
private int id;
//省略修饰
String title;
//protected修饰
protected int master;
//public修饰
public String content;

这就是修饰符修饰属性的结构,下面我们以private为例举例修饰符修饰方法时的结构:

//该方法为打印传入的字符串
private void printThisChar(String string){
        System.out.println(string);
}
/*其他修饰符结构也相同,
将private改为其他修饰符即可*/

这样就可以实现可见性的控制

第二步,编写getter、setter方法

getter,setter方法用于对属性的读写,我们还是用实例来看看这种方法的结构

//getter方法获取属性数据
public int getId() {
        return id;
}
//用setter方法写入,编辑对象属性
public void setId(int id) {
        this.id = id;
}

这样我们就写好了getter和setter方法
接下来我们还是用实例来说明引用的结构用法

//创建student对象
Student student = new Student();
//编辑对象ID属性
student.setId(10);
//获取ID属性,并接受
int ID = student.getId();
//打印ID
System.out.println(ID);

运行结果是10.

当然,如果该属性不需要对其他区域使用的话,getter,setter方法也就不需要写了。
其实,如果使用idea或者eclipse等工具的话,是没有必要一个字母一个字母敲,它们可以帮助我们直接写出方法,我们以idea为例来说一下步骤:
首先,准备好你要生成getter和setter方法的属性,然后按下Alt + Insert,就会弹出一个窗口

请添加图片描述

我们选择点击Getter and Setter,当然,如果只想写其中一个的话,也可以选择一个。这样又弹出来一个窗口,
请添加图片描述
我们选择要创建方法的属性(可以多选),点击OK,就OK了。

请添加图片描述
当然,如果不满意自动写成的方法的话,自己可以修改。
除此之外,在空白的地方点击右键,选择点击Generate,然后就和上面的步骤一样了。

请添加图片描述

第三步,在getter、setter方法中添加属性控制语句。

getter方法和setter方法还有一个很大的功能就是能够对用户传入读取的数据进行筛选,有效地控制类型,进一步降低异常出现的几率。,我们以实例代码来说明

//如果1-100为合法id,能够正常输入,否则抛出异常
public void setId(int id) {
	if (id > 100 || id < 1){
    		throw new RuntimeException("ID范围不合法");
	}
	this.id = id;
}
//getter方法也可以这样使用43

这样我们就可以更加准确的控制用户的行为,避免出现漏洞。

这篇关于java三大特性之封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!