Java 封裝的使用詳解
1. 基本介紹
面向?qū)ο缶幊逃腥筇卣鳎悍庋b、繼承和多態(tài)。
2. 封裝介紹

3. 封裝的理解和好處

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

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) {
//加入對數(shù)據(jù)的校驗,相當于增加了業(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() {
//可以這里增加對當前對象的權(quán)限判斷
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
//寫一個方法,返回屬性信息
public String info() {
return "信息為 name=" + name + " age=" + age + " 薪水=" + salary;
}
}


6. 將構(gòu)造器和 setXxx 結(jié)合
在使用構(gòu)造方法時,也同樣可以驗證,把 set 方法寫到構(gòu)造器中,在上面的基礎上增加如下
//如果我們自己使用構(gòu)造器指定屬性
Person person1 = new Person("云兮動人", 200, 10000);
System.out.println("====兮動人的信息====");
System.out.println(person1.info());
//有三個屬性的構(gòu)造器
public Person(String name, int age, double salary) {
/* this.name = name;
this.age = age;
this.salary = salary;*/
//可以將 set 方法寫在構(gòu)造器當中,這樣仍然可以驗證
setName(name);
setAge(age);
setSalary(salary);
}

7. 練習

public class Account {
//為了封裝,將3個屬性設置為private
private String name;
private double balance;
private String pwd;
//提供兩個構(gòu)造器
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() {
//可以增加權(quán)限的校驗
System.out.println("賬號信息 name=" + name + " 余額=" + balance + " 密碼" + pwd);
// if() {
// System.out.println("賬號信息 name=" + name + " 余額=" + balance + " 密碼");
// }else{
// System.out.println("你無權(quán)查看...");
// }
}
}
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();
}
}


到此這篇關(guān)于Java 封裝的使用詳解的文章就介紹到這了,更多相關(guān)Java 封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+mysql+mybatis實現(xiàn)控制臺打印sql
在Spring Boot中使用MyBatis與MySQL,并希望在控制臺打印SQL語句,可以通過配置MyBatis的日志級別來實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01
springboot無法跳轉(zhuǎn)頁面的問題解決方案
這篇文章主要介紹了springboot無法跳轉(zhuǎn)頁面的問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
Springboot實現(xiàn)給前端返回一個tree結(jié)構(gòu)方法
這篇文章主要介紹了SpringBoot返回給前端一個tree結(jié)構(gòu)的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
使用Spring Boot搭建Java web項目及開發(fā)過程圖文詳解
這篇文章主要介紹了使用Spring Boot搭建Java web項目及開發(fā)過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
MyBatis-Plus如何關(guān)閉SQL日志打印詳解
在使用mybatisplus進行開發(fā)時,日志是一個非常有用的工具,它可以幫助我們更好地了解和調(diào)試我們的代碼,這篇文章主要給大家介紹了關(guān)于MyBatis-Plus如何關(guān)閉SQL日志打印的相關(guān)資料,需要的朋友可以參考下2024-03-03

