类与对象的关系
从认识论角度考虑是现有对象后有类,对象是具体的事物,类是抽象的、是对对象的抽象。
从代码运行角度考虑是先有类,后有对象,类是对象的模板。
-
类是一种抽象的数据类型,它是对某一类事物的整体描述/定义,但是并不能代表某一具体事物
- 动物、植物、手机、电脑…
- Person类、Pet类、Car类等,这些类都是用来描述和定义某一类事物具备的特点和行为
-
对象是抽象概念的具体实例
- 如张三就是人的一个具体实例,张三家的旺财就是狗的一个具体实例
- 能够体现出特点,展现出功能的是具体实例,而不单纯是一个抽象概念
创建与初始化对象
使用 new 关键字创建对象
使用 new 关键字创建对象的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化及对类中构造器的调用。
package OOP.Demo01;
public class Application {
public static void main(String[] args) {
Student student = new Student(); //student对象就是Student类的一个实例
Student xm = new Student();
Student xh = new Student();
xm.name = "小明";
xh.name = "小红";
System.out.println(xm.name);
System.out.println(xh.name);
student = xm;
System.out.println(student.name);
}
}
//将不同的类放在不同的文件中,将main方法单独置出
package OOP.Demo01;
public class Student {
//属性
String name;
int age;
//构造方法
public Student(){
}
//方法
public void study(){
System.out.println(this.name+"在学习");
}
}
输出结果:
小明
小红
小明
构造方法
类中的构造方法也称构造器 ,是在进行创建对象时必须要调用的,并且有以下几个特点:
- 必须和类名相同
- 没有返回类型,也不能写void
- 构造方法可以有参数
构造器作用:
- 使用 new 关键字,实际上是在调用构造方法
- 构造方法一般用来初始化值
注意:
- 一旦定义了有参构造,就必须显示地写出构造方法
- 快捷键:Shift + Alt + insert 或 鼠标右击—>Generate ,可以快速地插入构造方法
创建对象内存分析
以一个简单的内存图说明。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QredCfwE-1620375061009)(E:\CodeStudy\学习笔记\笔记图库\创建对象内存简析.png)]
补充
属性的初始化
-
默认初始化
- 数字: 0、0.0
- 字符:u0000
- 布尔值:false
- 引用:null
-
自定义初始化
修饰符 变量名 = 初始值;
对象的创建和使用
- 必须使用 new 关键字创建对象,Student sdutent = new Student();
- 对象属性的使用,student.name
- 对象方法的使用,student.study();