java对象属性和方法的引用

对象方法的引用通过对象名.方法名引用。如有以下方法:

public void work(){}
public void work(int h){}

对象名是work,那么对象方法的引用就是work.work(10);

此外,对象方法引用为最后一层,不允许引用对象方法内的组成部分。方法内部定义的变量属于局部变量。

对象属性的引用通过对象名.属性名引用。如有如下属性:

String name;
int age;
double salary;

对象名work,那么对象属性的引用就是work.name。但是对象属性可能是另一个对象,此时我们需要访问另一个对象下的某一个属性,那么引用就是对象名.属性名.属性名……。如下代码:

Address addr;

class Address{
String address;
}

假设addr是work的一个属性,此时我们需要引用address这个属性,那么引用方法就是work.addr.address。

现在我们定义了以下两个类;

class Worker{
String name;
int age;
double salary;
Address addr;
public void work(){}
public void work(int h){}
public Worker(){}
public Worker(String s, int i, double d){
name = s;
age = i; 
salary = d;
}
}
class Address{
String address;
int zipCode;
public Address(){}
public Address(String s, int i){
address = s;
zipCode = i;
}
}

现在我们需要创建一个Worker对象,对象名为work。那么我们现在如何对addr进行赋值呢?

无论是方法还是函数都是可以带参数的,那么这里就有一个问题——参数类型。我们知道类也是一种类型,因此在传递参数的时候就可以分为两类——传值和传址。8种基本数据类型都是传值,类就是传址。

因此对addr赋值时,可以在构造方法中传址赋值。构造方法可以改写为public Worker(String s, int i, double d,Address A)。但同时需要注意的是,在传递参数的时候,参数必须是已知的,具有明确的存储空间和数值。就是说传递对象地址时,对象必须要被准确地创建。因此在创建work时,要对work.addr赋值,需要先创建一个Address的对象,我们假设对象名是dress。则传递的参数形式应该为public Worker("das",3, 3.4,dress).

也可以直接对属性赋值,即work.addr = dress;

现在我们已经创建了两个对象了:dress,work;现在我们需要访问address属性,这里有两种方法:

1、dress.address

2、work.addr.address

但是我们不能这样引用:work.dress.address或者work.address,这样的引用方法会编译报错。这里dress,work都是对象,我们不能引用对象中的对象,只能引用对象中的属性和方法。

因此我们得到一个对象引用的规则:对象只能直接引用他的直接组成部分——属性和方法。方法内部的组成部分不允许被引用能直接引用属性内部的组成部分。对象不允许引用对象。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值