JAVA程序设计--对象和类(二)

构造、访问对象:

一:使用构造方法构造对象

构造方法有三个特性:

①构造方法必须具备和所在类相同的名字

②构造方法没有返回值类型,甚至连void也没有

③构造方法是在创建一个对象使用new操作符时调用的

构造方法的作用是初始化对象,它可以重载,更易于用不同的初始数据值来构造对象。

为了能够从一个类中构造对象,使用new操作符调用这个类的构造方法。

格式如下:

new ClassName(arguments)

例如:

new Circle()使用Circle类中定义的第一个构造方法创建一个Circle对象;

new Circle(25)调用Circle类中定义的第二个构造方法创建一个Circle对象。


二:通过引用变量访问对象

① 引用变量和引用类型

对象是通过对象引用变量来访问的。类是一种引用类型,格式如下:    

Circle myCircle;

下面的语句创建一个对象,并且将他的引用赋给变量myCircle:

myCircle = new Circle();

二者合一,就是包括声明对象引用变量、创建一个对象和将他的引用赋给变量:

Circle myCircle = new Circle(); 

如上:变量myCircle中放的是对Circle对象的引用。

以此类推,数组也是new创建的,一个数组变量实际上是一个包含数组引用的变量~


② 访问对象的数据和方法

对象通过对象成员访问操作符(点操作符)科引用对象的数据域和方法。

因为依赖于某个具体的实例,数据域radius称作实例变量;

因为只能在具体的实例上被调用,方法getArea()称为实例方法(”非静态”);

理解:为何不能用Circle.getArea()这种格式去调用方法?

答:因为实例方法不是静态方法,必须使用objectRefVar.methodName(参数)的方式从对象调用

例如:

myCircle.getArea()


③ 匿名创建对象

有时候,一个对象创建后不需要引用,可以创建一个对象而并不将它明确地赋给一个变量

如:

System.out.println("Area is"+new Circle(5).getArea());

创建一个Circle对象,调用其getArea()方法返回其面积。

这种方法创建的对象成为匿名对象(anonymous object)


④ 引用数据域和null值

数据域也可能是引用型的,如:

String name;

String是一个预定义的Java类。

如果一个引用类型的数据域没有引用任何对象,那么这个数据域就有一个特殊的Java值null。

null--引用类型直接量;

true,false--boolean类型直接量。


引用类型数据域默认值:null;

数值类型数据域默认值:0;

boolean类型数据域默认值:false;

char类型数据域默认值:'\u0000';

而局部变量(在方法中定义的)则不会赋初值~

⑤ 基本类型变量和引用类型变量的区别

每个变量都代表了一个存储值的内存位置。

声明此变量就是告诉编译器这个变量可以存放什么类型的值。


对基本类型变量来说,对应内存所存储的值是基本类型值;

对引用类型变量来说,对应内存所存储的值是一个引用(指明这个对象的内容存储在内存中的哪里),是对象的存储地址;


将一个变量赋给另一个变量时,另一个变量就被赋予同样的值。

对于引用类型变量而言,赋值后,二变量就是指向同一个对象。


ps:如果你觉得不再需要某个对象时,可以显式地给该对象赋null值。如果该对象没有被任何引用变量所引用,Java虚拟机将自动回收它所占的空间。

猜你喜欢

转载自blog.csdn.net/qq_35827280/article/details/80274808