Java中成员变量和属性之间的关系

转载 2016年08月30日 14:42:58


有人可能遇到这样的错误,明明在类中定义了某个成员变量,但是系统在运行的时候提示错误:属性XX没有定义。这是什么原因呢?

大家知道成员变量有多种访问控制符,通常都应该把成员变量定义成私有的,然后为该成员变量提供set方法和get方法,外界通过set方法和get方法对成员变量进行操作。这样对外界来说,只有能够访问到的成员变量才算是属性,例如下面的代码:

private String userName;

public void setUserName(String userName){

   this.userName = userName;

}

public String getUserName(){

   return userName;

}

这时候我们说当前类有userName属性,注意要区分大小写。

另外还有一点非常重要,属性的名字不是由成员变量决定的。通常set方法和get方法的名字是set或者get加上成员变量的名字,成员变量的首字母要变成大写。而属性的名字是什么了,其实属性的名字就是去掉set或者get,然后把首字母变成小写。从这两个命名规则可以看出,通常属性名与成员变量的名字是一致的。但是,如果在写set方法和get方法的时候,没有按照默认的规则写,则属性名字和成员变量名字就一样了。看下面的例子:

private String userName;

public void setUsername(String userName){

   this.userName = userName;

}

public String getUsername(){

   return userName;

}

在上面的代码中,只修改了方法的名字(大写的N变成小写的n),这时候属性的名字已经由userName变成username了。如果要按照属性名字访问而不是直接访问get方法(例如,表达式语言),或者由框架自动完成属性的赋值(例如,对于WebWork,需要在Action中需要定义与表单元素相同名字的属性,对于Struts1,需要在ActionForm中定义与表单元素相同名字的属性),这时候就必须写username而不是userName,否则就抱错,就是本文开头所说的错误。

如果出现这样的错误,首先查看有没有定义set方法或者get方法,然后看看方法名字是否写的正确。

成员变量、实例变量、属性之间的关系

首先来区别一下实例变量、成员变量的区别: 可以看到在接口 @interface 括号里面的统称为”成员变量”,实例变量是成员变量中的一种! 实例变量的英文翻译是...

IOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系

类(class):具有相同属性和行为等同一类元素等总称,类是一个抽象的概念。 区分是类还是对象,看它能否继续被细分。 在OC中,类是表示对象类型的结构体,对象通过类来获取自身的各种信息。类由两个部...

Objective-C的属性和成员变量用法及关系浅析

在使用Objective-C语言进行了一段时间的iOS开发之后,发现自己的语言基础相对薄弱,于是开始弥补自己的短处。我发现在用过一种语言之后,再回过头来看它的很多原理会发现有更加深刻的理解。下面就对一...

黑马程序员——JAVA基础_01(类和对象的关系、成员变量和局部变量、构造函数、构造代码块)

类和对象的关系  类:就是对现实事物中的描述,提取某一对象的共性内容,对其进行抽象,让复杂的事物简单化。描述事物其实就是在描述事物的属性和行为。 属性对应的是类中的变量。行为对应的是类中的函数(方法)...

Java多线程之间通信——修改对象中的成员变量

线程之间的通信,可通过对对象的成员变量的状态修改,达到控制线程的目的。 Java中,线程要基于对象才能创建。如: ThreadTest t1 = new ThreadTest(); t1.start(...

Java static修饰成员变量

  • 2017年04月24日 22:15
  • 4KB
  • 下载

Java中的成员变量

  • 2015年10月11日 18:04
  • 43KB
  • 下载

12 多线程 线程之间的局部变量与成员变量 | sleep

package com.test; public class ThreadTest2 { public static void main(String[] args) { Test1 t=...
  • hackq
  • hackq
  • 2017年03月13日 00:36
  • 154

java 成员变量与方法 习题

  • 2010年12月07日 22:02
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中成员变量和属性之间的关系
举报原因:
原因补充:

(最多只允许输入30个字)