老师,我这里判断怎么没效果呢?小于10怎么没用呢?
package com.imoocproj;
public class Test {
public static void main(String[] args) {
//调用无参构造方法实例对象
// Person p=new Person();
// //打印输出对象属性
//
// //调用带参构造方法实例对象
// Person w=new Person("houzi","buh");
// //打印输出对象属性
Person p=new Person("红楼梦","曹雪芹","人民出版社",9.9f);
Person w=new Person("小李飞刀","古龙","中国长安出版社",9.9f);
System.out.println(p.Strc());
System.out.println("=======================");
System.out.println(w.Strc());
}
}
package com.imoocproj;
public class Person {
private String sname;
private String name;
private String cname;
private float Price;
//通过构造方法实现属性赋值
// public void setsname(String sname) {
// this.sname=sname;
// }
public Person(String sname,String name,String cname,float Price) {
this.sname=sname;
this.cname=cname;
this.name=name;
this.Price=Price;
}
public String getsname() {
return sname;
}
public String getName() {
return name;
}
//
// public void setName(String name) {
// this.name = name;
// }
public void setcname(String cname) {
this.cname=cname;
}
public String getcname() {
return cname;
}
public void setPrice(float Price) {
if(Price<=10) {
System.out.println("限定图书价格必须大于10");
this.Price=10f;
}else {
this.Price=Price;
}
}
public float getPrice() {
return Price;
}
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
//信息介绍方法,描述图书所有信息
public String Strc() {
String a="书名:"+this.sname+"\n作者:"+this.name+"\n出版社:"+this.cname+"\n价格:"+this.Price;
return a;
}
}17
收起
正在回答
1回答
同学你好,同学代码中对价格的控制代码写在了setPrice中,但创建对象时使用的有参构造直接使用this语句进行赋值,所以导致没有执行控制代码。建议同学在有参构造中通过调用setPrice方法的形式对参数进行控制。
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星