Java学习笔记-类与对象

对象的引出

  • image
  • 使用单独变量来解决问题,通过频繁定义每个数据的数据类型来实现对问题的解决。不利于数据的管理,把一个物体的数据信息拆分了。
  • 使用数组解决问题
    • (1)数据类型体现不出来(数组只能存储同一种数据类型)
      (2)只能通过数组下标来访问数据,造成变量名字和内容的对应关系不明确
      (3)不能够体现需要解决问题的事物的行为
    • 总之以上解决问题的方式,都不利于数据的管理和效率低下
    • java设计者引入类与对象,根本原因就是现有技术不能完美解决新的需求

类与对象

image

  • int相当于java中提供的类,而100,200……就是int类所对应的对象
  • 猫类Cat 就是用户自定义的对象,实例化出来的就是cat类的对象
  • 类与对象的区别和联系
    • (1)类是抽象的 概念的,代表一类事物,比如人类,猫类……,即它是数据类型
      (2) 对象是就提的,实际的,代表一个具体事物,即是实例
      (3)类是对象的模板,对象是类的一个个体,对应一个实例

对象在内存中的存在形势(对象内存布局)

image

  • 对象中 常量直接存放在堆空间中,而String是引用类型,所以会存放一个内存地址,然后指向方法区,在方法区中存放引用类型的数据。
  • 在创建对象的时候,jvm会在方法区中加载类的信息(1.属性信息 2.行为(方法信息))
  • Cat cat = new Cat()
    cat只是引用 ,相当于一个代称,而真正的对象是在jvm内存中的所为其开辟的空间。 这就叫做 对象引用

属性和成员变量

image

  • 属性的定义语法同变量 示例: 访问修饰符 属性类型 属性名
    访问修饰符: 控制属性的访问范围
    有四种访问修饰符 public protected 默认 private
  • 属性的定义类型可以为任意类型 包含基本类型和引用类型
  • 属性如果不赋值,就会有默认值,遵守数组的默认值规则

创建对象的方式

  • 先声明后创建
Cat cat://声明一个对象
cat = new CAt();// 在内存中创建一个对象空间
  • 直接创建
Cat cat - new Cat();
  • 访问属性
    对象名.属性名;

对象分配机制和对象创建的过程

image
image

posted @ 2022-04-18 17:02  云吞豚  阅读(41)  评论(0)    收藏  举报