概述
什么是类?
现实中,对象A和B之间具有相同的特征,进行抽象总结出一个模板,这个模板被称为类。
可以理解为某个种群。例如,人类。
什么是对象(实例)?
类的具象化,不再是一个抽象的概念,而是一个实体。即某个种群中的个体。
面向对象程序设计的重点是类的设计。
设计类,就是设计类的成员。
成员(共同特征):
名词(姓名,身高…) ——>类的属性(属性=成员变量=field=域、字段) 行为(走路,学习…) ——> 类的方法(方法=局部变量=method=函数)
重点:类描述的是对象的共同特征;共同特征在类里。
类和对象的关系:
类——>对象: 实例化 对象——>类:抽象化
类的创建
语法结构:
[权限修饰符] class 类名{
属性;
方法;
......
}
属性的创建:
[权限修饰符] 数据类型 属性名;
注:修饰符列表不是必须的,目前默认为是public或省略。
属性:描述的是对象的状态信息。
方法:描述的是对象的行为信息。
属性通常采用变量的方式来定义。
没有赋值时,默认值一切向0看齐.
对象的创建与使用
在访问类中的属性和方法时,必须先创建对象,然后通过对象来访问这个特征,因为这个特征具体到某个对象上后,值会不同。(对象的特征不同)
实例化对象的语法:
new 类名();
new运算符的作用是创建对象,在堆内存中开辟新的空间。
通过一个类可以实例化N个对象。
对象的本质: new运算符在堆内存中开辟的内存空间
什么是引用? 引用就是一个变量,这个变量保存了一个对象的内存地址。
例:
Student s=new Student();
/*
Student是一个引用数据类型 S是一个变量名,也是一个引用
new Student()是一个学生对象
s还是一个局部变量(存储在栈内存中)
*/
在java中,不能直接操作堆内存,只能通过“引用”去访问堆内存中的对象的实例变量。
访问实例变量的语法格式:
读取(调用)数据:引用.变量名:
修改数据:引用.变量名=值;
其他: 方法区内存:类加载时,class字节码的代码片段加载在该内存中。 栈内存:存储着局部变量,片段执行时,会给该方法分配内存空间。 堆内存:new的对象在堆内存中存储。