Java教程

Java 封装

Java封装是将代码和数据包装到一个单元中的 过程,用于例如,混合了几种药物的胶囊。
用Java封装
我们可以通过将类的所有数据成员设为私有来在Java中创建一个完全封装的类。现在,我们可以使用setter和getter方法来设置和获取其中的数据。
Java Bean 类是完全封装的类的示例。

Java封装的优势

通过仅提供setter或getter方法,您可以将类设置为 只读或只写。换句话说,您可以跳过getter或setter方法。
它为您提供了对数据的 控制。假设您要设置的id值仅应大于100,您可以在setter方法中编写逻辑。您可以编写逻辑以免在setter方法中存储负数。
这是在Java中实现 数据隐藏的一种方法,因为其他类将无法访问数据通过私有数据成员。
封装类 易于测试。因此,最好进行单元测试。
标准的IDE提供了生成吸气剂和吸气剂的设施。因此,用Java创建封装的类既轻松又快速。

Java封装的简单示例

让我们看看封装的简单示例,它的setter和getter方法只有一个字段。
文件: Student.java
//A Java class which is a fully encapsulated class.
//It has a private data member and getter and setter methods.package com.lidihuo;
public class Student{
    //private data memberprivate String name;
    //getter method for namepublic String getName(){
        return name;
    }
    //setter method for namepublic void setName(String name){
    this.name=name}
}
文件: Test.java
//A Java class to test the encapsulated class.package com.lidihuo;
class Test{
    public static void main(String[] args){
        //creating instance of the encapsulated classStudent s=new Student();
        //setting value in the name members.setName("vijay");
        //getting value of the name memberSystem.out.println(s.getName());
    }
}
Compile By: javac -d . Test.javaRun By: java com.lidihuo.Test
输出:
vijay

只读类

//A Java class which has only getter methods.public class Student{
    //private data memberprivate String college="AKG";
    //getter method for collegepublic String getCollege(){
        return college;
    }
}
现在,您不能更改学院数据成员" AKG"的值。
s.setCollege("KITE");
//will render compile time error

仅写类

//A Java class which has only setter methods.public class Student{
    //private data memberprivate String college;
    //getter method for collegepublic void setCollege(String college){
        this.college=college;
    }
}
现在,您无法获得学院的值,只能更改学院数据成员的值。
System.out.println(s.getCollege());
//Compile Time Error, because there is no such methodSystem.out.println(s.college);
//Compile Time Error, because the college data member is private.
//So, it cant be accessed from outside the class

另一个Java封装示例

让我们看一下另一个封装示例,该示例只有四个带有setter和getter方法的字段。
文件: Account.java
//A Account class which is a fully encapsulated class.
//It has a private data member and getter and setter methods.class Account {
    //private data membersprivate long acc_no;
    private String name,email;
    private float amount;
    //public getter and setter methodspublic long getAcc_no() {
        return acc_no;
    }
    public void setAcc_no(long acc_no) {
        this.acc_no = acc_no;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public float getAmount() {
        return amount;
    }
    public void setAmount(float amount) {
        this.amount = amount;
    }
}
文件: TestAccount.java
//A Java class to test the encapsulated class Account.public class TestEncapsulation {
    public static void main(String[] args) {
        //creating instance of Account class Account acc=new Account();
        //setting values through setter methods acc.setAcc_no(7560504000L);
        acc.setName("Sonoo Jaiswal");
        acc.setEmail("sonoojaiswal@lidihuo.com");
        acc.setAmount(500000f);
        //getting values through getter methods System.out.println(acc.getAcc_no()+" "+acc.getName()+" "+acc.getEmail()+" "+acc.getAmount());
    }
}
输出:
7560504000 Sonoo Jaiswal sonoojaiswal@lidihuo.com 500000.0
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4