目录

说在前面的话

复现问题

引用数据类型的理解

总结


  • 说在前面的话

前言:Java的数据类型按照类型可分为基本数据类型(byte、short、int、long、double、float、char、boolean)和引用数据类型(类(class)、接口(interface)、数组(array)),8种基本数据类型相信只要接触过Java就比较熟悉。而对于引用数据类型相对来说比较陌生,下边会对引用数据类型中的类(class)做一个比较浅显的介绍,这也是由于我自己在学习的过程中碰见了问题,难以理解之后查阅了相关资料稍微理解了一点儿,希望能学习过程中不理解这块的同道中人提供一些可借鉴的地方!!!

  • 复现问题

下面是我写的两个类,描述问题:可以看到类B的第二个属性被定义为private A a;显然是用了第一个自定义的类 作为数据类型,当我看到这一步我有点儿懵了,经过网上阅读博客借鉴加上自身理解,故有此篇博文!

public class A {private int age;private String name;……
}
public class B {private int score;private A a;……
}
  • 引用数据类型的理解

引用类型指向一个对象,不是原始值,指向对象的变量是引用变量,那么引用数据类型相较于基本数据类型,与基本数据类型有哪些区别或是特性?我们不妨可以通过一个客户存钱与取钱的例子进行解释:

Accout类:定义了账号、余额私有属性,定义构造方法对属性进行赋值的同时提供了对应的get/set方法。此外提供取款withdraw()方法以及存款deposit()方法进行相关操作。

public class Account {private int id;//账号private double balance;//余额public Account(int id, double balance) {//构造方法this.id = id;this.balance = balance;}public int getId() {return id;}public void setId(int id) {this.id = id;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}public void withdraw(double amount) {//取款if (balance >= amount) {balance -= amount;System.out.println("取款成功:" + amount + "元," + "账户余额为:" + this.getBalance() + "元");} else {System.out.println("取款失败");}}public void deposit(double amount) {//存款if(amount > 0) {balance += amount;System.out.println("存款成功:" + amount + "元," + "账户余额为:" + this.getBalance() + "元");} else {System.out.println("存款失败");}} }

Customer类:定义了name私有属性,使用Java自定义类Account作为属性数据类型(重复上文提到的:引用类型指向一个对象,不是原始值,指向对象的变量是引用变量),是否可以理解为Customer类中属性是包含Account类的,private Account account是否可以说是定义了Account类的一个对象,正如灯管和灯泡,灯管中必定是包含着灯泡的。

public class Customer {private String name;//姓名private Account account;//账单,引用数据类型,与String类型进行比较,String[] string = new String[10];public Customer(String name) {//构造方法this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Account getAccount() {return account;}public void setAccount(Account account) {this.account = account;}
}

CustomerTest类:测试类,我们先定义了Customer类的一个对象并通过构造方法赋值,接着定义了Account类的一个对象并赋值,比较重要的一步是如何将账户信息与客户之间建立联系,我们在Customer类中提供了account属性的set方法,可以将我们定义的Account类的对象作为参数调用Customer类对象的setAccoount()方法,这样我们就使得客户有了自己的账户信息,这也就是类作为引用数据类型的一个作用。

public class CustomerTest {public static void main(String[] args) {Customer customer = new Customer("haitao");//创建用户对象customerAccount account = new Account(1000, 2020);//创建账单对象customer.setAccount(account);//实现客户与账单的联系System.out.println("当前客户ID:" + account.getId() + ",账户余额为:"+ account.getBalance() + "元");System.out.println("**********************************");customer.getAccount().deposit(100);//存款customer.getAccount().withdraw(960);//取款}
}

在eclipse中运行程序,我们将会看到以下的结果:

  • 总结

我们可以看到Java自定义类作为数据类型的一个作用,可以使得两个类之间能够建立起联系,博文只是简单的从表面上进行了类作为引用数据类型的一些介绍,并没有进行更加深入细致的详解,毕竟我本人也就是一个初学者,自己的理解也没有大牛那么深刻,可能在一些细节的表述有出入不恰当,欢迎大家指正共同进步,希望对大家有所帮助!

理解Java自定义类作为数据类型——引用数据类型相关推荐

