JAVA笔记-Day2
昨日回顾
类与对象
什么是类?
1、类是:分类、类别。
2、通过分类,我们可以区别不同的事物种类,在日常生活当中,我们常常这样做
3、所以,类是一组具有相同特性(属性)与行为(方法)的事物集合。
类与对象的关系
1、类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。
2、类由属性和方法组成:
- 属性:就相当于一个个的特征
- 方法:就相当于人的一个个的行为,Such as:说话、吃饭、唱歌、睡觉
为了方便理解(类与对象即为包含关系,类包含对象,例如:人类是一个类,然后我、你、李小龙、彭于晏即为对象)
类和对象的定义格式
在Java中可以使用以下的语句定义一个类
1 | class 类名称{ |
对象的定义:
一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:
1 | 类名称 对象名称 = new 类名称(); |
按照以上的格式就可以产生对象了。
如果要想访问类中的属性或方法(方法的定义) .
则可以依靠以下的语法形式:
访问类中的属性:
1 | 对象.属性; |
调用类中的方法:
1 | 对象.方法(); |
在java中对象声明有两种含义:
1 | 声明对象:Man man = null; |
1 | 实例化对象: man = new Man(); |
定义类、定义对象、定义方法、访问对象的属性、调用对象的方法例子:
1 | /** |
此代码运行之后的结果:
1 | 我是小轩同学我21岁,我能走路 |
对象内存分析
1、new关键字表示创建一个对象
2、new关键字表示实例化一个对象
3、new关键字表示申请内存空间
注意:如果使用一个没有申请内存空间的对象,会报空指针异常
java.lang.NullPointerException
对象在内存中的结构:
Man man = null;
man = new Man();
给对象的属性赋值
man.name = “小轩同学”
man.age = 21
则堆内存中的 name = “小轩同学” age = 21
一个类下创建多个对象
各个对象指向堆内存各自的内存空间
1 | Man man1 = null; |
对象之间的赋值
各个对象指向堆内存同一个内存空间
如果在此时更改其中一个对象的属性,另一个对象的相对应的属性也会发生变化,因为这两个对象其实为同一个对象,更改的为同一个“东西”
1 | Man man1 = null; |
如果堆内存的一个空间没有被栈内存所指向,那么虚拟机会认为此堆内存是垃圾内存,会被进行回收
类与对象小结
- new关键字:表示向内存申请空间,也表示实例化一个对象,创建一个对象。
- 一个对象在内存中的大小,由该对象的所有属性所占的内存大小的总和。引用类型变量在32位系统上占4个字节,在64位系统上占8个字节。加上额外的对象隐性数据所占大小。
- 相同的类型才可以赋值
- 不同的引用,指向同一个对象,任何一个引用改变对象的值,其它引用都会反映出来。
- 编程时要注意的问题,在确定不使用对象时,要尽早释放对象:引用 = null;
- 当一个堆中的对象没有被任何引用变量所指向时,该对象会被JVM的GC程序认为是垃圾对象,从而被回收。