精华内容
下载资源
问答
  • 这意味着该类具有特定类别的描述,(我想用Java来举例说明类,对象和实例之间的区别,并且我会要求读者在阅读它时像一个故事一样对其进行可视化,如果您不熟悉Java没关系)因此让我们首先创建一个名为HumanBeing的类别...

    “ 类别”一词来自“ 分类”(将类别放入其中的“ 类别”),现在我们都听说“ 类别”就像一个蓝图,但这到底是什么意思?这意味着该类具有特定类别的描述,(我想用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

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

    结论:

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

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

    我希望这有帮助

    谢谢

    展开全文
  • 那么类变量和实例变量有什么区别呢?我们已经知道:一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,说得准确些就是:不同的对象的实例变量将被分配不同的内存空间,如果类中的...

    类体的定义包括成员变量的定义和方法的定义,并且成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?

    我们已经知道:一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,说得准确些就是:不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。

    我们知道,当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存。但是,类中的类变量,在该类被加载到内存时,就分配了相应的内存空间。如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存,所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行,才释放所占有的内存。Java语言允许通过类名直接访问类变量。

    下面例子中的梯形对象共享一个下底。

    例子

    class 梯形

    {

    float

    上底,高;

    static

    float

    下底; //类变量。

    梯形(float

    上底,float 高)

    {

    this.上底=上底;

    this.高=高;

    }

    float

    获取上底()

    {

    return 上底;

    }

    float

    获取下底()

    {

    return 下底;

    }

    }

    class Example4_5

    {

    public

    static void main(String args[])

    {

    梯形

    laderOne,laderTwo; //梯形的字节码被加载到内存。

    梯形.下底=60; //通过类名操作类变量。

    laderOne=new 梯形(18.0f,20);

    laderTwo=new 梯形(9.0f,10);

    System.out.println("laderOne的上底:"+laderOne.获取上底());

    System.out.println("laderOne的下底:"+laderOne.获取下底());

    System.out.println("laderTwo的上底:"+laderTwo.获取上底());

    System.out.println("laderTwo的下底:"+laderTwo.获取下底());

    }

    }

    展开全文
  • 在学习Java反射的过程中,遇到了一点疑惑的地方 //1.获取Class对象 Class clazz = Class.forName("com.atguigu.java.fanshe.Person"...平常理解的对象和实例都是一个东西,将一个对象实...

    在学习Java反射的过程中,遇到了一点疑惑的地方

    //1.获取Class对象
    Class clazz = Class.forName("com.atguigu.java.fanshe.Person");  
    //2. 利用Class对象的newInstance方法创建一个类的实例
    Object obj =  clazz.newInstance();
    

    平常理解的对象和实例都是一个东西,将一个对象实例化,可以直接使用new关键字直接实例化对象,为什么在Java反射中,出现了两次一样的操作,先创建了对象,又再次把对象实例化?

    这要说到Class类的理解,Java中,万物可对象,类其实也是一个对象,而Class类就是用来描述所有类的这么一个类,每个类在JVM中只有一个Class实例。
    所以说通过Class.forName()获取到的Class对象,其实只是一个“类”,还并没有对这个“类”实例化,所以需要再次对“类”进行实例化。

    参考博客:https://www.cnblogs.com/tech-bird/p/3525336.html

    展开全文
  • java中工厂实例就是工厂对象对吗,普通实例普通对象有什么区别
  • 我理解创建对象和创建变量之间的...但我的观点是,这两者之间有什么区别?private MusicPlayer player;player = new MusicPlayer();MusicPlayer是一个类,但我们究竟在这做什么?解决方法:private MusicPlayer player...

    我理解创建对象和创建变量之间的区别.例如:

    private int number;

    MyClass myObj = new MyClass();

    但我的观点是,这两者之间有什么区别?

    private MusicPlayer player;

    player = new MusicPlayer();

    MusicPlayer是一个类,但我们究竟在这做什么?

    解决方法:

    private MusicPlayer player;

    在这里,您可以在不初始化的情况下创建MusicPlayer类的引用变量(但不创建对象).所以你不能使用这个变量,因为它只是没有指向任何地方(它是null).

    例如,使用Point类:

    Point originOne;

    可以这样表示:

    player = new MusicPlayer();

    在这里,您分配一个MusicPlayer类型的对象,并将其存储在播放器参考中,以便您可以使用它上面的所有功能.

    例如,使用Point类,使用x和y坐标:

    Point originOne = new Point(23, 94);

    可以这样表示:

    两条线的组合相当于:

    private MusicPlayer player = new MusicPlayer();

    标签:java,class

    来源: https://codeday.me/bug/20190929/1830918.html

    展开全文
  • 类的引用和对象的概念没什么好弄混的,但是对象和实例之间的区别让人疑惑,在《Thinking in Java》一书里提到:“每个对象都是某个类(class)的一个实例,这里类就是类型的意思”。很多地方提到对象和实例就是一个...
  • 声明,实例化与初始化一个对象有什么区别? what is the difference between Declaring Objects and Initializing an object? 与该主题相关的三种术语:声明(declaring),初始化(Initializing)和实例化...
  • new一个Java对象时,初始化和实例有什么区别?各自做什么?
  • 区别如下:(推荐学习:java入门)1、int 是基本类型,直接存数值;而integer是引用数据类型。2、Int的声明不需要实例化,且变量声明后的初始值为0;Integer是一个类,初始值为null,需要进行实例化,才能对变量数据...
  • 一、****************************...b1:反射属于动态编译,意思就说只有到运行时才会去获得该对象实例,大多框架都是使用反射获取对象实例,如Spring 二、*****************************************************...
  • 这时候,每个实例在 JVM 中都自己的引用地址堆内存空间,这时候,我们就认为这些实例都是独立的个体,很显然,在实例上加的锁其他的实例就没有关系,互不影响了。对象锁一般三种方式1、 锁住对象里的非静态...
  • 一、**********************************************************************a1:new属于静态编译b1:反射属于动态编译,意思就说只有到运行时才会去获得该对象实例,大多框架都是使用反射获取对象实例,如Spring...
  • 对象和类的关系:Java中的类:Java中的对象Java中的变量Java 中调用 对象的属性(状态) 和 方法(行为)感谢感谢您的阅读,收获?希望兄弟姐妹三叔六婶大姨大妈阿公阿婆来个三连击,给更多的同学看到 这篇文章,感谢...
  • 一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类BufferedReader,Scanner。 实例程序: 1、利用 Scanner 实现从键盘读入integer或float 型数据 //import jav
  • 在程序RUN的一瞬间,什么类啊,静态的东西啊(静态块,静态方法...执行到new对象时,才会实例对象,记住:类加载,只执行一次,即只有一个类对象(注意不是实例对象),无论你以后怎么个new法,新new的都是实例对象
  • 例如,局部变量没有默认值,在这种情况下,您将不得不手动分配空值,其中,如果实例变量分配null是多余的,因为实例变量获取默认值.public class Test {Object propertyObj1;Object propertyObj2 = null; // assigning ...
  • 和对象有什么区别java中的类通过class关键字进行定义,代表的是一种抽象的集合,在类中可以定义各种的属性方法,代表的是每一个类的实例的特定的数据动作,java虚拟机对类仅仅加载一次,对类中的静态成员也...
  • 属性:描述事物有什么状态信息。 行为:该对象可以做什么。 什么是对象 一句话,实例化一个对象。 2. 创建类 1.创建一个学生类 //类具有全局变量成员方法 //成员方法是没有static关键字的 //你要是在其他的类中...
  • 二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法...
  • 如果此对象对象锁已被其他调用者占用,则需要等待此锁被释放同步静态方法/静态变量互斥体由于一个class不论被实例化多少次,其中的静态方法静态变量在内存中都只由一份。所以,一旦一个静态的方法被申明为...
  •  在Java一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么对象,需要跟类一起结合起来理解。下面这段话引自《Java编程思想》中的一段原话:  “按照通俗的说法,每个对象...
  • 二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例...
  • 二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例...
  • 对象锁&类锁 对象锁 当一个对象synchronized method或synchronized block的时候调用此...由于一个class不论被实例化多少次,其中的静态方法静态变量在内存中都只由一份。所以,一旦一个静态的方法被申明为synch
  • java里类方法和实例方法区别 我们已经知道类体中的方法分为实例方法和类方法两种,用static修饰的是类方法。二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。 当类的字节码文件...
  • Java高级面试攻略:消息+缓存+高并发+高可用+架构+分布式+微服务类锁和实例锁是常见的面试题,时不时都会看到有同学讨论,在类上加锁和在 new 出来的类实例上加锁到底有什么区别呢?来,今天让你彻底搞明白类锁和...
  • Java基础之intInteger有什么区别 1Java两种数据类型 2 java为基本数据类型提供了封装类型 封装类类型:Byte、Short、Integer、Long、Float、Double、Charatcer、Boolean 3 int与Integer的基本使用对比 (1)...
  • 二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 992
精华内容 396
关键字:

java对象和实例有什么区别

java 订阅