一、万物皆对象,对象因关注而产生
举例说明:做一个学生信息管理系统:对象: 学生 属性:姓名 年龄 婚否 学历 住址等 行为 上课 记笔记 做作业等情况
类的概念:把一系列(大量)具有相同属性和行为的对象,进行归纳总结而形成的抽象定义
ps:类 是一种引用数据类型;定义好的类不能直接使用,类是用来产生对象的,具体操作的是对象
对象的概念:是具体实际的存在,是真正要操作的东西
ps:万物皆对象,对象因关注而产生
类和对象的关系: 类是对象的抽象,对象是类的具体实例
在面向对象的情况下,分析问题域和编码的步骤:
(1)分析:找对象(包含对象的属性和行为)
(2)编码:再根据找到的对象来定义类,然后通过类来产生对象,最后根据对象来产生效果
二、定义类的语法
三、实例化对象的语法(通过类产生对象的语法,通过new关键字产生
之前学习过的new有:输入器、数组
Scanner scanner = new Scanner(System.in)
int[] arry = new int[9]
String str = new string("MY Filed");
语法:new 类名()---产生一个对象
类名 对象名 = new 类名()---表示:创建的名为”对象名“的变量空间,引用通过new产生的对象地址
类名 对象名:本质上创建一个用来存储数据(对这一个对象的引用)的变量空间
四、操作对象---点操作符
通过:对象名.属性(行为)的方式去访问该对象的内部信息
有了对象后,操作对象---点操作符---的
通过 对象名.属性(行为)的方式去访问该对象的内部信息
例子:查看stu1 的名字,编辑器会出现 null 表示空
注意:产生对象时,如果没有给属性(变量)提供数据的话,此时会根据属性(变量)的数据类型给定初始值
整型:0
浮点型:0.0
字符型:空字符
布尔型:false
引用数据类型:null 表示空 引用数类型的变量空间没有引用任何数据
如果,存在某个引用数据类型的变量, 该变量的变量空间中没有任何引用话,不能对该变量进行操作 如果对其(null),进行操作会出现NullPointerException(空指针异常)
五、对象的销毁
Student student = new Student(); //student 指向在内存中的对象数据
student = null; //student 没有指向任何的引用
用new关键字产生了对象,但是对象产生的位置在内存的对空间中,所以为了能够找到对象, 我们就必须用一个变量去指向它,然后就可以通过这个变量去操作它
假如某一个对象没有变量去引用它,那么此时我们就找不到该对象的地址,也就无法使用它, 这个时候对象就没有意义,这个时候该对象就会被销毁
如何销毁对象:
(1)销毁对象不是程序员完成的,而是由垃圾回收机制GC完成的
(2)没有被引用指向的对象就是垃圾回收机制的目标
(3)GC什么时候回收垃圾,由它自己决定
(4)System.gc();只是起召唤作用,什么时候收,怎么收由GC自己决定