Java 封装

一、前言

封装是 Java 面向对象编程的重要特性之一,作用是将对象的属性和行为封装在一起,同时限制对这些属性和操作的访问权限,只通过特定的方法来进行访问和修改。

主要优点包括:

  • 信息隐藏:通过将属性私有化,并提供公共的访问方法,可以隐藏内部的实现细节,防止外部代码直接访问和修改对象的内部状态,从而提高了代码的安全性和稳定性。例如:一个表示银行账户的类,将账户余额私有化,只提供存款和取款的方法来操作余额。

  • 提高代码的可维护性和可扩展性:当内部实现需要修改时,只需要修改封装的方法,而不需要修改使用该对象的外部代码。例如:修改计算账户利息的方法,外部调用该方法的代码无需变动。

  • 增强代码的可读性和易用性:外部代码只需要关注公共的方法,而不需要了解内部复杂的实现细节。


二、实现步骤

public class Student {
    // 属性
    private String name;
    private int age;

    // get()/set() 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age < 0) {
            System.out.println("年龄不能为负数");
            return;
        }
        this.age = age;
    }
}

this 关键字是为了解决 成员变量局部变量之间发生的同名的冲突。

在上述示例中,nameage 被声明为私有属性,通过 getNamesetNamegetAgesetAge 方法来进行访问和修改,实现了封装。


三、测试样例

public class Main {
    public static void main(String[] args) {
        // 创建对象
        Student student = new Student();

        // 设置属性
        student.setName("张三");
        student.setAge(-18);

        // 打印对象
        System.out.println(student);
    }
}

运行结果:

年龄不能为负数
姓名:张三
年龄:0

在上述示例中,setAge() 方法在底层判断了年龄不能为负数,这样就能过滤掉一些非法数据,提高了代码的可维护性和可扩展性。


  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java中的封装是一种面向对象编程的重要概念,用于隐藏类的内部细节,并提供公共接口以便其他类可以使用。封装可以保证数据的安全性和一致性,并且可以使代码更易于维护。 Java中的封装通常通过访问修饰符来实现,其中public、protected、private是三个最常用的访问修饰符。public表示该成员可以被任何类访问,protected表示该成员可以被同一个包中的类和继承该类的子类访问,private表示该成员只能被该类的方法访问。 封装的主要思路是将类的数据成员设置为私有,然后通过公共的方法提供访问这些私有成员的接口。这些公共方法通常被称为getter和setter方法,其中getter方法用于获取类的私有成员变量的值,setter方法用于修改类的私有成员变量的值。 以下是一个简单的Java类的封装示例: ``` public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age >= 0 && age <= 120) { this.age = age; } else { System.out.println("Invalid age!"); } } } ``` 在上面的代码中,name和age被设置为私有成员变量,只能通过公共的getter和setter方法进行访问。setName和setAge方法包含一些条件判断,以确保输入的值是有效的。这种封装可以防止类的数据被错误地修改,并提供了更好的代码可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生派蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值