欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 封裝的使用詳解

 更新時間:2021年11月05日 10:19:45   作者:兮動人  
在面向對象程式設計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現細節(jié)部分包裝、隱藏起來的方法。封裝可以被認為是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問。要訪問該類的代碼和數據,必須通過嚴格的接口控制

1. 基本介紹

面向對象編程有三大特征:封裝、繼承和多態(tài)。

2. 封裝介紹

在這里插入圖片描述

3. 封裝的理解和好處

在這里插入圖片描述

4. 封裝的實現步驟 (三步)

在這里插入圖片描述

5. 快速入門案例

在這里插入圖片描述

package com.xdr630.encap;

public class Encapsulation01 {

    public static void main(String[] args) {

        Person person = new Person();
        person.setName("兮動人");
        person.setAge(1000);
        person.setSalary(30000);
        System.out.println(person.info());
        System.out.println(person.getSalary());

    }
}

class Person {
    public  String name; //名字公開
    private int age; //age 私有化
    private double salary; //..


    public String getName() {
        return name;
    }
    public void setName(String name) {
        //加入對數據的校驗,相當于增加了業(yè)務邏輯
        if(name.length() >= 2 && name.length() <=6 ) {
            this.name = name;
        }else {
            System.out.println("名字的長度不對,需要(2-6)個字符,默認名字");
            this.name = "無名人";
        }
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        //判斷
        if(age >= 1 && age <= 120) {//如果是合理范圍
            this.age = age;
        } else {
            System.out.println("你設置年齡不對,需要在 (1-120), 給默認年齡18 ");
            this.age = 18;//給一個默認年齡
        }
    }

    public double getSalary() {
        //可以這里增加對當前對象的權限判斷
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    //寫一個方法,返回屬性信息
    public String info() {
        return "信息為 name=" + name  + " age=" + age + " 薪水=" + salary;
    }
}

在這里插入圖片描述

在這里插入圖片描述

6. 將構造器和 setXxx 結合

在使用構造方法時,也同樣可以驗證,把 set 方法寫到構造器中,在上面的基礎上增加如下

		//如果我們自己使用構造器指定屬性
        Person person1 = new Person("云兮動人", 200, 10000);
        System.out.println("====兮動人的信息====");
        System.out.println(person1.info());

	//有三個屬性的構造器
    public Person(String name, int age, double salary) {
       /* this.name = name;
        this.age = age;
        this.salary = salary;*/
        //可以將 set 方法寫在構造器當中,這樣仍然可以驗證
        setName(name);
        setAge(age);
        setSalary(salary);
    }

在這里插入圖片描述

7. 練習

在這里插入圖片描述

public class Account {
    //為了封裝,將3個屬性設置為private
    private String name;
    private double balance;
    private String pwd;

    //提供兩個構造器
    public Account() {
    }

    public Account(String name, double balance, String pwd) {
        this.setName(name);
        this.setBalance(balance);
        this.setPwd(pwd);
    }

    public String getName() {
        return name;
    }

    //姓名(長度為2位3位或4位)
    public void setName(String name) {
        if (name.length() >= 2 && name.length() <= 4) {
            this.name = name;
        } else {
            System.out.println("姓名要求(長度為2位3位或4位),默認值 無名");
            this.name = "無名";
        }
    }

    public double getBalance() {
        return balance;
    }

    //余額(必須>20)
    public void setBalance(double balance) {
        if (balance > 20) {
            this.balance = balance;
        } else {
            System.out.println("余額(必須>20) 默認為0");
        }
    }

    public String getPwd() {
        return pwd;
    }

    //密碼(必須是六位)
    public void setPwd(String pwd) {
        if (pwd.length() == 6) {
            this.pwd = pwd;
        } else {
            System.out.println("密碼(必須是六位)默認密碼為 000000");
            this.pwd = "000000";
        }
    }
    //顯示賬號信息
    public void showInfo() {
        //可以增加權限的校驗
        System.out.println("賬號信息 name=" + name + " 余額=" + balance + " 密碼" + pwd);
//        if() {
//            System.out.println("賬號信息 name=" + name + " 余額=" + balance + " 密碼");
//        }else{
//            System.out.println("你無權查看...");
//        }
    }
}
public class TestAccount {
    public static void main(String[] args) {
        //創(chuàng)建Account
        Account account = new Account();
        account.setName("jack");
        account.setBalance(60);
        account.setPwd("123456");

        account.showInfo();
    }
}

在這里插入圖片描述

在這里插入圖片描述

到此這篇關于Java 封裝的使用詳解的文章就介紹到這了,更多相關Java 封裝內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springboot+mysql+mybatis實現控制臺打印sql

    springboot+mysql+mybatis實現控制臺打印sql

    在Spring Boot中使用MyBatis與MySQL,并希望在控制臺打印SQL語句,可以通過配置MyBatis的日志級別來實現,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • springboot無法跳轉頁面的問題解決方案

    springboot無法跳轉頁面的問題解決方案

    這篇文章主要介紹了springboot無法跳轉頁面的問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Springboot實現給前端返回一個tree結構方法

    Springboot實現給前端返回一個tree結構方法

    這篇文章主要介紹了SpringBoot返回給前端一個tree結構的實現示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 使用Spring Boot搭建Java web項目及開發(fā)過程圖文詳解

    使用Spring Boot搭建Java web項目及開發(fā)過程圖文詳解

    這篇文章主要介紹了使用Spring Boot搭建Java web項目及開發(fā)過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 淺談Java中static關鍵字的作用

    淺談Java中static關鍵字的作用

    這篇文章主要介紹了Java中static關鍵字的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • SpringBoot使用AOP記錄接口操作日志詳解

    SpringBoot使用AOP記錄接口操作日志詳解

    這篇文章主要為大家詳細介紹了SpringBoot使用AOP記錄接口操作日志,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java?HashMap詳解及實現原理

    Java?HashMap詳解及實現原理

    Java?HashMap是Java集合框架中最常用的實現Map接口的數據結構,它使用哈希表實現,允許null作為鍵和值,可以存儲不同類型的鍵值對,在Java中,HashMap被廣泛應用于各種場景,如緩存、數據庫連接池、路由器等,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-05-05
  • MyBatis-Plus如何關閉SQL日志打印詳解

    MyBatis-Plus如何關閉SQL日志打印詳解

    在使用mybatisplus進行開發(fā)時,日志是一個非常有用的工具,它可以幫助我們更好地了解和調試我們的代碼,這篇文章主要給大家介紹了關于MyBatis-Plus如何關閉SQL日志打印的相關資料,需要的朋友可以參考下
    2024-03-03
  • Mybatis Plus插件三種方式的逆向工程的使用

    Mybatis Plus插件三種方式的逆向工程的使用

    這篇文章主要介紹了Mybatis Plus插件三種方式的逆向工程的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Java文件操作實例詳解

    Java文件操作實例詳解

    這篇文章主要為大家詳細介紹了Java文件操作實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論