一、🔺类 (Class)
1、概念
类是一个 抽象 的概念,是一个 模板,在现实世界中不存在。
- 本质上是将现实世界中某些事物存在的 共同特征 向上抽取出来形成的概念就是“类”。
- 在现实世界中,对象A与对象B之间具有的共同特征,进行抽象总结的一个模板,这个模板就是类。
- 共同特征包括 状态(属性) 和 动作/行为(方法)
- 类 = 属性 + 方法
属性描述的是状态,多为名词
方法描述的是动作/行为,多为动词
- 类是引用数据类型
扩展:
基本数据类型在被创建时,会在栈上给其划分一块内存,将数值直接存储在栈上
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。 (通过栈内存中的引用(变量)的内存地址可以找到堆内存中对象及实例对象的具体内容,就如同通过房间号可以找到房间一样)
2、类的定义
① 语法格式:
[修饰符列表] class 类名 {
属性 (变量);
行为 (方法);
}
② "栗子 " 👇
class Student {
// 类体 = 属性 + 方法
// 类体内,方法体外的变量为成员变量,成员变量有两类:实例变量(不带static)和静态变量(带static)
// 成员变量没有赋值,系统会赋默认值(默认值:一切向零看齐)
// 实例变量(对象变量)
String name;
int age;
public void introduce() {
System.out.println("学生姓名是" + name + ",年龄有" + age + "岁。");
}
}
③ 类定义之后,无法直接使用。若要使用,必须 实例化类【创建对象(实例)】。
二、对象 (Object)
1、概念
- 对象是 客观(实际)存在 的个体(独立体)。(现实世界中真实存在的个体)
- 对象又称实例 (instance)
- 每个对象都有自身的状态(属性)和动作/行为(方法)。
- 【Everything is Object. 万物皆对象】
2、创建(实例化)对象
① 语法格式:(使用new关键字)
类名 对象名 = new 类名();
② 更为准确的语法格式应该是:
引用类名 对象名 = new 构造方法名(参数);
new是一个关键字,也是Java语言中一个运算符
new关键字(运算符)是用来创建对象,调用构造方法,初始化新创建的对象。在JVM的堆内存中开辟新的内存空间。
③ "栗子 " 👇
class Student {
String name;
int age;
public void introduce() {
System.out.println("学生姓名是" + name + ",年龄有" + age + "岁。");
}
}
public class StudentTest {
public static void main(String[] args) {
Student stu = new Student();
stu.name = "张三";
stu.age = 22;
stu.introduce();
}
}
/*
运行结果:
学生姓名是张三,年龄有22岁。
*/
三、🔺类和对象的区别和联系
1、区别
类是抽象的概念,是一个模板,在现实世界中不存在,类不能直接使用。
对象是客观存在的个体(独立体),在现实世界中真实存在,对象可直接使用。
2、联系
类 ----》【实例化】----》对象(实例)
对象 ----》【抽象】----》类
- 类是对象的模板,对象是类的实例。
- 类是现实世界中某一些对象的共同特征的抽象概念,而对象则是类的具体存在。
- 类定义完之后无法直接使用,因为类只是一个抽象的概念,需要通过关键字new来实例化,才可以使用。
3、实例化 (Instantiation)
- 用类创建对象的过程
- 是将一个抽象的概念类,具体到该类实物的过程
- 实例化_百度百科
扩展:
抽象:多个对象具有共同特征,进行思考总结抽取共同特征的过程
