猿教程 Logo

Java 对象与类

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效:去购买

在这个页面中,我们将学习Java对象和类。 在面向对象编程技术中,我们设计一个使用对象和类的程序。

对象是物理和逻辑实体,而类是逻辑实体。


Java中的对象

具有状态和行为的实体被称为对象。 例如椅子,自行车,标记,笔,桌子,汽车等。它可以是物理或逻辑(有形和无形)。 无形对象的例子是银行系统。

一个对象有三个特点:

  • 状态:表示对象的数据(值)。

  • 行为:表示对象的行为(功能),例如存款,取款等。

  • 身份:对象身份通常通过唯一ID实现。 该ID的值对外部用户不可见。 但是,它由JVM内部使用来唯一地标识每个对象。

例如:Pen是一个对象。 它的名字是雷诺,颜色是白色等被称为它的状态。 它用于写,所以写是它的行为。


Object是类的一个实例。 类是创建对象的模板或蓝图。 所以object是一个类的实例(result)。

对象定义:

  • 对象是一个现实世界的实体。

  • Object是一个运行时实体。

  • 对象是具有状态和行为的实体。

  • Object是类的一个实例。


Java中的类

类是具有共同属性的一组对象。 它是创建对象的模板或蓝图。 它是一个逻辑实体。 它不能是物理的。

Java中的类可以包含:

  • 字段

  • 方法

  • 构造函数

  • 嵌套类和接口

声明一个类的语法:

class <class_name>{
    field;
    method;
}

Java中的实例变量

在类内部但在方法外部创建的变量称为实例变量。 实例变量在编译时不获取内存。 它在运行时获取对象(实例)创建时的内存。 这就是为什么它被称为实例变量。


Java中的方法

在java中,一个方法就像函数,即用于暴露对象的行为。

方法的优点

  • 代码可重用性

  • 代码优化


Java中的new关键字

new关键字用于在运行时分配内存。 所有对象在堆内存区域中获取内存。

在这个例子中,我们创建了一个有两个数据成员id和name的Student类。 我们通过new关键字创建Student类的对象,并打印对象的值。

这里,我们在类中创建main()方法。

文件:Student.java

class Student{
 int id;//field or data member or instance variable
 String name;

 public static void main(String args[]){
  Student s1=new Student();//creating an object of Student
  System.out.println(s1.id);//accessing member through reference variable
  System.out.println(s1.name);
 }
}

输出:

0 
null

对象和类示例:

在实时开发中,我们创建类并从另一个类中使用它。 这是比以前更好的方法。 让我们看一个简单的例子,我们在另一个类中有main()方法。

我们可以在不同的java文件或单个java文件中有多个类。 如果在单个java源文件中定义多个类,则最好使用带有main()方法的类名保存文件名。

文件:TestStudent1.java

class Student{
 int id;
 String name;
}
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种方法

有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)对象和类示例:通过方法初始化

在本示例中,我们将创建Student类的两个对象,并通过调用insertRecord方法来初始化这些对象的值。 这里,我们通过调用displayInformation()方法显示对象的状态(数据)。

文件: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

还有另一个维护Rectangle类记录的例子。

文件: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中创建对象。 他们是:

  • 按new关键字

  • 通过newInstance()方法

  • 通过clone()方法

  • 通过反序列化

  • 通过工厂方法等

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


匿名对象

匿名只是意味着无名。 没有引用的对象称为匿名对象。 它只能在创建对象时使用。

如果你只需要使用一个对象,匿名对象是一个很好的方法。 例如:

相关实例:

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;

参考变量的初始化:

Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects

让我们看一个例子:

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

相关实例:

class Account{
int acc_no;
String name;
float amount;
void insert(int a,String n,float amt){
acc_no=a;
name=n;
amount=amt;
}
void deposit(float amt){
amount=amount+amt;
System.out.println(amt+" deposited");
}
void withdraw(float amt){
if(amount<amt){
System.out.println("Insufficient Balance");
}else{
amount=amount-amt;
System.out.println(amt+" withdrawn");
}
}
void checkBalance(){System.out.println("Balance is: "+amount);}
void display(){System.out.println(acc_no+" "+name+" "+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
阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效: 去购买


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/object-and-class-in-java.html