在这篇文章中,我们将学习 Java 中的对象和类。这些主题构成了面向对象编程的核心概念和初学者的构建块。 由于 Java 是一个Object-Oriented Programming language,我们设计我们的程序并使用对象和类来表示/存储关键实体。
Object-Oriented Programming language
类 是定义对象状态和行为的蓝图/模板。它是将我们所有的代码包装成一个单元并构建代码的逻辑实体。在 Java 中,我们无法在没有 class的情况下编译代码。因此,我们必须只在大括号包围的类体内编写代码。
类的独特之处在于 用户可以定义他们的数据成员(具有数据类型的变量)和方法,我们可以通过创建类的实例来访问它们。
声明语法:在 java 中,我们按照以下语法声明类:
class ClassName { // your code // fields // methods }
让我们看看一个类在程序中的样子。
注意: 我们也可以声明一个空主体的类,即没有数据成员和方法。
让我们创建一个简单的类:
public class Employee { String name; int age; public void workOnAssignment() { // Working on assignment } }
下图解释了类的结构:
具有状态和行为的实体称为 Object。在java中,Object 是一个 类的实例。对象是在运行时基于blueprint/template类提供的而创建的。
blueprint/template
创建对象至关重要;没有它们,我们就无法访问程序的类成员和方法。一个对象通常具有三个特征:
示例: 对于 Employee 类,每个 Employee 对象都有一个状态,包括姓名、年龄和部门,以及处理任务等行为。
声明语法:
ClassName objectName = new ClassName();
在Java中,我们使用 new 关键字创建一个对象来动态分配内存,因为 对象 存储在堆内存中。现在,让我们创建一个 Employee 类的对象。
Employee employee1 = new Employee();
调用上述语句时,会在内存中创建物理对象,如下所示:
现在让我们为Employee类创建多个对象,即employee1 和employe2,并通过对象名称访问成员来设置这两个对象的名称和年龄。
然后我们创建对象并设置值。
Employee employee1=new Employee(); employee1.name = "Martin"; employee1.age = 24; Employee employee2=new Employee(); employee2.name = "John"; employee2.age = 20;
这两个对象将在内存中创建如下:
java中有很多方法可以初始化对象。我们将详细研究每一个。
我们可以使用对象或引用名称和点运算符初始化对象并为数据成员赋值, 就像我们在上面的示例中创建多个对象时所做的那样。让我们看一下整个程序。
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); } }
输出:
注意:只有在 Employee 类中没有访问修饰符(例如private )时,我们才能直接使用Object 名称访问成员。
我们可以在 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(); } }
我们为我们创建的每个对象调用初始化 方法,然后显示值。
我们可以使用构造函数来初始化对象,这是 Java 提供的用于实例化对象的内部特性。
另一种初始化对象的方法是使用“双大括号初始化”。这将创建一个匿名内部类,其中包含一个实例初始化程序。在里面我们可以调用初始化方法并传递值。这样,我们就不需要显式地通过引用调用方法。
让我们看一下实现。
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(); } }
除了使用new关键字使用标准方式之外,我们还可以使用不同的方式创建对象。有 4 种创建对象的方法:
我们可以创建一个引用或类类型的多个对象。我们对原始数据类型的变量做了同样的事情,同时在一行中声明了相同类型的变量。
例子:
int num1 = 10, num2 = 20; float g1 = 20, g2 = 30;
同样,我们也可以对对象做同样的事情。我们可以以同样的方式创建 Employee 类的对象。我们也可以这样写,而不是在两个不同的行中分别实例化对象。
Employee emp1 = new Employee(); emp2 = new Employee();
这个特性使得 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(); } }
在这里,我们看到没有构造函数我们得到了已经初始化的值。但是,使用构造函数,我们可以获得实例化对象的值。
现在,让我们看一下java 中Class和Object之间的主要区别。
所以,这就是java中的对象和类。
原文链接:https://codingdict.com/