1.进行性被限制时是否可以用equals()语句?

1.进行性被限制时是否可以用equals()语句?

package com.imooc.model;

public class Student {
	// 学生属性:学生姓名、学号、性别、年龄;
	private String studentName;
	private String studentNo;
	private String studentSex;
	private int studentAge;

	// 无参构造方法
	public Student() {

	}

	// 有参构造方法
	public Student(String studentName, String studentNo, String studentSex, int studentAge) {
		this.setStudentName(studentName);
		this.setStudentNo(studentNo);
		this.setStudentSex(studentSex);
		this.setStudentAge(studentAge);
	}

	public String getStudentName() {
		return studentName;
	}

	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}

	public String getStudentNo() {
		return studentNo;
	}

	public void setStudentNo(String studentNo) {
		this.studentNo = studentNo;
	}

	public String getStudentSex() {
		return studentSex;
	}

	// 性别是能是男或者女,不能出现第三种性别;
	public void setStudentSex(String studentSex) {
		if (studentSex.equals("男")) {
			this.studentSex = studentSex;
		}
		if (studentSex.equals("女")) {
			this.studentSex = studentSex;
		} else {
			this.studentSex = "男";
		}
	}

	public int getStudentAge() {
		return studentAge;
	}

	/**
	 * 年龄限制
	 * 
	 * @param studentAge
	 */
	public void setStudentAge(int studentAge) {
		if (studentAge < 10 || studentAge > 100)
			this.studentAge = 18;
		else
			this.studentAge = studentAge;
	}

	/**
	 * 学生自我介绍的方法
	 * 
	 * @param subjectName
	 * @param subjectLife
	 * @return 自我介绍的信息包括姓名、学号‘性别、年龄
	 */
	public String introduction() {
		String str = "学生信息如下:" + "\n学生姓名:" + this.getStudentName() + "\n学号:" + this.getStudentNo() + "\n学生性别:"
				+ this.getStudentSex() + "\n学生年龄:" + this.getStudentAge();
		return str;
	}

}

这样写为什呢么报错?有什么修正的办法?

package com.imooc.model;

public class Student {
	// 学生属性:学生姓名、学号、性别、年龄;
	private String studentName;
	private String studentNo;
	private String studentSex;
	private int studentAge;

	// 无参构造方法
	public Student() {

	}

	// 有参构造方法
	public Student(String studentName, String studentNo, String studentSex, int studentAge) {
		this.setStudentName(studentName);
		this.setStudentNo(studentNo);
		this.setStudentSex(studentSex);
		this.setStudentAge(studentAge);
	}

	public String getStudentName() {
		return studentName;
	}

	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}

	public String getStudentNo() {
		return studentNo;
	}

	public void setStudentNo(String studentNo) {
		this.studentNo = studentNo;
	}

	public String getStudentSex() {
		return studentSex;
	}

	// 性别是能是男或者女,不能出现第三种性别;
	public void setStudentSex(String studentSex) {
		//问题点,错误提示The operator || is undefined for the argument type(s) java.lang.String, java.lang.String
		if (studentSex.equals("男"||"女")) {
			this.studentSex = studentSex;
		}
		
		 else {
			this.studentSex = "男";
		}
	}

	public int getStudentAge() {
		return studentAge;
	}

	/**
	 * 年龄限制
	 * 
	 * @param studentAge
	 */
	public void setStudentAge(int studentAge) {
		if (studentAge < 10 || studentAge > 100)
			this.studentAge = 18;
		else
			this.studentAge = studentAge;
	}

	/**
	 * 学生自我介绍的方法
	 * 
	 * @param subjectName
	 * @param subjectLife
	 * @return 自我介绍的信息包括姓名、学号‘性别、年龄
	 */
	public String introduction() {
		String str = "学生信息如下:" + "\n学生姓名:" + this.getStudentName() + "\n学号:" + this.getStudentNo() + "\n学生性别:"
				+ this.getStudentSex() + "\n学生年龄:" + this.getStudentAge();
		return str;
	}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
jarive 2017-12-08 18:56:50

代码写成这样吧:

if (!"男".equals(getstudentSex())|| !"女".equals(getstudentSex())) {
   this.sex = "男";
} else
this.sex = studentSex;

  • THappy #1
    这是在设置性别时进行判断,判断的应该是传入的参数字符串是否为"男"或者为"女";如果还没有设置性别呢,就直接获取,那么get到的就是空的,代码会抛出异常。
    2017-12-08 19:16:59
jarive 2017-12-06 22:29:51

要明白equals的用法需要知道以下两点:

  1. equals 方法是 java.lang.Object 类的方法;

  2. “equals()”比较字符串中所包含的内容是否相同;

注意:比较的是内容,而你代码现在比较的是什么?

  • 提问者 Ironxi_work #1
    在进行性别限制时,想比较studentSex是否为“男”或“女”,想到了equals()语句
    2017-12-07 21:42:44
  • THappy 回复 提问者 Ironxi_work #2
    你下面使用equals()方法时写法是不对的,因为此时equals()方法传入的参数只能是一个字符串值,如果你想判断性别是男或者是女时,应该写成studentSex.equals("男")||studentSex.equals("女")。
    2017-12-08 11:52:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师