0x00:类的介绍

类: 对现实生活中一类具有共同属性和行为的事物的抽象。

类的特点:

  • 类是对象的数据类型
  • 类是具有相同属性和行为的一组对象的集合

0x01:对象(类的属性)

对象: 能够看得到摸得着的真是存在的实体
属性: 对象具有的各种特征, 每个对象的每个属性都拥有特定的值
行为: 对象能够执行的操作

比如 下图中的英雄就是一个类, 盖伦和提莫都是这个类的不同对象
image.png

0x02:类的定义和使用

类的组成: 属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为: 在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

  1. public class 类型{
  2. //成员变量1
  3. //成员变量1
  4. //成员方法1
  5. //成员方法2
  6. }
  1. package Test;
  2. public class Hero {
  3. String name; //姓名
  4. float hp; //血量
  5. float armor; //护甲
  6. int moveSpeed; //移动速度
  7. public void call(){
  8. System.out.println("别打我,我咬人了");
  9. }
  10. public static void main(String[] args) {
  11. Hero garen = new Hero(); //创建对象
  12. garen.name = "盖伦"; //使用对象的成员变量
  13. garen.hp = 616.28f;
  14. garen.armor = 27.536f;
  15. garen.moveSpeed = 350;
  16. Hero teemo = new Hero();
  17. teemo.name = "提莫";
  18. teemo.hp = 383f;
  19. teemo.armor = 14f;
  20. teemo.moveSpeed = 330;
  21. System.out.println(garen.name);
  22. garen.call(); //调用类中的方法
  23. }
  24. }

0x03:单个对象和多个对象的引用

  1. 代表创建了一个Student对象,但是没有办法访问它
  2. new Student();
  3. 所以我们会使用引用来代表这个对象
  4. Student s = new Student();

下图中的 现在栈内存中调用main 方法,然后 Student 类 申请内存地址,类中的成员变量初始值都为null。
一步一步的走,慢慢的改变类中成员变量的值
image.png

多个引用,一个对象
引用有多个,但是对象只有一个。
在这个例子里,所有引用都指向了同一个对象。
对象就像 “房产”, 引用就像”房产证”
房产证的复印件可以有多张,但是真正的”房产” 只有这么一处
617.png

一个引用,多个对象
image.png

0x04:成员变量和局部变量

区别 成员变量 局部变量
类中位置不同 类中方法外 方法内或者方法声明上
内存中位置不同 堆内存 栈内存
生命周期不同 随着对象的存在而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的调用完毕而消失
初始值不同 有默认的初始值 没有默认的初始值,必须先定义,赋值后,才能使用