免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
封裝這件小事
封裝 (encapsulation) 
隱藏對象的屬性和實現(xiàn)細節(jié),僅對外公開接口,控制在程序中屬性的讀取和修改的訪問級別
簡言之,就是把對象保護起來不讓對象(你)之間訪問到,然后呢?當然為了你的訪問會給你提供接口供你訪問比如setter和getter方法
封裝方法 在需要封裝的變量前加修飾詞 private
下面就舉一個簡單的例子
——————————————————————————————————————————————————————————------
例1
class Person
{
private String name;
private int age;
public void setName(String name)
{
this.name=name;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class Demo
{
public static void main(String args[])
{
Person p=new Person();
p.setName("雪飛揚");
p.setAge(20);
System.out.println(p.getName()+","+p.getAge());
}
}
輸出結果:雪飛揚,20
_________________________________________________________________________________________________________
為什么要封裝?
那必須是為了安全啊,你想啊你買了一臺電腦,沒有主機箱直接放在那里你敢用嗎?電腦容易進水壞了是小事,你要是那個啥有個萬一………是不是。
以上面的例子為例如果上面年齡傳入了-20,那么會直接輸出年齡-20歲,這顯然是不科學的,對數(shù)據(jù)來說是不安全的。所以呢
輸出結果:雪飛揚,-20
這顯然不是我們想要的結果,如果沒有進行數(shù)據(jù)的封裝,我們沒有辦法解決這個問題,但是我們現(xiàn)在進行了封裝,我們可以很簡單的解決這個問題
例2
class Person
{
private String name;
private int age;
public void setName(String name)
{
this.name=name;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return name;
}
public int getAge()
{if (age>0&&age<130)
return age;   
else
    {System.out.println("您輸入的年齡信息有誤,請重新輸入后操作");
System.exit(1);
    return 0;}
}
}
class Demo
{
public static void main(String args[])
{
Person p=new Person();
p.setName("雪飛揚");
p.setAge(-20);
System.out.println(p.getName()+","+p.getAge());
}
}
輸出結果:您輸入的年齡信息有誤,請重新輸入后操作
這樣就提高了數(shù)據(jù)的安全性,提高了代碼的健壯性
————————————————————————————————————————————————————————————
當然,以上是大多數(shù)書本上都會提到的內容,不多說。下面咱們晚點其他的。
既然成員變量被私有化了,我們想要用到他們是否一定要用到setter和getter方法呢?
答案可定時否定的,接下來我們就看看其他方法
例3
class Demo
{
    public static void main(String[] args)
    {
    Person p=new Person("哈哈",20);
    System.out.println(p);
}
}
class Person {
private String name;
private int age;
Person(String name,int age){//構造函數(shù)初始化,相當于setName和setAge方法
this.name=name;
this.age=age;
}
public String toString()//復寫toString方法,返回年齡和姓名信息,相當于getAame和getAge方法
{
return this.name+","+this.age();
}
}
輸出結果:雪飛揚,20
 大家第一眼看到這個代碼是不是覺得,哇塞這個代碼好  啊 ……好啊  ,好短啊……
————————————————————————————————————————————————————————————
構造函數(shù)???

好吧,在這里再給大家說說構造函數(shù)
什么事構造函數(shù)?
所謂構造函數(shù),就是構造對象的函數(shù),就是創(chuàng)建對象的函數(shù)
構造函數(shù)有什么特點?
1.隨著類的建立而出現(xiàn),默認為空,用戶可以自己定義構造函數(shù)
2.構造函數(shù)不能有return語句,不用寫返回值。
3.構造函數(shù)在對象建立時調用有且僅有的一次。
4.構造函數(shù)用于對象的初始化。
舉個例子:
例4
class Person{
public Person()
{
System.out.println("我出生了****");
}
}
class Demo
{
public static void main(String args[])
{
Person p=new Person();
}
}
輸出結果:我出生了****
大家是不是有點覺得這段代碼不可思議,就創(chuàng)建了一個對象,怎么就出現(xiàn)了輸出語句呢?
這就是構造函數(shù)完成的,它定義了函數(shù)初始化的值
大家明白了這個原理,上面封裝的例子就不難理解了。
————————————————————————————————————————————————————————————
什么還有toString() ?
toString()方法隸屬于Object類,而所有的類都繼承Object類,也就是說所有的類都具有這個方法 ,所有的對象都可以調用這個方法。
例5
public class A{
public String toString(){return "this is A";}
}
如果某個方法里面有如下句子:
A obj=new A();
System.out.println(obj);
輸出結果:this is A 
它通常只是為了方便輸出,比如System.out.println(xx),括號里面的“xx”如果不是String類型的話,就自動調用xx的toString()方法

它只是sun公司開發(fā)java的時候為了方便所有類的字符串操作而特意加入的一個方法。
依然以上面的例子為例
例6
class Demo
{
    public static void main(String[] args)
    {
    Person p=new Person("哈哈",20);
    System.out.println(p);
}
}
class Person {
private String name;
private int age;
Person(String name,int age){//構造函數(shù)初始化,相當于setName和setAge方法
this.name=name;
this.age=age;
}
}

輸出結果:Person@5ac2480b
沒錯大家看到的是一個Person對象的地址

那么當我們復寫了ToString類之后呢?代碼同例3
輸出結果:輸出結果:雪飛揚,20
 另外需要提示的一點toString方法是System.out.println()當中唯一一個java提前幫你定義的地方。

好了總結句話
私有是封裝實現(xiàn)方式的一種,實現(xiàn)封裝有多種方式。
封裝可以提高代碼的安全性和健壯性。
封裝可以用setter和getter方法進行訪問。
封裝中的setter和setter方法可以用構造函數(shù)和復寫toString方法代替。
封裝只能修飾成員變量和成員函數(shù)。


說道做到,三句就三句,絕不多說。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java中static、this、super、final用法簡談(二)
java clone - ttitfly的筆記 - JavaEye技術網(wǎng)站
Java程序內存的簡單分析
Java 繼承(extends)詳解
Java學習筆記:詳解this關鍵字
構造器
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服