“ 类别”一词来自“ 分类”(将类别放入其中的“ 类别”),现在我们都听说“ 类别”就像一个蓝图,但这到底是什么意思?这意味着该类具有特定类别的描述,(我想用Java来举例说明类,对象和实例之间的区别,并且我会要求读者在阅读它时像一个故事一样对其进行可视化,如果您不熟悉Java没关系)因此让我们首先创建一个名为HumanBeing的类别,这样Java程序将如下表示。

class HumanBeing{

/*We will slowly build this category*/

}

现在,HumanBeing一般具有名称,年龄,身高,体重的哪些属性,现在让我们将自身限制为这四个属性,然后将其添加到类别中

class HumanBeing{

private String Name;

private int Age;

private float Height;

private float Weight;

/*We still need to add methods*/

}

现在,每个类别都有一个行为,例如类别Dog的行为是吠叫,抓取,滚动等。类似地,我们的类别HumanBeing也可以具有某些行为,例如,当我们问问HumanBeing时,您的名字/年龄/体重/高度?它应该给我们它的名字/年龄/体重/身高,所以在java中我们这样做

class HumanBeing{

private String Name;

private int Age;

private float Height;

private float Weight;

public HumanBeing(String Name,int Age,float Height,float Weight){

this.Name = Name;

this.Age  = Age;

this.Height = Height;

this.Weight = Weight;

}

public String getName(){

return this.Name;

}

public int getAge(){

return this.age;

}

public float getHeight(){

return this.Height;

}

public float getWeight(){

return this.Weight;

}

}

现在,我们将行为添加到了HumanBeing类别中,因此我们可以询问其名称,年龄,身高,体重,但是您可以从谁那里询问这些详细信息,因为class HumanBeing这只是一个类别,它是一个蓝图,例如,建筑师为他要建造的建筑物的文件,现在我们不能继续在蓝图(对建筑物的描述)中居住,我们只能在建筑物建成后居住在建筑物中,所以在这里我们需要从我们的类别中创建人类上面已经描述过了,那么我们该如何在Java中做到这一点呢?

class Birth{

public static void main(String [] args){

HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);

}

}

现在,在上面的示例中,我们创建了第一个名称为age height weight的人,那么上面的代码中到底发生了什么?。我们正在实例化类别HumanBeing,即创建了该类的对象

注意: 对象和实例不是同义词在某些情况下,似乎对象和实例是同义词,但它们不是同义词,我会给出两种情况

情况1:对象和实例似乎是同义词。

让我详细说明一下,当我们说在堆内存上创建了该类别HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90); 的对象并为其分配了一些地址,并持有对该地址的引用时,现在该对象为人的对象也是人的实例。在这里,似乎对象和实例是同义词,我再说一遍,它们不是同义词firstHuman

让我们恢复我们的故事,我们创建了第一个人类,现在我们可以问他的名字,年龄,身高,体重,这就是我们在Java中的做法

class Birth{

public static void main(String [] args){

HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);

System.out.println(firstHuman.getName());

System.out.println(firstHuman.getAge());

...

...

}

}

因此,我们拥有第一个人类,并通过赋予我们的第一个人类一定的资格来让自己动弹,让我们让他成为医生,因此我们需要一个名为Doctor的类别并赋予Doctor一些行为,因此在Java中,我们可以这样做

class Doctor extends HumanBeing{

public Doctor(String Name,int Age,float Height,float Weight){

super(Name,Age,Height,Weight);

}

public void doOperation(){

/* Do some Operation*/

}

public void doConsultation(){

/* Do so Consultation*/

}

}

在这里,我们使用了继承的概念,它在代码中带来了一定的可重用性,每个Doctor永远都是HumanBeing的第一人,因此Doctor的Name,Age,Weight,Height将从HumanBeing继承而来,而无需再次编写,请注意,我们只是写了一份尚未创建医生的说明,所以让我们在我们的医生中创建一名医生。class Birth

class Birth{

public static void main(String [] args){

Doctor firstDoctor = new Doctor("Strange",40,6,80);

.......

.......

/*Assume some method calls , use of behaviour*/

.......

.......

}

}

情况2:对象和实例不是同义词

在上面的代码中,我们可以直观地看到我们正在实例化Doctor类并将其变为现实,即我们只是创建了Doctor类的Object,因为我们已经知道Object是在堆内存上创建的并firstDoctor在堆上保存对该Object的引用;

这个特定的对象firstDoctor如下(请注意firstDoctor,它持有对该对象的引用,它不是对象本身)

firstDoctor是A的对象class Doctor和A的实例class Doctor

firstDoctor是不是一个对象class HumanBeing,但实例class HumanBeing

因此,特定对象可以是特定类的实例,但不必是该给定类的对象

结论:

