java类和对象讲解_Java中的对象和类(详解)

面向对象程序设计(OOP)就是使用对象进行程序设计。对象(object)代表现实世界中可以标识的一个实体。例如一个学生,一个圆都可以看作一个对象。

一个对象的状态是指那些具有它们当前值的数据域,举个例子来说,一个圆对象,一个圆对象具有一个数据域radius,它是标识圆的属性。一个对象的行为是由方法定义的,调用对象的一个方法就是要求对象完成一个动作,例如可以为圆对象定义一个名为getArea()的方法,圆对象可以调用getArea()来返回圆的面积。

我们可以从一个类中创建多个实例,类和对象之间的关系类似于配方和食物的关系,可以用一种配方做出任意多的食物来。

public class CircleArrayQueueDemo

拿上一篇文章做一个例子,第一个类CircleArrayQueueDemo是主类,它的唯一目的就是测试第二个类:

class CircleArray

使用这样的类的程序通常称为是该类的客户,运行这个程序时,Java运行系统会调用这个主类的main方法,可以把两个类放在同一个文件中,但是文件中只能有一个类是公共的。此外,公共类必须与文件同名,因此,如例子中所示,文件名就应该是CircleArrayQueueDemo.java,因为类CircleArrayQueueDemo是公共的。

主类中包含main方法,和创建数组一样,使用new操作符从构造方法创建一个对象,构造方法是一种特殊的方法,具有以下几个性质:

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

(2)构造方法没有返回类型,也没有void

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

构造方法的作用是初始化对象,构造方法具有和定义它的类完全相同的名字,和所有其他方法一样,构造方法也可以重载,这样更易于用不同的初始数据值来构造对象,举一个例子:

类名 对象引用变量 = new 类名()

Circle myCircle = new Circle();

变量myCircle中放的是对Circle对象的一个引用。

访问对象的数据和方法:

在创建一个对象之后,它的数据和方法可以使用原点运算发(.)来访问和调用,例如myCircle.getArea()。

上文中Circle类的数据域radius称为一个实例变量,实例变量是绑定到类的某个特定实例的,它是不能被同一个类的不同对象所共享的,例如创建了如下两个对象:

Circle circle1 = new Circle();Circle ciecle2 = new Circle(5);

circlr1中的radius和ciecle2中的radius是不相关的,circle1中的radius变化不会影响到circle2。如果想让一个类的所有实例共享数据,就需要使用静态变量。

那么如何判断一个变量或方法应该是实例的还是静态的?如果一个变量或方法依赖于类的某个具体实例,那么就应该将它定义为实例变量或者实例方法,如果一个变量不依赖于类的某个具体实例,就应该将它定义为静态变量或者静态方法,例如:每个圆都有自己的半径,半径都依赖于某个具体的圆,因此半径radius就是Circle类的一个实例变量。

我们同样也可以在类,方法和数据域前使用public修饰符,表示它们可以被任何其他的类访问,如果没有使用可见性修饰符,那么默认类,方法和数据域是可以被同一个包中的任何一个类访问的,这称作包内访问。

与public修饰符对应的就是private修饰符,它限定方法和数据域只能在它自己的类中被访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值