java 中的封装介绍及使用方法

Java中的封装介绍及使用方法

封装是面向对象思想中的三大特性之一,它指的是将一个对象的属性和方法组合成一个有机的整体,并尽可能地隐藏内部细节,从而实现对外提供接口,使得对象更加安全、稳定和易于使用。

在Java中,封装通常建立在以下几个关键字上:public、private、protected以及default(缺省)。

public关键字

public关键字是Java中最常见的访问修饰符,它可以将类、成员变量、方法等“公开”给其他类或程序访问,是最宽松的一种访问权限。

例如,我们可以定义一个public方法getX(),使得其他类可以获取当前对象的x属性值。

public int getX() {
    return x;
}

private关键字

private关键字则是最严格的访问修饰符,它只能在当前类中被访问,外部的类和程序无法访问到它。

例如,我们可以定义一个private方法isLegal(),它只能在当前类中被使用,外部无法调用它。

private boolean isLegal(String idCard) {
    // 校验身份证号是否合法
    // ...
}

protected关键字

protected关键字和private关键字类似,也是只能在当前类中和当前类的子类中被访问,但它在外部程序中也可以通过子类的对象进行访问。

例如,我们可以定义一个protected成员变量name,它只能在当前类和子类中被访问。

protected String name;

default关键字

default关键字也叫缺省访问级别,它表示当前成员变量或方法没有指定任何访问修饰符,只能在同一包内被访问。

例如,我们可以定义一个默认的无参构造函数,它只能在同一包内的其他类中被访问。

Person() {
    // 默认的无参构造函数
}

封装的示例

以下是一个封装的示例,定义了一个Person类,包含姓名、年龄和身份证号三个属性,并提供了相应的getter和setter方法。

public class Person {
    private String name;
    private int age;
    private String idCard;

    public Person(String name, int age, String idCard) {
        this.name = name;
        this.age = age;
        this.idCard = idCard;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
}

在另一个类中,我们可以创建一个Person对象,并通过getter和setter方法访问它的属性。

public class Main {
    public static void main(String[] args) {
        Person person = new Person("张三", 20, "110101199001011234");
        System.out.println(person.getName()); // 输出:张三
        System.out.println(person.getAge()); // 输出:20

        person.setAge(21);
        System.out.println(person.getAge()); // 输出:21
    }
}

以上就是Java中封装的介绍及使用方法的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 中的封装介绍及使用方法 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • js保留整数

    当然,我很乐意为您提供有关“JavaScript保留整数”的完整攻略。以下是详细的步骤和两个示例: 1 JavaScript保留整数 JavaScript中,可以使用Math对象的方法来保留整数。以下是两种方法: 1.1 使用Math.floor方法 可以使用Math.floor方法将数字向下取整为最接近的整数。例如: let num = 3.14159; …

    other 2023年5月6日
    00
  • Python基本数据结构与用法详解【列表、元组、集合、字典】

    Python基本数据结构与用法详解【列表、元组、集合、字典】 Python是一种动态、面向对象、解释型脚本语言,广泛应用于爬虫、数据分析、Web开发等领域。掌握Python基本数据结构和用法是入门Python的必学内容,本文将详细讲解Python的列表、元组、集合、字典四种基本数据结构的概念、特点、用法及示例。 列表 列表(List)是Python中最常用的…

    other 2023年6月27日
    00
  • Java类加载基本过程详细介绍

    Java类加载是指将class文件从磁盘加载到内存中,并将其转换为Java虚拟机(JVM)内部的数据结构,以便在程序运行时使用。Java类加载包括三个步骤:加载、连接和初始化。下面详细介绍每个步骤的具体过程。 加载 类加载的第一步是加载,其主要目的是通过类的全名查找该类的二进制字节流。在Java中,实现类的加载主要有两种方式: 类路径(ClassPath)加…

    other 2023年6月25日
    00
  • Redis如何实现数据库读写分离详解

    以下是关于Redis如何实现数据库读写分离的完整攻略,包含两个示例说明: 1. 配置主从复制 在Redis的配置文件中,设置主服务器和从服务器的相关配置。 示例说明: # 主服务器配置 bind 127.0.0.1 port 6379 # 从服务器配置 slaveof 127.0.0.1 6379 2. 使用读写分离代理 使用读写分离代理工具,如Twempr…

    other 2023年10月19日
    00
  • 如何使用TS对axios的进行简单封装

    下面我将详细讲解如何使用 TypeScript 对 Axios 进行简单封装。 第一步:安装依赖 我们首先需要安装 axios 和 @types/axios 两个依赖。 @types/axios 是对 axios 这个库的 TypeScript 类型定义文件,我们使用 TypeScript 的时候需要依赖。 npm install axios @types/…

    other 2023年6月25日
    00
  • KMP算法最浅显理解(小白教程)

    KMP算法最浅显理解(小白教程) 什么是KMP算法? KMP算法(Knuth-Morris-Pratt算法)是一种字符串匹配算法,用于在一个主串中查找一个模式串的出现位置。与朴素的字符串匹配算法相比,KMP算法具有更高的效率。 KMP算法的基本思想 KMP算法的基本思想是利用已经匹配过的部分信息,避免不必要的回溯。它通过构建一个部分匹配表(Partial M…

    other 2023年8月6日
    00
  • win2003 补丁 iis 应用程序池 无法启动 进程退出代码是 0xffffffff

    这个问题的解决需要细致地分析和排查,下面是可能的解决方案: 1. 确认IIS相关组件是否安装 在Windows 2003系统中,IIS是作为一个Windows组件来安装的,所以首先需要确认IIS组件是否正常安装。可以在控制面板的“添加或删除程序”->“添加/删除Windows组件”中找到IIS组件,确保它被正确安装。如果没有安装,则需要重新安装IIS或…

    other 2023年6月25日
    00
  • C语言中建立和删除文件连接的相关函数讲解

    下面就是详细讲解”C语言中建立和删除文件连接的相关函数讲解”的攻略。 什么是文件连接? 在C语言中,文件连接是一种允许文件名指向另一个文件的机制。文件连接有时也被称为文件硬链接,是通过一种名为inode的数据结构进行实现的。每个文件都有一个独特的inode,它存储了文件的元数据,如所有者,权限,时间戳和文件大小等。一个文件连接具有相同的inode和文件权限,…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部