真的不好意思,我还是不懂:
public class TestBook
public static void main(String[] args)
Book book1=new Book();
book1.setBook("C#实用教程","吴军",700);
book1.printBook();
Book book2=new Book("C#语言基础教程","张威",600);
book2.printBook();
你画的这里不是调用class Book类中的setBook(String str1,String str2,int num)
跟void printBook()这两个方法吗?
我画的红色的好像没有调用吧
----------------解决方案--------------------------------------------------------
Book book1=new Book();
这条语句的意思是 创建一个Book类的一个对象 把book1这个引用指向你创建的对象
new Book()是调用Book类的 无参构造器 (也就是说创建对象就是去new 那个类的构造器)
Book book2=new Book("C#语言基础教程","张威",600);
这条语句是使用有参数的构造器去创建对象
我就这么理解! 应该说明白了吧
----------------解决方案--------------------------------------------------------
还是不懂
----------------解决方案--------------------------------------------------------
12楼你说的还不是没有引用
Book(){}
Book(String str1,String str2,int num)
{title=str1;
author=str2;
numsold=num;
}
这两个方法吗?
----------------解决方案--------------------------------------------------------
Book book1=new Book();
这句会调用
Book(){}
Book book2=new Book("C#语言基础教程","张威",600);
这句会调用
Book(String str1,String str2,int num)
这下明白了吧
----------------解决方案--------------------------------------------------------
每次创建对象时都会自动调用它的构造方法
----------------解决方案--------------------------------------------------------
删除哪个都不行的
如果你自己定义了构造函数,java是不会定义默认构造函数的。
而且你的函数里两个构造函数都调用了。
----------------解决方案--------------------------------------------------------
Book book1=new Book();
这句会调用
Book(){}
Book book2=new Book("C#语言基础教程","张威",600);
这句会调用
Book(String str1,String str2,int num)
这下明白了吧
Book book1=new Book();这个不是调用class Book()这外类吗?
而Book book2=new Book("C#语言基础教程","张威",600);不是调用void setBook(String str1,String str2,int num)
这个方法吗?
----------------解决方案--------------------------------------------------------
还是不明白:
请问一下心动音符或者其它高手:
这个Book book1=new Book();不是调用class Book吗?
而Book book2=new Book("C#语言基础教程","张威",600);这个不是调用void setBook(String str1,String str2,int num)
这个方法吗?
----------------解决方案--------------------------------------------------------
12楼你说的还不是没有引用
Book(){}
Book(String str1,String str2,int num)
{title=str1;
author=str2;
numsold=num;
}
这两个方法吗?
这两个方法不就是构造器么! 或者叫构造方法 , 构造函数。要是还没明白就好好看看书上构造方法是什么吧
还是不明白:
请问一下心动音符或者其它高手:
这个Book book1=new Book();不是调用class Book吗?
而Book book2=new Book("C#语言基础教程","张威",600);这个不是调用void setBook(String str1,String str2,int num)
这个方法吗?
它们两个的方法名都不同 怎么能是一个方法呢?
在创建对象的时候 就是在new它的构造方法 如果你自己要是没写构造方法的话 系统默认会给你一个无参数的空方法也就是你写的程序里的Book(){} 你要是自己写了 系统就不会给你这个方法了
但是你在程序里自己写了2个构造方法,所以你在创建对象时就必须用这2个方法中的一个去创建你的对象
你在main方法中两条语句
Book book1=new Book();
Book book2=new Book("C#语言基础教程","张威",600);
是分别使用第一个Book(){}和第二个Book(String str1,String str2,int num){}这两个构造方法去创建对象
----------------解决方案--------------------------------------------------------