OOPs中类和对象之间的区别

类与对象的关键区别

  • 类是程序中用于创建对象的模板,而对象是类的实例。
  • 类是逻辑实体,而对象是物理实体。
  • 类不分配内存空间;另一方面,对象会分配内存空间。
  • 您只能声明一次类,但可以使用一个类创建多个对象。
  • 类不能被操作,而对象可以被操作。
  • 类没有值,而对象有自己的值。
  • 您可以使用“class”关键字创建类,而在Java中,您可以使用“new”关键字创建对象。
Class vs Object
类与对象

什么是类?

类是确定对象如何行为以及对象将包含什么的实体。换句话说,它是创建特定类型对象的蓝图或一套指令。它为成员变量和成员函数或方法提供初始值。

什么是对象?

对象是包含方法和属性以使数据有用的自包含组件。它有助于确定类的行为。

例如,当您向对象发送消息时,您是在要求该对象调用或执行其方法之一。

从编程的角度来看,对象可以是数据结构、变量或函数,它们具有已分配的内存位置。对象是作为类层次结构设计的。

类与对象——它们之间的区别

以下是类与对象的重要区别

对象
类是程序中用于创建对象的模板。 对象是类的实例。
类是逻辑实体 对象是物理实体
类在创建时不会分配内存空间。 对象在创建时会分配内存空间。
您只能声明一次类。 您可以使用一个类创建多个对象。
示例:汽车。 示例:捷豹、宝马、特斯拉等。
类生成对象 对象赋予类生命
类不能被操作,因为它们不在内存中。 它们可以被操作。
它没有与字段关联的任何值。 每个对象都有自己的值,这些值与字段关联。
您可以使用“class”关键字创建类。 您可以在Java中使用“new”关键字创建对象

通过示例了解Java类和对象的概念。

让我们以开发一个宠物管理系统为例,该系统专门针对狗。您需要有关狗的各种信息,例如狗的不同品种、年龄、体型等。

您需要将现实世界中的事物,即狗,建模为软件实体。

Concept of Java Classes and Objects

此外,百万美元的问题是,您如何设计这样的软件?这是解决方案——

首先,让我们做一个练习。

您可以在下方看到三种不同品种狗的图片。

Concept of Java Classes and Objects

现在就停在这里!列出它们之间的差异。

您可能列出的一些差异是品种、年龄、体型、颜色等。如果您仔细想想,这些差异也是这些狗之间的一些共同特征。这些特征(品种、年龄、体型、颜色)可以构成您的对象的成员变量。

Concept of Java Classes and Objects

接下来,列出这些狗的共同行为,如睡觉、坐、吃等。所以这些将是我们软件对象的行为。

Concept of Java Classes and Objects

到目前为止,我们已经定义了以下内容:

  • :狗
  • 数据成员对象:体型、年龄、颜色、品种等。
  • 方法:吃、睡、坐和跑。

Concept of Java Classes and Objects

现在,对于Java类中数据成员(品种、体型、年龄和颜色)的不同值,您将获得不同的狗对象。

Concept of Java Classes and Objects

您可以使用这种面向对象的编程方法来设计任何程序。

Java中的类和对象

在下面的程序中,我们声明了一个名为 Dog 的类。我们使用 new 关键字定义了一个名为“maltese”的类对象。在最后一条语句 System.out.println(maltese.getInfo()); 中,我们显示了狗的信息,如品种、体型、年龄、颜色等。

// Class Declaration
class Dog {
    // Instance Variables
    String breed;
    String size;
    int age;
    String color;
  
    // method 1
    public String getInfo() {
        return ("Breed is: "+breed+" Size is:"+size+" Age is:"+age+" color is: "+color);
    }
}
public class Execute{
    public static void main(String[] args) {
        Dog maltese = new Dog();
        maltese.breed="Maltese";
        maltese.size="Small";
        maltese.age=2;
        maltese.color="white";
        System.out.println(maltese.getInfo());
    }
}

输出

品种:马尔济斯 体型:小 年龄:2 颜色:白色

类类型

以下是类的重要类型

派生类和继承

派生类是从其他类创建或派生的类。它用于增加基类的功能。这种类型的类派生并继承现有类的属性。它还可以添加或共享/扩展自己的属性。

超类

超类是从中可以派生许多子类的类。

子类

子类是从超类派生的类。

混合类

混合类是具有一个或多个功能的类,可帮助您将一个类的属性继承到另一个类。它使用类的功能子集,而派生类使用超类功能的完整集。

类的用途

以下是类的重要用途

  • 类用于容纳数据变量和成员函数。
  • 它允许您创建用户定义的类。
  • 类提供了一种组织数据信息的方式。
  • 您可以使用类来继承其他类的属性。
  • 类可用于利用构造函数或析构函数。
  • 它可用于大量数据和复杂应用程序。

对象的使用

以下是对象的重要用途

  • 它帮助您了解接受的消息类型以及返回的响应类型。
  • 您可以使用对象通过对象引用变量访问内存块。
  • 它用于操作数据。
  • 对象代表您正在寻找解决方案的现实问题。
  • 它使数据成员和成员函数能够执行所需的任务。