  1. java四类八种基本数据类型

    java基本数据类型就8种,除了这些都是引用型的了.  一.java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 ...

  2. js数据类型(基本数据类型 | 引用数据类型)

    一.数据类型 JS分两种数据类型: 基本数据类型:**Number.String.Boolean.Null. Undefined.Symbol(ES6),**这些类型可以直接操作保存在变量中的实际值. ...

  3. (JAVA面试)基本数据类型 引用数据类型详解

    基本数据类型 byte 1字节 short char 2字节 int float 4字节 double long 8字节 引用数据类型 引用类型指向一个对象,不是原始值,指向对象的变量是引用变量 在j ...

  4. 数据类型和存储上的差别,基本数据类型,引用数据类型

    在 js 中把我们的数据进行了分类,可以理解为 2 大类 基本数据类型: string,number,null,Boolean,undefined,symbol 引用数据类型: Object,Arra ...

  5. 基本数据类型引用数据类型

    1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动释放 2.数据类型 JS分两种数据类型: js的六或七大数据类型 ...

  6. 【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )

    文章目录 引用类型 引用类型 引用数据类型 : 1. 引用数据类型定义 : 类型名称& 变量名 = 对应类型变量名称 ; //① 定义 普通 类型 变量int a = 8;//② 定义 引用类 ...

  7. java自定义类创建数组_java 创建自定义数组

    1.java创建自定义类数组方法: student []stu = new student[3]; for(int i = 0; i < 3; i ++) { stu[i] = new stud ...

  8. Java 自定义类数组的初始化

    1 简介 若初始化不到位,常遇到"空指针异常"(java.lang.NullPointerException)的问题. 此类解决方案是:在声明自定义类数组后,必须再对每一个数组元素 ...

  9. java中的五种引用数据类型(对象类型)

    注意,不是JVM中的四种引用类型:强.软.弱.虚引用. 详见我的另一篇文章<JVM中的四种引用类型> Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注 引用类型:底层结构和 ...

最新文章

  1. GitHub有望在中国开设子公司?
  2. 鸿蒙开发-新建Ability与使用image-animator实现图帧动画
  3. VTK:网格之ClipFrustum
  4. Dalvik内存管理
  5. java版 modbus crc16校验 (已测试成功)_java版 ModBus CRC16校验 (已测试成功)
  6. 会动的图解!GMP模型里为什么要有P?背后的原因让人暖心
  7. 微课|玩转Python轻松过二级(2.1.1):常量与变量
  8. 开发健康状态监控接口
  9. 获取和设置消息队列的属性msgctl,删除消息队列
  10. 火了!杭州程序员自编“购房宝典”,点击超40万,业内人士惊呆
  11. 每天进步一点点——Linux系统中的异常堆栈跟踪简单实现
  12. 深耕金融行业数字化转型,人大金仓数据库自主可控解决方案综述
  13. 施耐德 m340 编程手册_施耐德电气自动化软件汇总
  14. 关于平面设计海报怎么做?——黎乙丙
  15. 长连接和短链接在服务器占用资源,TCP长连接和短链接及优缺点
  16. 第四章 信道与信道容量
  17. java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式
  18. 装机必备android东西nbsp;有你需…
  19. python安装random_如何安装python randon
  20. 1235813找规律第100个数_2013年全国中考数学规律探索试题汇编

热门文章

  1. 7个找头像的工具,网站、APP都有,让你有用不完的头像
  2. 华晨中华H330似曾相识别处来
  3. java计算机毕业设计vue学习视频课程网站源码+mysql数据库+系统+lw文档+部署
  4. 全国进入裁员潮,到底是大厂难混?还是我技不如人?
  5. 夫妻之间的情与理和哄与捧
  6. word2vec中的skipgram和CBOW的比较
  7. Android Studio 项目设计开发bug记录以及未来新技术
  8. 计算机电源多低无法使用吗,电脑电源供电不足会怎么样 电脑电源供电不足坏处介绍【详解】...
  9. Apache APISIX 携手 CoreDNS 打开服务发现新大门
  10. C++——入门基础知识