Java基础【类与对象】

一、引出

实例:一只猫的信息用多个属性拆开并将其对应
问题:现有的技术不利于效率的管理和效率低

二、概述

事物 => 对象(属性、行为)
如:小狗(【年龄、颜色】、【跑、叫】)

类是自定义的的数据类型
首先把所有猫的特性提取出来形成一个猫类的数据类型,然后创建很多很多猫类里面的猫
类就是一个大类,对象是一个具体的事物,如:人类是类和朴树是对象
在这里插入图片描述在这里插入图片描述
总结:
(1)类:代表一类事物,比如人类,猫类,它是数据类型
(2)对象:代表具体事物,如人,猫,它是实例
(3)类是对象的模板,对象是类的一个个体

package chapter07.object01;

public class object01 {
    public static void main(String[] args) {
        //单独变量-->不利于数据管理,用三个变量把一只猫的信息拆开
//        String cat1Name = "小白";
//        String cat2Name = "小花";
//
//        int cat1Age = 3;
//        int cat2Age = 100;
//
//        String cat1Color = "白色";
//        String cat2Color = "花色";


        //数组
//        String[] act1 = {"小白", "3", "白色"}
        //使用OOP面向对象解决,实例化一只猫
        //1.new Cat()创建一只猫
        //2.把创建的猫赋给cat1
        //3.cat1就是一个对象
        Cat cat1 = new Cat();//首先加载cat类的属性和行为信息到方法池,然后分配空间,最后把地址返回给cat
        cat1.name = "小白";
        cat1.age = 3;
        cat1.color = "白色";

        Cat cat2 = new Cat();
        cat2.name = "小花";
        cat2.age = 100;
        cat2.color = "花色";

        //怎么访问对象的属性
        System.out.println("第1只猫的属性:  " + cat1.name + " " + cat1.age + " " +cat1.color);
        System.out.println("第2只猫的属性:  " + cat2.name + " " + cat2.age + " " +cat2.color);


    }
}

//使用面向对象的方法来解决养猫问题
//1. 定义一个猫类
//2. 确定猫类的属性和行为
//3. 实例化猫类

class Cat {
    //属性
    String name;  //姓名
    int age;  //年龄
    String color;  //颜色
    //行为
}

三、对象内存布局

在这里突然插入图片描述
在这里插入图片描述

注:字符串是引用类型,常量入堆,字符串入常量池

  • 引用类型对象:cat指向一个地址,然后顺着地址找到堆中的地址块,可以找到这个对象的各个属性
    • 对象成员:基本数据类型如int,直接在那个地址的arr[0]中存储
    • 对象成员:引用数据类型如字符串,那么堆中有各个地址指向方法区中的引用类型
  • 引用类型数组:arr指向一个地址,然后顺着地址找到堆中的地址块,可以找到这个数组存储的地址快
    • 数组成员:基本数据类型如int,直接在那个地址的arr[0]中存储
    • 数组成员:引用数据类型如字符串,那么堆中有各个地址指向方法区中的引用类型
  • 顺序:栈 => 堆 => 方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值