java—1.面向对象与内存分析

本来学院是开过Java课程的,但是之前自己学的很水,感觉什么都没学到==。于是现在又打算自学Java。在网上找的马士兵老师的视频教程,今天学习内容初步总结如下:

一、面向对象这个词,只要是有程序基础的人应该都不会陌生。一般来说,类(对象)之间的关系有以下几种:

1.关联关系(最弱)

这个怎么理解呢?简单的说,比如定义两个类,一个为Assistant(售货员),一个为Candy(糖果),Assistant这个类我们定义一个方法sell(销售),这个方法需要传递参数吧,我们可以加一个形参为糖果,也就是sell(Candy c)。看到这里你就明白啦,所谓关联关系指的就是一个类的方法中用到了另一个类的对象。

2.继承关系

继承这个词,在面向对象里可谓是随处可见。继承简单的说就是is-a,如果两个类的关系能用is-a说得通,那么这两个类就满足继承关系了。比如Person这个类和Teacher这个类,Teacher是Person的一种吧,Person就叫做Teacher的父类,Teacher为Person的子类。值得一提的是,Java中只有单一继承,也就是说一个类的直系父类只能有唯一一个,而C++允许多重继承。

3.聚合关系

聚合关系简单说就是整体和部分的关系。还可划分为聚集和组合两种关系。

1)聚集关系(比较松散)


如上图所示,表现的就是一种聚集关系。队长和队员都是球队的组成部分,队长可以是这支球队的队长,也可以是另一支球队的队长,队员也是如此。

2)组合关系(密不可分)


如上图所示,一个人的头只能属于他自己,不可能说这个头既是他自己的也是另外一个人的。

接下来还有什么实现关系和多态关系之类的,这里就不说明了。


二、面向对象编程思考方式

要养成一个好的面向对象思考方式,是不容易的。当拿到一个问题时,给初学者有以下建议:
1)不要考虑解决问题的步骤。而是首先考虑问题中有哪些对象,找对象最直接的办法就是找名词。
2)考虑对象的属性和方法。
3)类之间的关系。

三、变量与内存

知识点稍微有点凌乱了……
1.在Java中,自定义成员变量时可以对其初始化。如果不对其初始化,Java则默认初始化。引用类型变量默认为null,布尔类型变量默认为false。其余的就不用说了。
2.什么是引用类型变量?除了基本类型变量之外的都叫做引用类型变量。基本类型变量占一块内存,引用类型变量占两块内存。意思就是比如:String s=new String("hello"); s就是一个字符串类型的引用变量,String s的时候会在栈分配一个内存给s,执行语句new String("hello")时会在堆里面开辟一块内存区域,里面存放的内容就是"hello",s这个引用变量指向"hello".通俗点,所有new出来的都装在堆内存中。“引用”实际上就是一小块内存指向一大块内存。
3.堆用于动态分配内存,局部变量分配在栈。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值