为什么出现类这个概念


前言

示例:张老太养了两只猫猫:一只名字叫小白,今年3岁,白色。还有一只叫小花,今年100岁,花色。请编写一个程序,当用户 输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,则显示张老太没有这只猫猫。


方法一:单独变量来解决

public class Object01 {
    public static void main(String[] args) {
        String cat1Name = "小白";
        int cat1Age = 3;
        String cat1Color = "白色";

        String cat2Name = "小花";
        int cat2Age = 100;
        String cat2Color = "花色";
    }
}

从上面代码来看,单独的变量是可以解决这个需求的,但是如果需求变更,就会面临一些问题:

  1. 如果猫数量很多怎么办?
  2. 如果猫多了体重、爱好等该怎么解决?

我们发现使用单独的变量来操作不利于数据的管理(把一只猫的信息拆解了)。

方法二:数组

public class Object02 {
    public static void main(String[] args) {
        String []cat1 = {"小白","3","白色"};
        String []cat2 = {"小花","100","花色"};
    }
}

我们发现使用数组比单独的变量要好一些,毕竟使用一个数组就可以管理一只猫的信息,但是依然存在问题:

  1. 用String类型的数组,体现不出数据类型,比如年龄应该用int
  2. 在取内容时只能从数组的下标来取,失去了变量名和内容的对应关系
  3. 不能体现猫的行为

单独的定义变量解决、使用数组解决,不利于数据的管理、效率低。

一、类、对象是什么?

类与对象的关系示意图:
在这里插入图片描述

  1. 类就是数据类型,比如Cat
  2. 对象就是一个具体的实例

二、使用OOP面向对象解决

import java.util.Scanner;

class Cat {
    String name;
    int age;
    String color;
}

public class Object01 {
    public static void main(String[] args) {
        Cat cat1 = new Cat();//创建第一只猫,把这只猫赋给cat1
        cat1.name = "小白";
        cat1.age = 3;
        cat1.color = "白色";
        Cat cat2 = new Cat();//创建第二只猫,把这只猫赋给cat2
        cat2.name = "小花";
        cat2.age = 100;
        cat2.color = "花色";
        //cat1与cat2都是一个对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入猫猫的姓名:");
        String inputName = scanner.nextLine();
        if ("小白".equals(inputName)) {
            System.out.println("姓名" + cat1.name + "," + "年龄" + cat1.age + "," + "颜色" + cat1.color);
        } else if ("小花".equals(inputName)) {
            System.out.println("姓名" + cat2.name + "," + "年龄" + cat2.age + "," + "颜色" + cat2.color);
        } else {
            System.out.println("您没有这只猫猫!!");
        }
    }
}

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


总结

  1. 类是抽象的,概念的,代表一类事物,比如人类、猫类…,即它是数据类型
  2. 对象时具体的,实际的,代表一个具体事物,即是实例
  3. 类是对象的模板,对象是类的一个个体,对应一个实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值