封裝在java中有兩種表現(xiàn)
上杭ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
1.用類封裝一個(gè)事物的屬性和方法。
2.用方法來(lái)封裝一個(gè)固定的算法。
樓上所說(shuō)的其實(shí)是封裝的程度不一樣,在面向?qū)ο蟮男g(shù)語(yǔ)中粒度來(lái)表示這個(gè)程度。
封裝其實(shí)是要看情況而定的,如果你這個(gè)類是描述人的,需要這個(gè)人完成一些基本的動(dòng)作,如吃飯,走路,那么就不用把細(xì)胞也封裝進(jìn)來(lái)。但是如果“人”這個(gè)類,需要做醫(yī)學(xué)的研究用,那么就需要封裝細(xì)胞這個(gè)屬性了。
代碼打多了就自然能理解了,不是一個(gè)復(fù)雜的概念。呵呵。
JAVA中常用的封裝方式有以下幾種:
1 、Boolean VS boolean
public final class Boolean extends Object??implementsSerializable,Comparable
Boolean 類將基本類型為boolean的值包裝在一個(gè)對(duì)象中。一個(gè)Boolean類型的對(duì)象只包含一個(gè)類型為boolean的字段。此外,此類還為boolean和String的相互轉(zhuǎn)換提供了許多方法,并提供了處理 boolean時(shí)非常有用的其他一些常量和方法。
2、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte類將基本類型 byte的值包裝在一個(gè)對(duì)象中。一個(gè)Byte類型的對(duì)象只包含一個(gè)類型為 byte的字段。此外,該類還為 byte和 String的相互轉(zhuǎn)換提供了幾種方法,并提供了處理 byte時(shí)非常有用的其他一些常量和方法。
3、 Character VS char
public final class Character extends Object??implements Serializable, Comparable?Character類在對(duì)象中包裝一個(gè)基本類型char的值。? ?? ? Character類型的對(duì)象包含類型為char的單個(gè)字段。此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉(zhuǎn)換成小寫,反之亦然。
4 、Double VS double
public final class Double extends Number implements Comparable?Double類在對(duì)象中包裝了一個(gè)基本類型double的值。每個(gè)Double類型的對(duì)象都包含一個(gè)double類型的字段。此外,該類還提供了多個(gè)方法,可以將double轉(zhuǎn)換為String,將String轉(zhuǎn)換為double,還提供了其他一些處理double時(shí)有用的常量和方法。
public class Man {
//這里是對(duì)屬性的封裝,一個(gè)人的姓名,年齡,妻子都是這個(gè)對(duì)象(人)的私有屬性
private String name;
private int age;
private Woman wife;
//這里是對(duì)改人對(duì)外界提供方法的封裝,可以設(shè)置改男人的妻子,姓名,年齡也可以獲取改男人的姓名和年齡
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
//同樣這里是屬性封裝
private String name;
private int age;
private Man husband;
//方法封裝
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
/**
* 仔細(xì)看就會(huì)發(fā)現(xiàn),Man類沒(méi)有提供getWife的方法,這是以為男人不想讓自己的妻子被外界訪問(wèn),
*
* 直接下來(lái)呢,就是封裝可以吧一個(gè)對(duì)象的屬性私有,而提供一些可以被外界訪問(wèn)的屬性的方法,
*
* 比如說(shuō),name屬性,Man和Woman類都有相應(yīng)的get和set方法,外界都可以通過(guò)這些方法訪問(wèn)和修改
*
* 同時(shí)對(duì)一些改對(duì)象不想讓外界訪問(wèn)的屬性,就不提供其方法,比如說(shuō)Man的wife屬性,就沒(méi)有g(shù)et方法
*
* 外界是不能帶到Man類的wife屬性的
*
* 呵呵
* 奇怪的是Woman類有husband的get方法,這就是封裝的一點(diǎn),還有的其他朋友也說(shuō)到了
*/