java系列:搞不懂java的类与对象?我来帮你搞定!

190 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

类与对象

问题引出

看一个养猫问题

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

使用现有技术解决Object01.java

(1)单独的定义变量模块解决

使用数组解决

(2)现有技术解决的缺点分析

不利于数据的管理,效率低

==》类与对象

Object01.java

public class Object01 {
    public static void main(String[] args) {
        /*
        张老太养了两只猫猫:一只名字叫小白,白色,今年三岁,还有一只叫小花,今年一百岁,花色。
        请编写一个程序,当用户输入小猫名字的时候,就显示该猫的名字,年龄,颜色。
        如果用户输入的小猫名错误,就显示,张老太没有这只猫猫
        */
        //单独变量来解决,不利于数据的管理(把一只猫的信息拆解)
//        String cat1Name = "小白";
//        String cat2Name = "小花";
//
//        int cat1age = 3;
//        int cat2age = 100;
//
//        String cat1color = "白色";
//        String cat2color = "花色";
//
//        //数组  ==》数据类型体现不出来,只能通过下标获取信息,造成了变量名和内容对应关系不明确
//        //不能体现猫的行为
//
//
//        String[] cat1 = {"小白","3","白色"};
//        String[] cat2 = {"小花","100","花色"};
​
        //使用OOP面向对象解决
        //实例化一只猫【创建一个对象】
​
        //1.new Cat() 创建一只猫
        //2.Cat cat1 = new Cat();把创建的猫赋给cat1
        //cat1就是一个对象,cat2也是一个对象(猫对象)
​
​
        Cat cat1 = new Cat();
        cat1.name = "小白";
        cat1.age = 3;
        cat1.color = "白色";
​
        //第二只猫,叫cat2
        Cat cat2 = new Cat();
        cat2.name = "小花";
        cat2.age = 100;
        cat2.color = "花色";
​
        //怎么访问对象的属性
​
        System.out.println("第一只猫的信息是" + " " + cat1.name + " " + cat1.age + " " + cat1.color + " ");
        System.out.println("第二只猫的信息是" + " " + cat2.name + " " + cat2.age + " " + cat2.color + " ");
​
​
    }
}
​
​
​
//使用面向对象的方式来解决养猫问题
//定义一个猫类-》相当于一个自定义的数据类型
class Cat{
    //属性
    String name;//名字
    int age;//年龄
    String color;//颜色
​
​
    //行为
​
​
}

java的设计者引入类和对象,根本原因就是现有的技术,不能完美的解决新的需求

一个程序就是一个世界,有很多事务(对象【属性,行为】)

注意:从猫类到对象,目前有几种说法:

  1. 创建一个对象
  2. 实例化一个对象、
  3. 把类实例化。。。。

当然,上面的猫可能是鱼,狗,人……Java最大的特点就是面向对象

快速入门

Object01.java

类与对象的区别和联系

通过上面的例子可以看出

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

对象在内存中的存在形式

1.png

属性

属性/成员变量

基本介绍

从概念或叫法上看:成员变量 = 属性 = field(即 成员变量是用来表示属性的,我们统一先叫属性)案例演示Car(name,price,color)

属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)比如我们前面定义的猫类的int age 就是属性

属性细节说明

  1. 属性的定义语法同变量,示例:访问修饰符 属性类型 属性名;访问修饰符介绍:控制属性的访问范围,有四种访问修饰符

    1. public
    2. protected
    3. 默认
    4. private
  2. 属性的定义类型可以为任意类型,包含基本类型或引用类型

  3. 属性如果不赋值,有默认值,规则和数组一致

访问属性

基本语法:对象名.属性名

案例演示赋值和输出

类与对象的分配机制

看一个思考题

我们定义一个人类(Person)(包括:名字,年龄)(Object03.java)

image.png

2.png

今天的分享就到这儿里,你学会了吗?