第一章Java中的对象和类是什么?


介绍

在这篇文章中,我们将学习 Java 中的对象和类。这些主题构成了面向对象编程的核心概念和初学者的构建块。 由于 Java 是一个Object-Oriented Programming language,我们设计我们的程序并使用对象和类来表示/存储关键实体。

Java中的类是什么?

类 是定义对象状态和行为的蓝图/模板它是将我们所有的代码包装成一个单元并构建代码的逻辑实体。在 Java 中,我们无法在没有 class的情况下编译代码。因此,我们必须只在大括号包围的类体内编写代码。

的独特之处在于 用户可以定义他们的数据成员(具有数据类型的变量)和方法,我们可以通过创建类的实例来访问它们。

声明语法:在 java 中,我们按照以下语法声明类:

class ClassName
{
// your code
// fields
// methods
}

如何在 Java 中创建类:示例

让我们看看一个类在程序中的样子。

注意: 我们也可以声明一个空主体的类,即没有数据成员和方法。

让我们创建一个简单的类:

public class Employee 
{
    String name;
    int age;

    public void workOnAssignment()
    {
        // Working on assignment
    }
}

下图解释了类的结构:类结构

Java中的对象是什么?

具有状态和行为的实体称为 Object。在java中,Object 是一个 类的实例。对象是在运行时基于blueprint/template类提供的而创建的。

创建对象至关重要;没有它们,我们就无法访问程序的类成员和方法。一个对象通常具有三个特征:

  • State 它代表对象的值。
  • Behavior: 表示对象的行为(功能)。
  • Identity: Java 为每个对象分配一个唯一的 ID。ID 的值对外部用户不可见。

示例: 对于 Employee 类,每个 Employee 对象都有一个状态,包括姓名、年龄和部门,以及处理任务等行为。

声明语法:

ClassName objectName = new ClassName();

如何在 Java 中创建对象:示例

在Java中,我们使用 new 关键字创建一个对象来动态分配内存,因为 对象 存储在堆内存中。现在,让我们创建一个 Employee 类的对象。

Employee employee1 = new Employee();

调用上述语句时,会在内存中创建物理对象,如下所示:

对象创建 1

如何为同一个类创建多个对象

现在让我们为Employee类创建多个对象,即employee1 和employe2,并通过对象名称访问成员来设置这两个对象的名称和年龄。

然后我们创建对象并设置值。

Employee employee1=new Employee();
employee1.name = "Martin";
employee1.age = 24;   
Employee employee2=new Employee();
employee2.name = "John";
employee2.age = 20;

这两个对象将在内存中创建如下:

对象创建 2

java中初始化对象的X种方法

java中有很多方法可以初始化对象。我们将详细研究每一个。

1.使用对象名称

我们可以使用对象或引用名称和点运算符初始化对象并为数据成员赋值, 就像我们在上面的示例中创建多个对象时所做的那样。让我们看一下整个程序。

class Employee 
{ 
    String name; 
    int age;  
}

public class Main
{
    public static void main(String args[])
    {
        Employee employee1=new Employee();

        // Initialize object values
        employee1.name = "Martin";
        employee1.age = 24;   

        // Print Values to check.
        System.out.println(employee1.name+"  "+employee1.age);       
    }
}

输出:

img

注意:只有在 Employee 类中没有访问修饰符(例如private )时,我们才能直接使用Object 名称访问成员。

2.使用方法

我们可以在 Employee 类中创建一个方法,将值分配给该对象的成员,而不是使用对象名称来初始化数据成员。我们可以在调用方法来启动对象时传递值。 当使用多个对象时,这是一种方便的方法,因为我们不必单独使用对象名称来分配值。

让我们看一下这个例子。

class Employee 
{ 
    String name; 
    int age;  

