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

yizhihongxing

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日

相关文章

  • java单例模式学习示例

    Java单例模式学习示例 什么是单例模式 单例模式是一种常见的软件设计模式,他的作用是让一个类只有一个实例,并且可以全局访问此实例。 为什么要使用单例模式 在某些场景下,我们需要保证某个类只有一个实例。例如,一个线程池中只需要一个实例。如果有多个实例,那么就会出现线程池无法协同工作的情况。还有,一部分API是基于单例模式的,例如JDBC。 如何实现单例模式 …

    other 2023年6月27日
    00
  • C语言数据结构之栈与队列的相互实现

    C语言数据结构之栈与队列的相互实现 一、栈(Stack)的介绍 1.1 栈的定义 栈(Stack)是一种特殊的线性表,只能在表的一端插入和删除元素,这一端被称为栈顶,另一端被称为栈底。栈是一种后进先出(LIFO, Last In First Out)的数据结构。栈的插入操作叫做入栈(push),删除操作叫做出栈(pop)。 1.2 栈的实现 栈可以用数组或链…

    other 2023年6月27日
    00
  • PHP的基本常识小结

    PHP的基本常识小结 1. 什么是PHP? PHP(全称:Hypertext Preprocessor)是一种通用的开源脚本语言,特别适用于Web开发。它可以嵌入到HTML中,通过服务器端解析执行,生成动态的网页内容。 2. PHP的特点 易于学习和使用:PHP语法简单,与C、Java等语言相似,容易上手。 跨平台性:PHP可以在多个操作系统上运行,如Win…

    other 2023年8月20日
    00
  • ASP.NET防止页面刷新的两种解决方法小结

    我将为你详细讲解“ASP.NET防止页面刷新的两种解决方法小结”的完整攻略。 什么是页面刷新 页面刷新指的是用户在浏览器上通过刷新按钮或者F5键等方式重新加载页面,导致页面重新从服务器端获取数据并重新渲染页面的过程。 防止页面刷新的两种解决方法 1.使用AJAX技术 AJAX即异步JavaScript和XML技术,通过使用AJAX技术可以实现无需页面刷新的异…

    other 2023年6月27日
    00
  • iPadOS13.1.2固件下载地址 iPadOS13.1.2下载

    iPadOS 13.1.2固件下载攻略 iPadOS 13.1.2是苹果公司最新发布的操作系统版本,它带来了一些修复和改进。如果你想下载并安装这个固件,下面是一个详细的攻略。 步骤一:备份你的iPad 在开始下载和安装新的固件之前,强烈建议你先备份你的iPad。这样可以确保你的数据在升级过程中不会丢失。你可以通过iCloud或iTunes进行备份。 步骤二:…

    other 2023年8月4日
    00
  • 使用vite搭建ssr活动页架构的实现

    搭建SSR(Server-Side Rendering)活动页架构的实现,可以使用Vite来实现。 确定项目目录和安装依赖 首先,创建项目文件夹,并使用npm或yarn初始化项目。然后安装以下依赖: npm install vite vue vue-server-renderer express 或者 yarn add vite vue vue-server…

    other 2023年6月27日
    00
  • 微信小程序全局变量功能与用法详解

    微信小程序全局变量功能与用法详解 微信小程序提供了全局变量功能,使开发者能够在小程序的不同页面之间共享数据。全局变量可以存储和访问在小程序中需要在多个页面之间共享的数据,例如用户信息、登录状态等。 设置全局变量 要设置全局变量,可以使用getApp()方法获取小程序实例,并在实例上定义全局变量。以下是设置全局变量的示例代码: // 在app.js中设置全局变…

    other 2023年7月28日
    00
  • Android自定义View验证码输入框

    针对“Android自定义View验证码输入框”的完整攻略,我将分成以下几个部分进行介绍: 需求分析 自定义View开发流程 实现一个基础验证码输入框 扩展功能:自定义背景、字体、光标等 扩展功能:支持设置输入框数量及间隔 结合示例讲解使用方法 接下来,我将针对以上内容进行详细说明。 一、需求分析:我们需要实现一个能够输入验证码的控件,其具备以下基本功能: …

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