本文概述
- 在Java类是什么
- 3方法来初始化对象
- 有哪些不同的方法来创建一个对象在Java中?
- 匿名对象
一个对象在Java中是物理和逻辑实体,然而,一个类在Java是一个逻辑实体。
一个对象在Java中是什么
一个实体的状态和行为被称为一个对象如椅子,自行车,标记,钢笔,桌子,汽车等。它可以物理或逻辑(有形和无形)。无形的对象是银行系统。
一个对象有三个特点:
- 状态:表示一个对象的数据(值)。
- 行为:代表一个对象的行为(功能),如存款、退出等。
- 身份:一个对象的身份通常是通过实现一个惟一的ID,ID的值到外部用户不可见。然而,它在内部使用的JVM识别每个对象独特。
一个对象是一个类的实例。一个类是一个模板或创建对象的蓝图。所以,一个对象是一个类的实例(结果)。
对象定义:
- 一个对象是一个现实世界的实体。
- 一个对象是一个运行时实体。
- 的对象是一个实体的状态和行为。
- 对象是类的一个实例。
在Java类可以包含:
- 字段
- 方法
- 构造函数
- 块
- 嵌套类和接口
class <
class_name>{
field;
method;
}
在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中。
- 通过引用变量
- 由方法
- 通过构造函数
初始化一个对象意味着将数据存储到对象中。让我们看看一个简单的例子,我们将通过一个引用变量初始化对象。
文件: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
推荐阅读
- Java构造函数
- Java命名约定
- OOP(Java面向对象编程的概念)
- Java使用注释
- Java continue语句
- Java break语句
- Java do while循环语句
- Java if else语句
- Java while循环语句