美文网首页IT技术篇
Java基础教程(11)--对象

Java基础教程(11)--对象

作者: 游戏原画设计 | 来源:发表于2019-01-14 10:41 被阅读1次

一.创建对象

  下面的语句创建了一个对象并把它的引用赋值给了一个变量:

Point originOne =newPoint(23,94);

  这条语句由三部分组成(下面将详细讨论):

声明对象变量:声明一个可以引用稍后创建的对象的变量。

实例化类:new关键字是实例化类的操作符。

初始化对象:new从操作符将会调用类的构造器,从而完成对象的初始化。

1.声明对象变量

  就像声明基本数据类型的变量一样,声明对象变量的语法如下:

ClassName variableName;

  这会告诉编译器variableName将会用来引用一个ClassName类的对象。在使用这个变量之前,必须将一个对象的引用赋值给它,否则将会造成编译错误。

2.实例化类

new操作符通过为对象分配内存并返回对这块内存的引用来实例化一个类。new操作符还会调用构造方法。

new操作符后需要一个对构造方法的调用。构造方法的名字也就是需要实例化的类的名字。

可以不将new操作符返回的引用赋值给变量,它可以直接用在表达式中:

intx =newPoint(1,5).getX();

3.初始化对象

  下面是Point类的代码:

publicclassPoint{publicintx =0;publicinty =0;//constructorpublicPoint(inta,intb){        x = a;        y = b;    }}

  Point类包含一个构造方法。这个构造方法接受两个整数参数,下面的代码提供23和94作为这些参数的值:

Point originOne =newPoint(23,94);

这条语句的结果可以用下面这张图说明:

Java技术 交流 qun+479749726

下面是RectAngle类的代码,这个类有四个构造方法:

publicclassRectangle{publicintwidth =0;publicintheight =0;publicPoint origin;// four constructorspublicRectangle(){        origin =newPoint(0,0);    }publicRectangle(Point p){        origin = p;    }publicRectangle(intw,inth){        origin =newPoint(0,0);        width = w;        height = h;    }publicRectangle(Point p,intw,inth){        origin = p;        width = w;        height = h;    }// a method for moving the rectanglepublicvoidmove(intx,inty){        origin.x = x;        origin.y = y;    }// a method for computing the area of the rectanglepublicintgetArea(){returnwidth * height;    }}

  如果一个类有多个构造方法,则它们必须具有不同的签名。Java编译器根据参数的数量和类型区分构造方法。下面的代码创建了一个Point类的对象,并使用它和另外两个整数作为参数来创建一个RectAngle类的对象:

Point originOne =newPoint(23,94);Rectangle rectOne =newRectangle(originOne,100,200);

这条语句的结果可以用下面这张图说明:

Java技术 交流 qun+479749726

所有类至少有一个构造方法。如果类没有提供构造方法,则Java编译器会自动提供一个无参构造方法,称为默认构造方法。此默认构造方法会调用类父级的无参构造方法。如果类没有使用extends关键字直接继承父类,这个类将会有一个隐含的父类——Object类,它有一个无参构造方法。如果类使用extends关键字继承了父类,但是父类没有无参构造方法,编译器将会给出错误。

如果类提供的构造方法里不包括无参构造方法,编译器将不会自动提供无参构造方法。此时使用无参构造方法初始化对象将会产生一个错误。

二.使用对象

创建了一个对象之后,我们可以在接下来的代码中去使用它。可能是获取某个域的值,或者改变某个域的值,也可能是通过调用某个方法去执行一些操作。

使用以下的语法来访问一个对象的域:

objectReference.fieldName

  对于上面的rectOne所引用的对象来说,我们可以以如下方式去访问它的height域:

rectOne.height

  使用以下的语法来调用一个对象的方法:

objectReference.methodName(argumentList)

  下面的语句调用了rectOne所引用的对象的getArea方法并将返回值赋值给了一个变量:

intarea = rectOne.getArea();

垃圾回收

某些语言要求您跟踪所创建的所有对象,并在不再需要时明确销毁它们。明确地管理内存是乏味且容易出错的。Java虚拟机在确定一个对象不再使用时删除这个对象。这个过程称为垃圾回收。

当没有对该对象的引用时,虚拟机有资格对该对象进行垃圾回收。可以通过将变量设置为null来显式取消对该对象的引用。需要注意的是,程序可以对同一对象进行多次引用,在对象符合垃圾回收条件之前,必须删除对对象的所有引用。

作者:maconn

出处:https://www.cnblogs.com/maconn/

免费福利:文章结尾有一份系统的java教程提供大家学习,一起进步

老规矩,还是一样的,只需留言点赞转发关注后,在我的主页私信【学习】即可!(不信有人手打)

相关文章

  • Java基础教程(11)--对象

    一.创建对象   下面的语句创建了一个对象并把它的引用赋值给了一个变量: Point originOne =new...

  • Java基础教程之对象引用

    Java基础教程之对象引用 我们之前一直在使用“对象”这个概念,但没有探讨对象在内存中的具体存储方式。这方面的讨论...

  • Java基础教程(5)--变量

    一.变量 1.变量的定义 正如上一篇教程《Java基础教程(4)--面向对象概念》中介绍的那样,对象将它的状态存在...

  • Java基础教程之构造器与方法重载

    Java基础教程之构造器与方法重载 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initi...

  • Java学习入门基础推荐

    给你推荐一个写得非常用心的Java基础教程:Java入门基础教程 | 天码营 这个教程将Java的入门基础知识贯穿...

  • java基础教程(高清).pdf 免费下载

    下载地址:java基础教程(高清).pdf

  • Java基础教程之封装与接口

    Java基础教程之封装与接口 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型。JA...

  • 对像和类

    Java 对象和类 多态 继承 封装抽象 Java对象和类 类对象实例方法消息解析代码: 11 运行结果: 小狗的...

  • Java基础教程之实现接口

    Java基础教程之实现接口 在封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节...

  • Java基础教程[目录]

    Java基础教程目录: 一、已更新 000:Java 是什么?及 Java 语言的特点 001:Java环境:JD...

网友评论

    本文标题:Java基础教程(11)--对象

    本文链接:https://www.haomeiwen.com/subject/ynkddqtx.html