OOP-20年秋第三周

Java 第三周

  1. Java处理对象比处理基本数据类型要好一点
  2. 基本数据都有自己的封装类
    –byte-Byte short-Short
    –int-Integer long-Long
    –char-Character
    –剩下的也都是首字母大写而已
  3. Boxing-装箱(基本变对象)
    –UnBoxing-拆箱(对象变基本)
    –无论哪种都是全自动的
  4. 常量池(-128到127)
    –在常量池内給Integer不用new得方式赋值
    –会告诉你两个对象相等(常量池地址一致)

在这里插入图片描述

I1还是1000,为什么呢?
–再看一题
在这里插入图片描述

p1.pid为什么变成了1000呢?
----其实应该知道,p1的修改是很正确的
–需要讨论的是,I1为什么不变?
–介绍一个Inmutable classes
–哪些是上述class?
----wrapped classes and String.
–所以I1指向的1000是永远改不了的,只会被gc自动回收掉,我们不能用这些手段去修改它
在这里插入图片描述

  1. 每个类都有很多静态的方法,比如String.class == “ ”. getClass()
  2. 但如果是int.class则不等于包装类的.class的,而要使用wrapped class的.TYPE方法
  3. 什么是静态的?
    –待答
  4. Integer不可以强制类型转换为Long
    –why?
    –因为他们有个共同的父类叫做Number
    –此时使用longValue()就可以了

在这里插入图片描述

–可以看出 编译器只看声明了什么类型
–但是此时可以强制转换,因为编译器觉得有可能是B,和前面的Number的两个子类转型不一样,子变父类还是always的,父类变子类是maybe的。
11. Integer会提供parseInt方法得到int数字
–比如“123”就可以用上述方法变成123
12. 很多时候我们都需要import一些包,但是为什么System不需要呢?
–因为java自动加入了java.lang.*这个包
13. 但是java.不会包含java.lang.
14. 为什么要用包,不是我全都要?
–消除重名冲突!
15. 所有new的对象默认都在堆里
16. 栈的访问方式是从栈顶开始,而堆是任意开始
–而且栈的个数不止一个,有线程得个数来决定,一个线程一个栈
17. 基本数据类型可能在堆可能在栈
–如果一个对象有一个基本数据类型则在堆
–对象一定都在堆里
18. 重载:同名,看参数列表
–由什么决定呢?
–首先肯定是我本人,我写的我选,其次应该是参数列表
–最后可以很明显的知道,应该是由编译器决定的
19. 重写:
–在运行时决定到底运用哪个
在这里插入图片描述

  1. 静态的方法没有参数(没有this)
    在这里插入图片描述

–谁执行谁睡觉!!这是一个静态的方法!!!
–如果写在重写的run函数里面就可以让thread-0睡觉
21. 没有static是一个实例变量,每个对象都有一个它
–如果是静态变量,它是存放在类对象里面,所有类只有同一个静态变量,也就是在方法区内,
–综上所述,静态变量不同于在方法区,而静态方法不同于少了个this参数
22.
在这里插入图片描述

–观察18行可以看出来,这是个单例模式
–在19行如果没有static那就很无聊了
–因为getperson没有static就代表需要new,但是我们不想要new,所以要有static
23. 内存泄露一般从静态成员入手
24. 类和类有什么关系呢?
–继承和被继承 is-a的关系
–而在类里有个其他类的对象就是has-a
–Car和engine就是关联(has-a)关系
–而下面A和B就是依赖关系
在这里插入图片描述

–回到关联关系,老师和学生就是普通的关联关系
–而比较强烈的关联关系,比如car和engine就是聚合关系。(aggregation)
–而在最强上面则是组合关系(比如手和身体)( composition)
–上述三个其实只在业务逻辑有区别。
25. 老师划的这句话其实在cpp里没法这么写
所以真正得逻辑就如下图所示,在每个构造函数的开头出现。
(缺个图)
26.
–这里的this()就是构造函数了
–构造函数可以重载可以私有化
–和this()对应的就是super了
在这里插入图片描述

  1. 静态构造方法?
    –静态构造方法有一个很特殊的地方
    –普通得构造函数可以做普通成员变量的初始化
    –静态的构造函数可以做静态成员变量的初始化
    –其中涉及到了类的加载
    –“一个类最多只有一个静态构造函数!!”
    –待答接下来的点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值