日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
java中封裝代碼實(shí)例,JAVA中封裝

求JAVA封裝和繼承案例?

封裝性是整個(gè)面向?qū)ο蟮牡谝淮筇匦裕^的封裝性是指類內(nèi)部的操作對外部不可見。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、銀州ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的銀州網(wǎng)站制作公司

范例:觀察如下的程序問題

class Person { // 類名稱的單詞首字母必須大寫

String name ; // 姓名,是一個(gè)字符串所以使用String

int age ; // 年齡是一個(gè)整數(shù),所以使用int

public void tell(){ // 定義一個(gè)方法

System.out.println("姓名:" + name + ",年齡:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "張三" ;

per.age = -30 ;

per.tell() ;

}

}

此時(shí)的程序從技術(shù)(語法)上而言沒有任何的問題,但是從實(shí)際的生活(業(yè)務(wù))上來看,一個(gè)人的年齡絕對不可能是-30歲,所以這個(gè)時(shí)候造成問題的主要原因就是類中的操作對外部可見。

此時(shí),就可以通過封裝性來解決此類問題,如果現(xiàn)在要想對類中的屬性或方法封裝,可以直接使用private關(guān)鍵字完成。

class Person { // 類名稱的單詞首字母必須大寫

private String name ; // 姓名,是一個(gè)字符串所以使用String

private int age ; // 年齡是一個(gè)整數(shù),所以使用int

public void tell(){ // 定義一個(gè)方法

System.out.println("姓名:" + name + ",年齡:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "張三" ;

per.age = 99999 ;

per.tell() ;

}

}

此時(shí),程序編譯之后出現(xiàn)了以下的錯(cuò)誤信息:

ClassDemo.java:11: name has private access in Person

per.name = "張三" ;

^

ClassDemo.java:12: age has private access in Person

per.age = 99999 ;

^

2 errors

由于name和age兩個(gè)屬性被private聲明了(封裝了,私有)所以,現(xiàn)在根本無法被外部所訪問,很明顯,此時(shí)的屬性絕對安全,但是封裝歸封裝了,一個(gè)問題就出現(xiàn)了,現(xiàn)在的屬性無法操作了,無法操作就沒有意義了,所以此時(shí),就可以給出一個(gè)概念,以后凡是類中的屬性在定義的時(shí)候必須封裝,封裝之后的屬性一定要通過setter、getter方法設(shè)置和取得。Setter和getter方法本身有自己的命名規(guī)范。

? 例如:private String name ;

? setter:public void setName(String na)

? getter:public String getName()

class Person { // 類名稱的單詞首字母必須大寫

private String name ; // 姓名,是一個(gè)字符串所以使用String

private int age ; // 年齡是一個(gè)整數(shù),所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

age = a ;

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定義一個(gè)方法

System.out.println("姓名:" + name + ",年齡:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("張三") ;

per.setAge(99999) ;

per.tell() ;

}

}

此時(shí),雖然是通過setter和getter方法間接的訪問了私有屬性,但是卻沒有檢驗(yàn),一旦需要檢驗(yàn),則檢驗(yàn)的操作應(yīng)該放在setter語句之中。

所有的設(shè)置應(yīng)該在setter中完成,而getter方法只是將內(nèi)容簡單的返回即可。

class Person { // 類名稱的單詞首字母必須大寫

private String name ; // 姓名,是一個(gè)字符串所以使用String

private int age ; // 年齡是一個(gè)整數(shù),所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

if(a0 a200){

age = a ;

}

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定義一個(gè)方法

System.out.println("姓名:" + name + ",年齡:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("張三") ;

per.setAge(99) ;

per.tell() ;

}

}

此時(shí),就通過封裝性解決了設(shè)置錯(cuò)誤內(nèi)容的問題。

一定要注意的是,封裝性出了在屬性聲明上外,也可以在方法上聲明。

private void info(){ // 私有方法

System.out.println("*************************") ;

}

public void tell(){ // 定義一個(gè)方法

this.info() ;

System.out.println("姓名:" + name + ",年齡:" + age) ;

}

如果現(xiàn)在調(diào)用的是本類中的方法,可以通過“this.方法()”的形式訪問。

在JAVA中如何封裝代碼?

封裝在java中有兩種表現(xiàn)

1.用類封裝一個(gè)事物的屬性和方法。

2.用方法來封裝一個(gè)固定的算法。

樓上所說的其實(shí)是封裝的程度不一樣,在面向?qū)ο蟮男g(shù)語中粒度來表示這個(gè)程度。

封裝其實(shí)是要看情況而定的,如果你這個(gè)類是描述人的,需要這個(gè)人完成一些基本的動(dòng)作,如吃飯,走路,那么就不用把細(xì)胞也封裝進(jìn)來。但是如果“人”這個(gè)類,需要做醫(yī)學(xué)的研究用,那么就需要封裝細(xì)胞這個(gè)屬性了。

代碼打多了就自然能理解了,不是一個(gè)復(fù)雜的概念。呵呵。

Java里的封裝到底是什么意思,請舉例說明?

封裝:是指隱藏對象的屬性(成員變量)和實(shí)現(xiàn)細(xì)節(jié)(方法),僅對外提供公共訪問方式。

好處:

隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式

提高了代碼的復(fù)用性

提高安全性。

封裝原則:

將不需要對外提供的內(nèi)容都隱藏起來。

把屬性隱藏,提供公共方法對其訪問。

常見封裝 :

成員變量封裝---

private 數(shù)據(jù)類型 xxx ;

private關(guān)鍵字:

是一個(gè)權(quán)限修飾符。

可以修飾成員(成員變量和成員方法)

被private修飾的成員只在本類中才能訪問。

例如:

class show(){

private String name;//其他類無法訪問當(dāng)前私有成員

public String getName(){//可以通過public修飾的方法訪問name

return this.name;

}

}

誰能用段代碼給我解釋下java的封裝啊?

public class Man {

//這里是對屬性的封裝,一個(gè)人的姓名,年齡,妻子都是這個(gè)對象(人)的私有屬性

private String name;

private int age;

private Woman wife;

//這里是對改人對外界提供方法的封裝,可以設(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ì)看就會發(fā)現(xiàn),Man類沒有提供getWife的方法,這是以為男人不想讓自己的妻子被外界訪問,

*

* 直接下來呢,就是封裝可以吧一個(gè)對象的屬性私有,而提供一些可以被外界訪問的屬性的方法,

*

* 比如說,name屬性,Man和Woman類都有相應(yīng)的get和set方法,外界都可以通過這些方法訪問和修改

*

* 同時(shí)對一些改對象不想讓外界訪問的屬性,就不提供其方法,比如說Man的wife屬性,就沒有g(shù)et方法

*

* 外界是不能帶到Man類的wife屬性的

*

* 呵呵

* 奇怪的是Woman類有husband的get方法,這就是封裝的一點(diǎn),還有的其他朋友也說到了

*/

在java中什么是封裝,舉一個(gè)例子說明一下

private String sex; //性別 private int age; //年齡 private String job; //工作 //以后只要是設(shè)置值的時(shí)候 實(shí)例化這個(gè)類 //比如設(shè)置年齡 那么調(diào)用setAge(String age);方法 //傳入年齡值 注意前面是什麼類型 這里為int //TestBean test=new TestBean(); //String name="張三"; //test.setName(name); //設(shè)置值后 很復(fù)雜的多個(gè)屬性 便變成了一個(gè)簡單的JavaBean對象 //取值也很簡單 前提是你已經(jīng)設(shè)置了多項(xiàng)屬性的值 //比如調(diào)用年齡 getAge()就可以拿到年齡的值 //對應(yīng)其類型 可以這樣調(diào)用 //TestBean test=new TestBean(); //String name=test.getName(); //使用JavaBean的好處有 實(shí)現(xiàn)MVC結(jié)構(gòu) //封裝多個(gè)屬性或?qū)ο鬄橐粋€(gè)對象 私有的屬性 而共有的方法 大大提高程序安全性 //。。。等等

java 封裝

public?class?Student2?{

private?String?name;

private?String?age;

private?String?sex;

private?String?major;

public?Student2(String?name,?String?age)?{

super();

this.name?=?name;

this.age?=?age;

this.sex?=?"男";

this.major?=?"JAVA";

}

public?Student2(String?name,?String?age,?String?sex,?String?major)?{

super();

this.name?=?name;

this.age?=?age;

this.sex?=?sex;

this.major?=?major;

}

public?String?getName()?{

return?name;

}

public?void?setName(String?name)?{

this.name?=?name;

}

public?String?getAge()?{

return?age;

}

public?void?setAge(String?age)?{

this.age?=?age;

}

public?String?getSex()?{

return?sex;

}

public?void?setSex(String?sex)?{

this.sex?=?sex;

}

public?String?getMajor()?{

return?major;

}

public?void?setMajor(String?major)?{

this.major?=?major;

}

public?String?take()?{

return?"大家好,我叫"?+?name?+?",今年"?+?age?+?"歲,性別"?+?sex?+?",專業(yè)是"?+?major;

}

}

student2類

public?class?Student?{

/**

*?@param?args

*/

public?static?void?main(String[]?args)?{

//?TODO?Auto-generated?method?stub

Student2?s1?=?new?Student2("張三",?"18");

Student2?s2?=?new?Student2("李四",?"15",?"女",?"C++");

System.out.println(s1.take());

System.out.println(s2.take());

}

}

測試方法

結(jié)果:

大家好,我叫張三,今年18歲,性別男,專業(yè)是JAVA

大家好,我叫李四,今年15歲,性別女,專業(yè)是C++

你是要這個(gè)東西么


本文標(biāo)題:java中封裝代碼實(shí)例,JAVA中封裝
網(wǎng)站鏈接:http://www.dlmjj.cn/article/hopddd.html