今日复盘(元旦限流版)

跟着黑马学c++:

今天是内存四区的堆区(在堆中的数据是由程序员来管理他的生死):

如上图在栈中开辟数据,当函数执行完,释放,之后再操作内存的话就是非法操作,详情结合昨日复盘就可以看的很明白。

如上图,在堆区开辟了一段内存,把内存的编号返回,用指针去接收。

 

对比昨天复盘,在堆中的输出,不像在栈中开辟空间一样,在堆中的数据在函数执行完依然存在,

所以利用new关键字创建堆中的数据,还是挺好的。

跟着黑马学java:

第一个是关于object类的toString方法:

 object类(类层次结构的根类/祖宗,即每个类都可以去继承它):

 

上图可以看出,当给对象s的姓名和年龄都赋值以后输出s并没有达到预期的效果,为什么,

 通过上图可以看出在调用方法printn时层层往下走,最终调用的是object的tostring方法,而object的tostring方法显示的就是com……这串内容。

 所以当我们在创建子类的时候,要去重写toString方法,达到输出相应内容的目的,一般在编译器中找到对应的重写方法会自动生成相应的格式。

forexample:

 但是不重写的话,可以用s.get方法来获得相应的值。

第二个是equals方法:

s1和s2是新new的两个对象,都有不同的地址值,s1==s2比较的是地址值,所以不相同。

 虽然方法中是object类但是调用的时候是student类,因为是向上转型,所以是可以的,但是最后输出的仍然是false。why?because....

 通过原码可以看出,在比较的时候还是比较的地址值。调用的时候还是需要重写equals方法。

 重写之后达到了预期效果。

分析一下equals重写后的方法:

特别关注下面三条语句:

 上面是对应的调用方法时参数,这个要注意。

 

 这个的和上面的向上转型对应起来,这是向下转型,student=s2;方便比较对应的name和age。

 这里的name是string类型,因此调用equals方法用的是string类型的equals方法,结果判断完毕。

 今日复盘:

今天学的内容真的很少,因为大部分时间都出去玩了,滑雪,吃,哈哈,除了学习其他事情都是让人心情愉悦的。

1.英语没背,但是把前几天背的单词看了看,了解了自己记忆的情况。

2.然后今天就没学别的了。。。

明天争取把概率再多复习一点,然后离散现在已经有答案了,该复习该做题都要开始,加油。

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值