java教材源代码第5章类和对象文档格式.docx

上传人:b****2 文档编号:3519902 上传时间:2023-05-01 格式:DOCX 页数:18 大小:17.94KB
下载 相关 举报
java教材源代码第5章类和对象文档格式.docx_第1页
第1页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第2页
第2页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第3页
第3页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第4页
第4页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第5页
第5页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第6页
第6页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第7页
第7页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第8页
第8页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第9页
第9页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第10页
第10页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第11页
第11页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第12页
第12页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第13页
第13页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第14页
第14页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第15页
第15页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第16页
第16页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第17页
第17页 / 共18页
java教材源代码第5章类和对象文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java教材源代码第5章类和对象文档格式.docx

《java教材源代码第5章类和对象文档格式.docx》由会员分享,可在线阅读,更多相关《java教材源代码第5章类和对象文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

java教材源代码第5章类和对象文档格式.docx

+money);

voidchangePWD(StringnewPWD){

classMainDemo{

publicstaticvoidmain(String[]args){

CustmyCust=newCust("

Tom"

100,"

11111"

10000);

myCust.setMoney(5000);

myCust.getMoney(3000);

myCust.changePWD("

);

myCust.search();

【例5-4】静态方法与实例方法的区别。

publicclassStaticDemo{

staticdoublepi=3.14;

//静态变量,类变量

doublepix=3.14;

//实例变量,对象变量

doublegetArea(){//实例方法

returnpi*3*3;

//类变量,实例方法能用类变量

staticdoublegetArea1(){

//类方法能用类变量

doublegetArea2(){

returnpix*3*3;

//实例方法能用实例变量

//staticdoublegetArea3(){

//returnpix*3*3;

//类方法不能用实例变量

//}

【例5-5】静态成员的加法运算。

classHasStatic{

privatestaticintx=100;

publicstaticvoidmain(Stringargs[]){

HasStatichs1=newHasStatic();

HasStatichs2=newHasStatic();

hs1.x++;

hs2.x++;

x="

+x);

【例5-6】为Cust类写两个构造方法,一个构造方法利用this关键字调用有参构造方法,另一个为有参构造方法,参数分别为姓名,账号、密码及余额。

Cust(){

this("

12345"

Cust(StringnewName,intnewID,StringnewPWD,intnewmoney){

money=newmoney;

}

【例5-7】重载Cust类的构造方法,一个为无参构造方法实现成员变量的初始化,另一个为有参构造方法,实现形参到成员变量的赋值。

Cust(){

name="

;

ID=0;

PWD="

money=0;

5.5案例分析:

银行账户类构造方法的重载

Stringname;

intID;

StringPWD;

intmoney;

staticStringbankName="

建设银行"

intselfNum=0;

staticintallNum=0;

Cust(){

name="

ID=0;

PWD="

money=0;

allNum++;

selfNum=allNum;

}

Cust(StringnewName,intnewID,StringnewPWD,intnewmoney){

name=newName;

ID=newID;

PWD=newPWD;

money=newmoney;

voidgetMoney(intgetMoney){

money=money-getMoney;

voidsetMoney(intsaveMoney){

money=money+saveMoney;

voidsearch(){

System.out.println("

所属银行:

+Cust.bankName);

您是本银行的"

+allNum+"

个顾客中的第"

+

selfNum+"

个顾客"

voidchangePWD(StringnewPWD){

voidsetInfo(StringnewName,intnewID,StringnewPWD,intnewmoney){

classDemo{

publicstaticvoidmain(String[]args){

Custst1=newCust("

Custst2=newCust();

st1.setMoney(5000);

st1.getMoney(3000);

st1.changePWD("

st1.search();

st2.setInfo("

Jerry"

200,"

22222"

10000);

st2.setMoney(10000);

st2.getMoney(5000);

st2.changePWD("

st2.search();

}

【例4-10】创建不同的包,并在包内创建不同的类,实现不同包间类的访问。

在lession3包中的主文件Lession3.java代码如下:

packagelession3;

//注意,我们使用了其他package的类,所以需要import进来

//注意:

路径必须为完整的路径

importlession3.otherpackage.PublicClassOtherPackage;

//public的类,可以被任何类在任何地方访问

//默认权限的类(也就是没写任何访问描述符的类)只能在当前package访问,不能被其他package的类访问

publicclassLession3{

publicstaticvoidmain(String[]args){

 //调用同一package下的public访问权限类

 System.out.println(newpublicClassSamePackage().toString());

 //调用同一package下的默认访问权限类

 System.out.println(newDefaultClassSamePackage().toString());

 //调用不同package下的public访问权限类

 System.out.println(newPublicClassOtherPackage().toString());

 //调用不同package下的默认访问权限类

 //System.out.println(newDefaultClassOtherPackage().toString());

 }

在lession3包中PublicClassSamePackage.java代码如下:

/**

*相同package的公开访问权限类

*/

publicclassPublicClassSamePackage{

publicStringtoString(){

  return"

相同package的公开类"

在lession3包中DefaultClassSamePackage.java代码如下:

 publicStringtoString(){

在lession3.otherpackage包中PublicClassOtherPackage.java代码如下:

packagelession3.otherpackage;

*其他package的公开访问权限类

publicclassPublicClassOtherPackage{

其他package的公开类"

在lession3.otherpackage包中DefaultClassOtherPackage.java代码如下:

*不同package的默认访问权限类。

classDefaultClassOtherPackage{

不同package的默认类"

5.7案例分析:

简单的银行账户管理程序

importjava.io.BufferedReader;

importjava.io.InputStreamReader;

classKB{

publicstaticStringscan(){

Stringstr="

try{

BufferedReaderbuf=newBufferedReader(

newInputStreamReader(System.in));

str=buf.readLine();

catch(Exceptione){}

returnstr;

classCust{

privateStringname;

privateintID;

privateStringPWD;

privateintmoney;

privateintselfNum=0;

voidgetMoney(){

System.out.print("

请输入要取出的金额:

intn=Integer.parseInt(KB.scan());

money=money-n;

voidsaveMoney(){

请输入要储蓄的金额:

money=money+n;

您是本银行"

voidchangePWD(){

请输入用户密码:

Stringp=KB.scan();

PWD=p;

intgetID(){

returnID;

classDemo{

Custst=newCust("

请输入您的ID:

intID=Integer.parseInt(KB.scan());

if(ID==st.getID()){

while(true){

System.out.print("

1存款"

2取款"

3修改密码"

4查询"

5退出"

intn=Integer.parseInt(KB.scan());

switch(n){

case1:

st.saveMoney();

break;

case2:

st.getMoney();

case3:

st.changePWD();

case4:

st.search();

break;

case5:

System.exit

(1);

}

else{

System.out.print("

您输入的ID错误!

对于案例代码修改如下:

//此部分代码与前述代码段相同

publicstaticvoidmain(String[]args){

Custst=newCust("

System.out.print("

intID=Integer.parseInt(KB.scan());

if(ID==st.getID()){

run(ID);

else{

Staticvoidrun(Custst){

while(true){

intn=Integer.parseInt(KB.scan());

switch(n){

case1:

st.saveMoney();

case2:

st.getMoney();

case3:

st.changePWD();

case4:

st.search();

case5:

System.exit

(1);

修改代码如下:

//下述代码为菜单操作方法

voidrun(){

intn=Integer.parseInt(KB.scan());

switch(n){

case1:

st.saveMoney();

case2:

st.getMoney();

case3:

st.changePWD();

case4:

st.search();

case5:

System.exit

(1);

}

Custst=newCust("

System.out.print("

intID=Integer.parseInt(KB.scan());

if(ID==st.getID()){

st.run();

引入对象数组存储四个银行账户的信息,修改代码如下:

Custst[]=newCust[4];

st[0]=newCust("

Mike"

1000,"

111"

111);

st[1]=newCust("

Bob"

2000,"

222"

222);

st[2]=newCust("

cindy"

3000,"

333"

333);

st[3]=newCust("

ruby"

4000,"

444"

444);

booleanflag=false;

//用于判断是否是全法的账户

请输入您的ID"

intID=Integer.parseInt(KB.scan());

for(inti=0;

i<

4;

i++){

if(ID==st[i].ID){

flag=true;

}

if(flag){

st[i].run();

您输入的账号不正确,请重新输入"

continue;

是否还有顾客,没有请按N"

Stringstr=KB.scan();

if(str.equals("

N"

)||str.equals("

n"

)){

break;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2