Java基础教程之封装与接口

yizhihongxing

Java基础教程之封装与接口

封装

封装是指隐藏对象的属性和实现细节,仅对外暴露有限的接口,控制外部访问对象内部的能力。Java中,封装是通过访问控制来实现的。

访问控制符

Java中有四种访问控制符,分别是public、protected、default、private,它们的访问权限从大到小排列。

  • public:不受限制,任何地方都可以访问。
  • protected:同一包内和子类可以访问。
  • default:同一包内可以访问。
  • private:仅类内部可以访问。

示例代码

public class Person {
    private String name;    // 私有化属性name
    private int age;        // 私有化属性age

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

    public void setName(String name) {  // 提供公有set方法,用于修改name属性
        this.name = name;
    }

    public String getName() {   // 提供公有get方法,用于获取name属性
        return name;
    }

    public void setAge(int age) {   // 提供公有set方法,用于修改age属性
        this.age = age;
    }

    public int getAge() {   // 提供公有get方法,用于获取age属性
        return age;
    }
}

在上面的例子中,我们将Person类中的name和age属性私有化,防止外部直接访问。然后提供了公有的set和get方法让外部可以修改和获取属性值,这样就增加了对内部实现的控制,同时也方便了外部的使用。

接口

接口是一种抽象的类型,它定义了一组方法(没有实现),但是没有属性。接口可以被类实现,实现类必须实现接口中的所有方法。接口的作用是定义一种规范,不同的类可以实现相同的接口,使得它们具备了相似的行为模式。

示例代码

interface Flyable {
    void fly();
}

class Plane implements Flyable {
    public void fly() {
        System.out.println("Plane is flying.");
    }
}

class Bird implements Flyable {
    public void fly() {
        System.out.println("Bird is flying.");
    }
}

public class Test {
    public static void main(String[] args) {
        Flyable flyable1 = new Plane();
        Flyable flyable2 = new Bird();

        flyable1.fly();
        flyable2.fly();
    }
}

在上面的例子中,定义了一个接口Flyable,该接口定义了一个方法fly。然后定义了两个实现类Plane和Bird,它们都实现了接口Flyable中的方法fly。最后在Test类中,我们创建了Plane和Bird的实例,并向上转型为Flyable类型,然后调用了fly方法。这样就可以实现了不同类之间相同方法的调用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础教程之封装与接口 - Python技术站

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

相关文章

  • uaf漏洞学习

    以下是UAF(Use-After-Free)漏洞学习的完整攻略: 步骤1:了解UAF漏洞 在学习UAF漏洞之前,需要了解UAF漏洞的基本概念和原理。UAF洞通常发生在程序释放了一个对象的内存空间后,但仍然继续使用该内存空间。攻击者可以利用UAF漏洞来执行任意代码或者导致程序崩溃。UAF漏洞的修复通常需要程序员正确地管理内存空间,避免重复释放或者使用已经释放的…

    other 2023年5月6日
    00
  • linux信号机制

    Linux信号机制 什么是信号 在Linux系统中,信号是一种软中断,它会在进程之间传递。当进程接收到一个信号时,它就会停止正在执行的工作,切换到信号处理函数执行,等待信号处理完成后再返回到原来的进程继续执行。 信号的种类 Linux系统中的信号种类非常多,但是其中比较常见的信号有以下几种: SIGINT: 当用户按下”Ctrl+C”时会向进程发送这个信号,…

    其他 2023年3月28日
    00
  • Java基础之类型封装器示例

    Java基础之类型封装器示例 在Java中,有8种基本数据类型,它们是:byte、short、int、long、float、double、char和boolean。这些基本类型都有对应的封装类,称作“包装器类”,它们分别为:Byte、Short、Integer、Long、Float、Double、Character和Boolean。这些包装器类通常用于实现泛…

    other 2023年6月25日
    00
  • 【java】对象赋值给另一个对象

    在Java中,对象赋值给另一个对象可以通过引用传递来实现。以下是一个完整攻略,介绍了Java中对象赋值的过程和示例。 步骤1:创建一个Java类 首先我们需要创建一个Java类,用于演示对象赋值的过程。以下是一个示例: public class Person { private String name; private int age; public Per…

    other 2023年5月6日
    00
  • matplotlib.pyplot.plot详解

    matplotlib.pyplot.plot详解 在数据可视化领域中,matplotlib库是一个非常重要的工具。而其中最重要的一个模块就是pyplot,它提供了非常强大的绘图功能。plot函数则是其中最为基础和实用的函数之一,可以实现各种各样的数据可视化效果。这篇文章将带你深入了解plot函数的用法和技巧。 简要介绍 plot函数的主要参数有x轴数据,y轴…

    其他 2023年3月28日
    00
  • Win10重置后出现inaccessible boot device提示 Win10进系统无限重启解决办法

    Win10重置后出现inaccessible boot device提示 如果您在重置Windows 10操作系统后发现出现了“Inaccessible Boot Device”提示,这可能是由于系统某些关键文件已经损坏或丢失导致的。不用担心,下面是一些解决方法。 方法1:使用“自动修复” 启动Windows 10,并进入“高级选项”页面。 选择“故障排除”…

    other 2023年6月27日
    00
  • css样式的优先级究竟庞杂到什么程度

    标题:CSS样式的优先级完整攻略 1. 优先级的概念 在CSS中,样式的优先级决定了多个样式规则之间的应用顺序。当同一个元素有多个样式规则时,优先级规则帮助确定哪些样式会被应用在元素上。 2. 优先级的计算规则 下面是计算优先级的规则,按照顺序依次比较: 2.1. 选择器的特殊性(Specificity) 特殊性指的是选择器的权重,权重越高,优先级别越高。计…

    other 2023年6月28日
    00
  • Java中缀表达式转后缀表达式流程详解

    Java中缀表达式转后缀表达式流程详解 在Java中,我们可以使用栈来将中缀表达式转换为后缀表达式。下面是详细的转换过程: 创建一个空栈和一个空字符串,用于存储后缀表达式。 从左到右遍历中缀表达式的每个字符。 如果当前字符是操作数(数字或变量),则将其添加到后缀表达式字符串中。 如果当前字符是左括号\”(\”,则将其压入栈中。 如果当前字符是右括号\”)\”…

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