老师,我发现还有一种方案,但不知道这种方案和带参为类跟成员属性为类比较,有哪些优劣处

老师,我发现还有一种方案,但不知道这种方案和带参为类跟成员属性为类比较,有哪些优劣处

代码如下:

public String infoStu() {

Subject sub=new Subject();

String str = "学生信息如下:\n姓名:" + this.getStuName() + "\n学号:"

+ this.getStuNo() + "\n性别:" + this.getStuSex() + "\n年龄:"

+ this.getStuAge() + "\n所报专业名称:"+sub.getProName()+"\n学制年限:"+sub.getStuYear()+"年";

return str;


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,是的,static成员变量称之为全局静态变量,随着类的加载而加载,所有的实例都指向同一个内存地址

祝学习愉快~

好帮手慕小脸 2020-08-28 11:04:27

同学你好,按照同学的写法,得到的专业为null 学制年限为0.如下所示:

http://img1.sycdn.imooc.com//climg/5f4873a6098a898d04300211.jpg

括号中传参是进行了一个简化,在介绍学生信息方法中传入学生对象就可以了,如图所示,在需要学生信息的地方,只需用传入的学生对象(即mySubject)的getXxx()方法获取学生信息即可。这样用到了对象的封装,减少了代码的书写,增加了可读性及安全性。

http://img1.sycdn.imooc.com//climg/5f487433099839cf13100217.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕哥8310336 #1
    知道原因了,因为我将那两个变量改为了静态成员属性,所以能调用。
    2020-08-28 19:21:47
  • 提问者 慕哥8310336 #2
    那我还是觉得奇怪,为啥将sub类的成员变量改为静态成员属性为啥能调用呢,是因为静态成员属性在使用时是在同一个堆内存空间的原因吗?
    2020-08-28 19:23:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师