例子:
同样是输出信息,这几个的差异在哪?通过属性赋值和通过全局变量赋值的作用上的区别我能理解,但是通过属性赋值与通过构造函数作用上的区别我不是很明白,所以请老师给我解答一下
public Book(String name, double price) {
this.name = name;
this.price = price;
}
有参构造方法的作用是把参数name和price的值赋给Book类中的属性name和price。
主方法中通过“Book book = new Book("西游记", 38.0);”为有参构造方法中的参数name和price赋值,然后再把参数name和price的值赋给Book类中的属性name和price,这样调用print()方法就能打印出Book类中属性name和price的值。
David 发表于2017-04-15 15:51
public Book(String name, double price) {
this.name = name;
this.price = price;
}
有参构造方法的作用是把参数name和price的值赋给Book类中的属性name和price。
主方法中通过“Book book = new Book("西游记", 38.0);”为有参构造方法中的参数name和price赋值,然后再把参数name和price的值赋给Book类中的属性name和price,这样调用print()方法就能打印出Book类中属性name和price的值。
这个我知道,我是想问,他们在用法上的区别,或者说,什么时候用属性,什么时候用构造函数,在这个例子里,两者都直接可以赋值并输出,如果仅仅是作用于相同的用途,那就没必要有两种方式啊。
通过继承就能实现,例如
class Book {
String name;
String author;
public void show() {
System.out.println("书名:" + name);
System.out.println("作者:" + author);
}
}
class SoldBook extends Book {
double price;
public void show() {
System.out.println("书名:" + name);
System.out.println("作者:" + author);
System.out.println("定价:" + price);
}
}
public class Test {
public static void main(String[] args) {
SoldBook soldBook = new SoldBook();
soldBook.name = "《Java从入门到精通》";
soldBook.author = "明日科技";
soldBook.price = 59.8;
soldBook.show();
}
}
David 发表于2017-04-17 13:44
通过继承就能实现,例如
class Book {
String name;
String author;
public void show() {
System.out.println("书名:" + name);
System.out.println("作者:" + author);
}
}
class SoldBook extends Book {
double price;
public void show() {
System.out.println("书名:" + name);
System.out.println("作者:" + author);
System.out.println("定价:" + price);
}
}
public class Test {
public static void main(String[] args) {
SoldBook soldBook = new SoldBook();
soldBook.name = "《Java从入门到精通》";
soldBook.author = "明日科技";
soldBook.price = 59.8;
soldBook.show();
}
}
谢谢老师 ,我前面就是这样,但估计漏了什么才错了。。。所以以为不可以这样写才来提问的。。。。。