Java中的对象和类

本文概述

  • 在Java类是什么
  • 3方法来初始化对象
  • 有哪些不同的方法来创建一个对象在Java中?
  • 匿名对象
在这个页面中,我们将了解Java对象和类。在面向对象的编程技术,我们设计一个程序使用对象和类。
一个对象在Java中是物理和逻辑实体,然而,一个类在Java是一个逻辑实体。
一个对象在Java中是什么
一个实体的状态和行为被称为一个对象如椅子,自行车,标记,钢笔,桌子,汽车等。它可以物理或逻辑(有形和无形)。无形的对象是银行系统。
一个对象有三个特点:
  • 状态:表示一个对象的数据(值)。
  • 行为:代表一个对象的行为(功能),如存款、退出等。
  • 身份:一个对象的身份通常是通过实现一个惟一的ID,ID的值到外部用户不可见。然而,它在内部使用的JVM识别每个对象独特。
例如,钢笔是一个对象。它的名字是雷诺; 颜色是白色的,被称为它的状态。它是用来写,所以写其行为。
一个对象是一个类的实例。一个类是一个模板或创建对象的蓝图。所以,一个对象是一个类的实例(结果)。
对象定义:
  • 一个对象是一个现实世界的实体。
  • 一个对象是一个运行时实体。
  • 的对象是一个实体的状态和行为。
  • 对象是类的一个实例。
在Java类是什么类是一组对象的共同属性。这是一个模板或创建对象的蓝图。这是一个逻辑实体。它不可能是物理。
在Java类可以包含:
  • 字段
  • 方法
  • 构造函数
  • 嵌套类和接口
语法来声明一个类:
class < class_name>{ field; method; }

在Java中实例变量
创建一个变量在类外但方法称为实例变量。实例变量在编译时不会记忆。它在运行时内存,当一个对象或实例被创建。这就是为什么它被称为实例变量。
方法在Java中
在Java中,一个方法是像一个函数用于暴露对象的行为。
方法的优势
  • 代码的可重用性
  • 代码优化
新的关键字在Java中
新的关键字用于在运行时分配内存。所有对象在堆内存内存区域。
对象和类的例子:主要在类
在本例中,我们创建了一个学生类,有两个数据成员id和名称。我们在创建对象的学生类的新关键字和印刷对象的价值。
在这里,我们创建一个main()方法内部类。
文件:Student.java
//Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id; //field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student(); //creating an object of Student //Printing values of the object System.out.println(s1.id); //accessing member through reference variable System.out.println(s1.name); } }

输出:
0 null

对象和类的例子:主要在类外
在实时开发中,我们从另一个类中创建类并使用它。这是一个比前一个更好的方法。让我们看看一个简单的例子,我们在main()方法在另一个类。
我们可以有多个类在不同的Java文件或单一的Java文件。如果你定义多个类在一个Java源文件,它是一个好主意保存文件名称与类名main()方法。
文件:TestStudent1.java
//Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } }

输出:
0 null

3方法来初始化对象有三个方法来初始化对象在Java中。
  1. 通过引用变量
  2. 由方法
  3. 通过构造函数
1)对象和类的例子:通过引用初始化
初始化一个对象意味着将数据存储到对象中。让我们看看一个简单的例子,我们将通过一个引用变量初始化对象。
文件:TestStudent2.java
class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name="Sonoo"; System.out.println(s1.id+" "+s1.name); //printing members with a white space } }

输出:
101 Sonoo

我们还可以创建多个对象和信息存储在它通过引用变量。
文件:TestStudent3.java
class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name="Sonoo"; s2.id=102; s2.name="Amit"; //Printing data System.out.println(s1.id+" "+s1.name); System.out.println(s2.id+" "+s2.name); } }

输出:
101 Sonoo 102 Amit

2)对象和类的例子:初始化方法
在这个例子中,我们创建学生类的两个对象,这些对象通过调用初始化值insertRecord方法。在这里,我们显示状态(数据)的对象通过调用显示信息()方法。
文件:TestStudent4.java
class Student{ int rollno; String name; void insertRecord(int r,String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+" "+name); } } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,"Karan"); s2.insertRecord(222,"Aryan"); s1.displayInformation(); s2.displayInformation(); } }

输出:
111 Karan 222 Aryan

正如你所看到的在上面的图中,对象会在堆内存的内存区域。引用变量指的是对象在堆中分配内存区域。在这里,s1和s2都指的是对象的引用变量在内存中分配。
3)对象和类的例子:通过构造函数初始化
稍后我们将了解Java的构造函数。
对象和类的例子:员工
让我们看一个例子,我们维持员工的记录。
文件:TestEmployee.java
class Employee{ int id; String name; float salary; void insert(int i,String n,float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+" "+name+" "+salary); } } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,"ajeet",45000); e2.insert(102,"irfan",25000); e3.insert(103,"nakul",55000); e1.display(); e2.display(); e3.display(); } }

输出:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0

对象和类的例子:矩形
有另一个例子,矩形类的维护记录。
File: TestRectangle1.java
class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width); } } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }

输出:
55 45

有哪些不同的方法来创建一个对象在Java中?【Java中的对象和类】有很多方法可以用java创建一个对象。它们是:
  • 通过新的关键字
  • 的newInstance()方法
  • 通过克隆()方法
  • 通过反序列化
  • 通过工厂方法等。
稍后我们将学习这些方法创建对象。
匿名对象匿名仅仅意味着无名。一个对象没有引用被称为一个匿名对象。它可以用来创建对象的时候。
如果你必须使用一个对象只有一次,一个匿名对象是一种好方法。例如:
new Calculation(); //anonymous object

通过引用调用方法:
Calculation c=new Calculation(); c.fact(5);

通过一个匿名对象调用方法
new Calculation().fact(5);

让我们看看一个匿名对象的完整的示例Java。
class Calculation{ void fact(intn){ int fact=1; for(int i=1; i< =n; i++){ fact=fact*i; } System.out.println("factorial is "+fact); } public static void main(String args[]){ new Calculation().fact(5); //calling method with anonymous object } }

输出:
Factorial is 120

仅由一个类型创建多个对象
我们可以创建多个对象由一个只有我们的原语类型。
原始变量的初始化:
int a=10,b=20;

refernce变量的初始化:
Rectangle r1=new Rectangle(),r2=new Rectangle(); //creating two objects

让我们看看这个例子:
//Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width); } } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle(); //creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }

输出:
55 45

现实世界的例子:帐户
文件:TestAccount.java
//Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+" deposited"); } //withdraw method void withdraw(float amt){ if(amount< amt){ System.out.println("Insufficient Balance"); }else{ amount=amount-amt; System.out.println(amt+" withdrawn"); } } //method to check the balance of the account void checkBalance(){System.out.println("Balance is: "+amount); } //method to display the values of an object void display(){System.out.println(acc_no+" "+name+" "+amount); } } //Creating a test class to deposit and withdraw amount class TestAccount{ public static void main(String[] args){ Account a1=new Account(); a1.insert(832345,"Ankit",1000); a1.display(); a1.checkBalance(); a1.deposit(40000); a1.checkBalance(); a1.withdraw(15000); a1.checkBalance(); }}

输出:
832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0

    推荐阅读