| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:java小问题
只看楼主 加入收藏
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 

真的不好意思,我还是不懂:
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()这两个方法吗?
我画的红色的好像没有调用吧

2007-04-09 21:23
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 
Book book1=new Book();
这条语句的意思是 创建一个Book类的一个对象 把book1这个引用指向你创建的对象
new Book()是调用Book类的 无参构造器 (也就是说创建对象就是去new 那个类的构造器)

Book book2=new Book("C#语言基础教程","张威",600);
这条语句是使用有参数的构造器去创建对象

我就这么理解! 应该说明白了吧

越是深入的学习,就越来越感觉到自己知道的太少了...
2007-04-09 21:48
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 
还是不懂
2007-04-09 23:09
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 
12楼你说的还不是没有引用
Book(){}
Book(String str1,String str2,int num)
{title=str1;
author=str2;
numsold=num;
}
这两个方法吗?
2007-04-09 23:11
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
Book book1=new Book();
这句会调用
Book(){}
Book book2=new Book("C#语言基础教程","张威",600);
这句会调用
Book(String str1,String str2,int num)
这下明白了吧

2007-04-09 23:48
你的朋友
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-29
收藏
得分:0 
每次创建对象时都会自动调用它的构造方法
2007-04-09 23:56
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 

删除哪个都不行的
如果你自己定义了构造函数,java是不会定义默认构造函数的。
而且你的函数里两个构造函数都调用了。

2007-04-10 01:04
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 
以下是引用心动音符在2007-4-9 23:48:54的发言:
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)
这个方法吗?


2007-04-10 12:35
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 

还是不明白:
请问一下心动音符或者其它高手:
这个Book book1=new Book();不是调用class Book吗?
而Book book2=new Book("C#语言基础教程","张威",600);这个不是调用void setBook(String str1,String str2,int num)
这个方法吗?


2007-04-10 13:27
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 
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){}这两个构造方法去创建对象


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-04-10 17:07
快速回复:java小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025878 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved