java 变量的命名,get和set方法的问题

探讨Java中变量命名规则及get和set方法的正确使用方式,解释为何遵循驼峰命名法并保持方法名首字母大写对于EL表达式的正确解析至关重要。

java 变量的命名,get和set方法的问题

举报|  2015-11-02 10:07 凝の影  |  浏览 53 次   悬赏: 30
  java
private String pId;
private String pName;
public void setpId(String pId){
    this.pId = pId;

}
public void getpId(){
    return this.pId;

}
请问这里如果变量命名为pId时,get和set方法需设置为getpId(),setpId(),
如果设置为getPId(),setPId()时前台jsp页面用EL表达式取值时会报没有该属性错误
这是为什么呢,求大神解答
2015-11-02 10:09 网友采纳
你用struts2了吗,照例说应该是大写的get。set方法,前台能获取的
追问:
没有用Strutss,springmvc,如果属性设置为PID,PName时set、get大写没有问题,MyEclipse自动生成的,pId对应的就是getpId()方法没有大写
追答:
springMVC准备学习,还不知道
评论  |  0  0

superwildyeti | 六级 采纳率71%

擅长: C/C++ JAVA相关 数据库DB

为您推荐:

按默认排序 | 按时间排序

其他1条回答

2015-11-02 10:08 pollutedair  | 五级
set和get方法的属性名首字母要大写,比如getPId(),setPId
Java 中,`get` `set` 方法用于访问修改类的私有成员变量(字段),这是封装(Encapsulation)的核心机制之一。Java 并没有内置的属性访问器语法(如 C# 或 Python 中那样),因此需要手动编写 `get` `set` 方法。 ### 1. get 方法 - **作用**:获取某个私有变量的值。 - **命名规范**:以 `get` 开头,后面跟上变量名的首字母大写,例如 `getName()`。 - **返回类型**:与变量类型一致。 - **参数列表**:无参。 ### 2. set 方法 - **作用**:设置某个私有变量的值。 - **命名规范**:以 `set` 开头,后面跟上变量名的首字母大写,例如 `setName(String name)`。 - **返回类型**:通常为 `void`。 - **参数列表**:一个参数,与变量类型一致。 --- ### 示例代码: ```java public class Person { // 私有变量,不能直接访问 private String name; private int age; // Getter for name public String getName() { return name; } // Setter for name public void setName(String name) { this.name = name; } // Getter for age public int getAge() { return age; } // Setter for age public void setAge(int age) { if (age < 0) { throw new IllegalArgumentException("年龄不能为负数"); } this.age = age; } // 主方法测试 public static void main(String[] args) { Person person = new Person(); person.setName("Alice"); person.setAge(30); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } } ``` --- ### 解释: - 使用 `private` 关键字修饰字段是为了实现封装,防止外部直接修改对象的状态。 - `get` 方法允许只读访问字段的值,而 `set` 方法可以加入逻辑控制(比如数据验证)后再设置值。 - 这样可以增强程序的安全性可维护性。 - 在 IDE(如 IntelliJ IDEA、Eclipse)中,可以通过快捷方式自动生成这些方法。 --- ### Lombok 简化写法(可选): 如果你使用 [Lombok](https://projectlombok.org/) 库,可以省略手动编写 `get`/`set` 方法的过程: ```java import lombok.Getter; import lombok.Setter; @Getter @Setter public class Person { private String name; private int age; public static void main(String[] args) { Person person = new Person(); person.setName("Bob"); person.setAge(25); System.out.println(person.getName()); } } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值