Logo

郎哥编程

Java对象的创建和使用

2018-02-27 1144

前面一节提到类是抽象的概念集合,表示的是一个共性的产物,类中定义的是属性和方法,而对象是类的实例。

例如11.2节的水果类,水果被归纳为类,而苹果、香蕉、葡萄为水果类的实例或对象。水果是人们赋予具有苹果、香蕉、葡萄等共同特点的名称,不单指某一事物;对象是指具体的实物或概念,如苹果、香蕉、葡萄等对象是实物,而一项政策可能就是一个概念性的对象了,在现实生活中,万事万物皆对象,面向对象编程就是模拟现实生活中的一个个对象来编程的。

类也可以看做是对象的模板,它描述一类对象的行为和状态,决定着对象的属性和方法。由对象可以抽象出类,类也可以实例化成对象,就像水果类决定了苹果、香蕉、葡萄等对象具备糖分、汁液、芳香度都基本特征,也可以通过抽取香蕉、葡萄等对象的共同特征抽象为水果类。

 

a1103.png

                                             

图 11-8 水果类与水果对象的关系

在图11-8中,由苹果、葡萄等对象抽象出水果类,水果类属性有water(汁液含量)、sugar(糖分含量)、fragrance(芳香度),这些属性是水果类所具有的共同特点。当在程序中需要使用苹果对象时,将水果类实例化苹果,同时初始化苹果对象的water(汁液含量)、sugar(糖分含量)、fragrance(芳香度)属性。

对象的创建

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象语法如下:

类名  对象名 = new  类名();

例如:创建11.3节Fruits项目的苹果对象

Fruits  apple  =  new  Fruits("80%”,  “60%”,  ”30%”);

使用new创建对象时,会调用Fruits类的构造方法初始化对象,Fruits类的构造方法要求传入water(汁液含量)、sugar(糖分含量)、fragrance(芳香度)三个属性值,初始化对象的属性。

Fruits类的构造方法代码如下:

Fruits(String inwater,String sugar,String fragrance)
{
   this.water = inwater;
   this.sugar = sugar;
   this.fragrance = fragrance;
}

其中,this表示类实例(对象)本身,后面会详细讲述。

访问对象的属性和方法

访问对象中封装好的属性和方法是通过“.”操作符进行的。例如:

Fruits  apple  =  new  Fruits("80%”,  “60%”,  ”30%”);

apple. water;

apple. showFruit();

例1:以11.3节创建的Fruits项目为案例,在项目FruitManager类中创建Fruits对象,并调用Fruits类的showFruit()输出Fruits对象的属性。

启动eclipse,在Package  Explorer工作窗口展开Fruits项目,编辑FruitManager.java文件,输入如下代码:

public static void main(String[] args) {
   // TODO Auto-generated method stub
   //声明和创建Fruits对象apple
   Fruits  apple  =  new  Fruits("80%","60%","30%");
   //调用appleshowFruit方法输出对象属性
   apple. showFruit();
}

代码结构分析

FruitManager.java是Fruits项目的主要控制类,该类包含main方法,main方法是Java应用程序的入口,Java项目中只需要有一个类包含main方法即可,一般来说包含main方法的类为Java程序的主要控制类。

在mian方法中,增加了apple对象的声明和创建语句,并调用apple对象的showFruit()方法输出apple对象的属性。

保存FruitManager.java文件,用鼠标单价eclipse工具条上的运行按钮,编译并运行Fruits项目,如下图所示:

a1104.png

图 11-9 运行Fruits项目

查看Fruits项目运行结果。Fruits项目运行后,eclipse会自动打开“Console”控制台窗口,控制台窗口会显示Fruits项目的输出内容。

a1105.png

图 11-10 Fruits项目运行结果

 

■ 知识点拨

Java对象是Java类的实例化,Java类的实例化就是在代码中声明一个类型为Java类的变量,然后用new关键字申请Java类的存储空间并初始化Java类的属性,被初始化的Java类赋值给前面已声明的变量,该变量即为Java类的实例化对象。

■ 思考与练习

如果没有创建Fruits项目,请参照11.3节创建Fruits项目。在已创建Fruits项目的基础上,编写本节例1的代码。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论