自学JAVA-类、属性、对象

本文通过实例介绍了面向对象编程的基础概念,包括类的定义、属性的使用、对象的创建与赋值、构造函数的作用。通过创建Cat类来管理多只猫的信息,展示了如何利用类模板简化代码,以及如何通过构造函数更高效地初始化对象。同时,探讨了对象复制与引用的影响,揭示了对象引用与深拷贝的区别。
摘要由CSDN通过智能技术生成

类、属性、对象

1.为什么需要类
    有三只猫,
    一只名字叫小白,今年2岁,白色。
    一只叫小黑,今年3岁,黑色。
    还有一只叫小花,今年4岁,花色。
    如何在代码中,方便管理这些信息。
    假设有100只猫呢?如果有一个模板,就方便很多了。
    
2.类的定义方法

3.属性(成员变量/字段/Field)的概念
    属性定义语法与变量一致,只是多了访问修饰符
    访问修饰符 属性类型 属性名
    属性类型可以是任意类型,可以是基本数据类型和引用类型
    属性如果没有初始化,有默认值,与数组一致
    
4.对象的创建(实例化)
    Cat cat; // 声明
    cat = new Cat(); // 开辟空间,把地址赋值给cat
    
5.类与对象的概念

6.类相当于自定义数据类型

7.类外面赋值和获取对象属性

8.构造函数的概念

9.案例
    
创建一个文件Catpublic class Cat {

    // 定义类,创建模板
    String name = null;
    int age = 0;
    String color = null;
}



在测试文件中写
import java.util.ArrayList;

public class Hello {
    public static void main(String[] args) {

        Cat cat;//声明
        cat = new Cat();//开辟空间,把地址赋值给cat
        cat.name = "小白";
        cat.age = 2;
        cat.color = "白色";

        System.out.println(cat.name);
        System.out.println(cat.age);
        System.out.println(cat.color);

        Cat cat2;//声明
        cat2 = new Cat();//开辟空间,把地址赋值给cat
        cat2.name = "小黑";
        cat2.age = 3;
        cat2.color = "黑色";

        System.out.println(cat2.name);
        System.out.println(cat2.age);
        System.out.println(cat2.color);


    }
}
创建一个文件Cat(在类中右键idea -> Generate... ->Constructor,会自动构造函数)

public class Cat {

    // 定义类,创建模板
    String name = null;
    int age = 0;
    String color = null;

    public Cat(String name, int age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }
}



在测试文件中写


public class Hello {
    public static void main(String[] args) {

        Cat cat1 = new Cat("小白", 2, "白色");
        Cat cat2 = new Cat("小黑", 3, "黑色");

        System.out.println(cat1.name);
        System.out.println(cat2.name);


    }
}


创建一个文件Catpublic class Cat {

    // 定义类,创建模板
    String name = null;
    int age = 0;
    String color = null;
}



在测试文件中写


public class Hello {
    public static void main(String[] args) {

        Cat a = new Cat();
        a.age = 30;
        a.name = "CZW";
        Cat b;
        b = a;
        System.out.println(b.name); // CZW
        b.age = 200;
        b = null;
        System.out.println(a.age); // 200
        System.out.println(b.age); // 报错,空指针异常,NullPointerException

        // 如果需要不影响原有的那就重新new一个
        Cat c = new Cat();
        c.name = a.name;
        c.age = a.age;
        a.age = 300;
        System.out.println(c.age); // 200
        System.out.println(a.age); // 300
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值