    void initialize(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
    void display()
    {
        System.out.println(name+" "+age);
    }  
}

public class Main
{
    public static void main(String args[])
    {
        Employee employee1=new Employee();
        Employee employee2=new Employee();

        // Initialize object values
        employee1.initialize("Martin",25);
        employee2.initialize("John",23);

        // Calling display methods
        employee1.display();
        employee2.display();
    }
}

我们为我们创建的每个对象调用初始化 方法,然后显示值。

输出:

img

3. 使用构造函数

我们可以使用构造函数来初始化对象,这是 Java 提供的用于实例化对象的内部特性。

4. 使用匿名内部类块

另一种初始化对象的方法是使用“双大括号初始化”。这将创建一个匿名内部类,其中包含一个实例初始化程序。在里面我们可以调用初始化方法并传递值。这样,我们就不需要显式地通过引用调用方法。

让我们看一下实现。

class Employee 
{ 
    String name; 
    int age;  

    void initialize(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
    void display()
    {
        System.out.println(name+" "+age);
    }  
}

public class Main
{
    public static void main(String args[])
    {
        Employee employee1=new Employee(){
                                          {initialize("Martin",23);}
                                         };
        // Call display Method to check values.                                 
        employee1.display();                                          

    }
}

在java中创建对象的不同方法

除了使用new关键字使用标准方式之外,我们还可以使用不同的方式创建对象。有 4 种创建对象的方法:

  1. 使用类的 newInstance() 方法
  2. 使用构造函数类的 newInstance() 方法。
  3. 使用 clone() 方法
  4. 通过反序列化。

仅按一种类型创建多个对象

我们可以创建一个引用或类类型的多个对象。我们对原始数据类型的变量做了同样的事情,同时在一行中声明了相同类型的变量。

例子:

int num1 = 10, num2  = 20;

float g1 = 20, g2 = 30;

同样,我们也可以对对象做同样的事情。我们可以以同样的方式创建 Employee 类的对象。我们也可以这样写,而不是在两个不同的行中分别实例化对象。

Employee emp1 = new Employee(); emp2 = new Employee();

这个特性使得 Java 中的对象在声明语法和程序员友好方面与变量密切相关。

Java中的匿名对象

匿名对象是没有引用的对象。简单来说,这些是没有名称的对象,只能在创建对象时使用。我们不能像普通对象那样引用类的成员,即,任何时候。

当对象只能使用一次时,匿名对象是最佳选择。

示例: 因此,如果我们必须创建一个 Employee 类的匿名对象,它看起来像:

new Employee();

要使用匿名对象调用方法,我们这样做:

new ClassName().methodName();

注意:我们不能使用匿名对象通过方法来初始化成员变量。由于没有为内存中的此类对象分配内存。但是,我们可以使用带有匿名对象的构造函数来实例化该类。

现在让我们看一下使用匿名对象并从中调用方法的程序。

class Employee 
{ 
    String name = "James"; 
    int age = 24;  

    // Constructor
    Employee()
    {
    }
    // Constructor with Parameters
    Employee(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    void initialize(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
    void display()
    {
        System.out.println(name+" "+age);
    }  
}

public class Main
{
    public static void main(String args[])
    {
     //using constructors to initialize name with given value and display it.
     new Employee("Maurice",22).display();
     new Employee().display();
    }
}

输出:

img

在这里,我们看到没有构造函数我们得到了已经初始化的值。但是,使用构造函数,我们可以获得实例化对象的值。

Java中的类和对象有什么区别?

现在,让我们看一下java 中ClassObject之间的主要区别。

class Object
1.它是创建对象的蓝图或模板。 1. 它是具有状态和行为的类的实例。
2. 一个类表征一组具有相同属性的相似对象。 2. 对象代表具有某些属性和特征的现实世界实体。
3.在java中,Class只在编译时加载到内存中,以供参考。 3. 另一方面,对象在运行时创建时动态分配内存。
4. 一个类代表一个逻辑实体,它将数据和方法(即我们的代码)绑定到一个单元中。 4. 对象是一个物理实体,它为我们提供访问类成员的方法。
5. 一个类只声明一次。我们使用关键字class 声明一个类。 5. 可以根据需要多次创建对象。我们使用new关键字声明对象。
6. 我们只能用一种方式定义一个类。 6. 然而,我们可以通过多种方式创建对象,例如:使用 newInstance() 方法、使用 clone() 方法等。

所以,这就是java中的对象和类。


原文链接:https://codingdict.com/