如果对象满足特定类别的所有特征,则称该对象为该特定类别的实例。

现实世界的例子如下,我们最初是人类,因此将我们形象化为人类的对象,现在,当我们长大后,我们承担起责任,学习新技能,并在人生中扮演不同的角色。儿子,兄弟,女儿,父亲,母亲现在我们到底是什么?我们可以说我们是人类的对象,但兄弟,女儿等的实例

我希望这有帮助

谢谢

java 对象和实例有什么区别_对象和实例之间的区别相关推荐

  1. 验证和确认的区别_验证与确认之间的区别

    验证和确认的区别 Today we are going to cover the topic difference between Verification and Validation. 今天,我们 ...

  2. 框架和库的区别_框架和库之间的区别

    框架和库的区别 Developers often use the terms "library" and "framework" interchangeably ...

  3. 无监督和有监督的区别_机器学习和人工智能之间的区别

    机器学习示意图 机器学习是人工智能的一门学科,其中人工智能的应用范围更广,涵盖了与人类智能相似的主要系统.术语机器学习和人工智能的区别在于,人工智能是模仿人类智能的所有应用,智能发明的设计和综合.另一 ...

  4. JavaScript的Date对象的setTime()与setDate()方法之间的区别

    Date对象的setTime()与setDate()方法之间的区别 1.setTime()方法 setTime()方法以毫秒设置Date对象: dateObject.setTime(millisec) ...

  5. java集群和分布式 区别_集群和分布式的区别?

    集群和分布式有什么区别? 分布式系统: 分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统 ...

  6. serverlet 区别_浅谈JSP serverlet的区别与联系

    jsp是html包含java servlet是java包含html jsp请求到tomcat---tomcat封装了jsp到servlet实现. 所以jsp请求时候,会自动创建session 而不用在 ...

  7. python是什么和c++是什么区别_编程c++和python的区别

    展开全部 论坛 活动 招聘 专题 打开2113CSDN APP Copyright © 1999-2020, CSDN.NET, All Rights Reserved 登录 一颗日成 关注 浅谈52 ...

  8. 语法和语义之间的差异_语法和语义之间的区别

    语法和语义之间的差异 Here you will learn about difference between Syntax and Semantics with example. 在这里,您将通过示 ...

  9. iVMS-4200 Vs区别_高中和大学的这些区别虽鲜为人知,却字字有据,句句真实

    学有方法,考有技巧,优学优考策略致力于学与考的最优结合,助力学子考入理想大学! 终于到了上大学的年纪,身边的小伙伴都走上了各奔前程的路,你也不例外吧,在一个人的路上越走越远.或许这个时候的你才慢慢的懂 ...

最新文章

  1. lampapache+mysql+php
  2. 阿里云OSS 服务端签名后直传之分片上传(结合element-ui的upload组件)
  3. windows tomcat 升级openssl_Linunx开发环境配置——Tomcat
  4. 螺旋矩阵 IIPython解法
  5. Algorithm I assignment Collinear
  6. HDU - 4305 - Lightning 生成树计数 + 叉积判断三点共线
  7. css清除浮动的几种方法_清除浮动的几种方法
  8. 增强 for 循环 和 普通for 循环的 区别总结
  9. VS2008引用webservice的奇怪BUG解决方案
  10. [PHP] - visitFile()遍历指定文件夹
  11. 联合国devnet_联合国人权可能会适用于人工智能,如果是这样,考虑一下自动驾驶汽车的奇怪案例
  12. 基于matlab的信号与系统课程设计,信号与系统课程设计基于 MATLAB 完成信号与系统综合设计实验...
  13. 64位win10下usb转485驱动
  14. 计算机基础的课程标准,《计算机基础》课程标准
  15. 史上最详细的Pytorch版yolov3代码中文注释详解(四)
  16. 软件测试周刊(第71期):大悲时不发言,大怒时不争辩,大喜时不许诺。
  17. C语言编程学习:使用函数必须知道的3点注意事项
  18. Boost.Locale 之字符转换 gbk utf8 big5 string wstring等
  19. 十大管理之项目成本管理知识点
  20. 如何抛弃鼠标全键盘操作xcode

热门文章

  1. vue空格填充 空格填充_什么是凭证填充? (以及如何保护自己)
  2. 源代码保密/防泄漏产品种类分析
  3. PDF→Excel格式转换工具集锦!
  4. MySQL数据库学习笔记 4/24
  5. MySQL存储引擎,索引,锁机制
  6. 智慧电网的重要监测技术
  7. 多媒体会议音响扩声系统
  8. matplotlib如何保存图片至当前路径
  9. 游戏史上被迫修改服务器玩家,游戏史上影响最大的四次更新,为了挽回败局,直接炸掉整个服务器...
  10. SRS文档 软件需求说明书