个性化阅读
专注于IT技术分析

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创建一个对象。它们是:

  • 通过新的关键字
  • 的newInstance()方法
  • 通过克隆()方法
  • 通过反序列化
  • 通过工厂方法等。

稍后我们将学习这些方法创建对象。

匿名对象

匿名仅仅意味着无名。一个对象没有引用被称为一个匿名对象。它可以用来创建对象的时候。

如果你必须使用一个对象只有一次,一个匿名对象是一种好方法。例如:

new Calculation();//anonymous object

通过引用调用方法:

Calculation c=new Calculation();
c.fact(5);

通过一个匿名对象调用方法

new Calculation().fact(5);

让我们看看一个匿名对象的完整的示例Java。

class Calculation{
 void fact(int  n){
  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
赞(0)
未经允许不得转载:srcmini » Java中的对象和类

评论 抢沙发

评论前必须登录!