老师,麻烦讲解一下,为什么构造方法是这样写的?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class BookTest { public static void main(String[] args) { Book a= new Book( "红楼梦" , "曹雪芹" ); Book b= new Book( "小李飞刀" , "古龙" ); a.setBookHouse( "人民文学出版社" ); b.setBookHouse( "中国长安出版社" ); a.setPrices( 8 ); b.setPrices( 55.5 ); System.out.println(a.info()); System.out.println( "================================" ); System.out.println(b.info()); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public class Book { private String bookName,author,bookHouse; private double prices; public String getBookName() { return bookName; } public String getAuthor() { return author; } public Book(String bookName,String author) { this .bookName=bookName; this .author=author; } public String getBookHouse() { return bookHouse; } public void setBookHouse(String bookHouse) { this .bookHouse = bookHouse; } public double getPrices() { return prices; } public void setPrices( double prices) { if (prices<= 10 ) { System.out.println( "图书价格最低为10元" ); this .prices= 10.0 ; } else this .prices = prices; } public String info() { String info= "书名:" + this .getBookName()+ "\n作者:" + this .getAuthor()+ "\n出版社:" + this .getBookHouse()+ "\n价格" + this .getPrices()+ "元" ; return info; } } |
0
收起
正在回答
2回答
同学你好,这里可以这样理解,1、构造方法可以将多个参数传入,在初始化对象的时候,将属性一一赋值,但是单个的set方法,只能对本属性来赋值哦!
如上就是对书名和作者的赋值哦!
2、通常的构造方法中是对属性的赋值,比如:this.bookName=bookName;是对书名属性的赋值,但是没有任何判断哦!
3、set方法可以对属性的添加进行判断哦,同样可以将属性赋值的set方法用于构造方法中,比如:
1 2 3 4 5 | public Book(String bookName,String author, double prices) { this .bookName=bookName; this .author=author; this .setPrices(prices); //通过set方法对属性赋值 } |
如上就是通过setPrices方法添加了判断对属性的赋值哦!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