楼主: omencathay

[精华] Think in java读书笔记

[复制链接]
论坛徽章:
0
271#
发表于 2005-3-20 17:50 | 只看该作者
我不太能理解这个例子,请大家能不能帮我解释一下啊!!

-----------------------------------------------------------------------------------------------------
class tree  //类
{
        int height;
        tree(){                //构造函数;要与类同名;
                prt("Planting a seeding";
                height=0;
        }
        tree(int i){  //这个大括号必须在这,在下面就不行,其它的也 是不理解?
                prt("Create a new tree that is"+i+"feet tall";
                height=i;
        }
        void info(){
                prt("tree is"+height+"feet tall";
        }
        void info(String s){
                prt("tree is"+height+"feet tall";
        }
       
        static void prt(String s){
                System.out.println(s);
        }
}


public class ch5
{
        public static void main(String as[])
        {
                for(int i=0;i<5;i++)
                {
                        tree t=new tree(i);
                        t.info();
                        t.info("overloading method";
                }
        }
}

=====================================
在线等!!急!!!!

使用道具 举报

回复
论坛徽章:
0
272#
发表于 2005-3-22 12:21 | 只看该作者
就这样没了吗?
加油啊

使用道具 举报

回复
论坛徽章:
0
273#
发表于 2005-3-23 02:20 | 只看该作者
我是菜鸟 有点明白了,谢谢各位

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
274#
发表于 2005-3-24 22:00 | 只看该作者
TO clznet:
1,"这个大括号必须在这,在下面就不行",这个可能跟你编译器有关系,我的可以(JCreator);
2,其他的就是方法了,比较明显吧!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
275#
发表于 2005-3-24 22:03 | 只看该作者
因为最近在给学生上课(高中),我也比较懒惰,放弃了一阶段。决定今天再回来学java,请高手或者同行们不吝指教。希望大家一起进步!

使用道具 举报

回复
论坛徽章:
33
2011新春纪念徽章
日期:2011-01-25 15:41:012012新春纪念徽章
日期:2012-02-13 15:11:52ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14兰博基尼
日期:2013-11-04 12:55:50马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:52
276#
 楼主| 发表于 2005-3-26 20:40 | 只看该作者
最初由 clznet 发布
[B]我不太能理解这个例子,请大家能不能帮我解释一下啊!!

-----------------------------------------------------------------------------------------------------
class tree  //类
{
        int height;
        tree(){                //构造函数;要与类同名;
                prt("Planting a seeding";
                height=0;
        }
        tree(int i){  //这个大括号必须在这,在下面就不行,其它的也 是不理解?
                prt("Create a new tree that is"+i+"feet tall";
                height=i;
        }
        void info(){
                prt("tree is"+height+"feet tall";
        }
        void info(String s){
                prt("tree is"+height+"feet tall";
        }
       
        static void prt(String s){
                System.out.println(s);
        }
}


public class ch5
{
        public static void main(String as[])
        {
                for(int i=0;i<5;i++)
                {
                        tree t=new tree(i);
                        t.info();
                        t.info("overloading method";
                }
        }
}

=====================================
在线等!!急!!!! [/B]


构造函数与类同名,在你使用new新创建一个类时,会自动调用合适的构造函数,当你的方法需要处理不同类型的参数时,会自动调用合适的方法来处理,比如你的例子,有两个同名的构造函数tree()和tree(int i),如果不传递参数,会调用tree()函数,如果传递一个整型的参数,则会调用tree(int i)函数,具体调用那个函数,java解释器会自动判断的,这取决于你所要处理的参数类型,重载方法是java中一个比较聪明的地方,细细体会吧

使用道具 举报

回复
论坛徽章:
4
开发板块每日发贴之星
日期:2005-07-14 01:02:16开发板块每日发贴之星
日期:2005-07-17 01:02:14开发板块每日发贴之星
日期:2005-07-19 01:02:15开发板块每日发贴之星
日期:2005-08-10 01:02:21
277#
发表于 2005-3-26 22:08 | 只看该作者

报个到先

刚刚接触JAVA两个月,上一周看到了Think in Java,立刻就被里面的内容吸引住了,他从根本上解释了JAVA思想,以前只知道看语法书,看了不知道为什么,很郁闷,看到TIJ有一种恍然大悟的感觉,真是不错,希望以后可以和各位大侠多多交流

使用道具 举报

回复
论坛徽章:
0
278#
发表于 2005-3-29 10:15 | 只看该作者
我也是菜鸟,刚开始看Think in Java,请大家多多关照。

使用道具 举报

回复
论坛徽章:
0
279#
发表于 2005-3-30 09:26 | 只看该作者
//OrderOfInitialization.java

class Tag{
        Tag(int marker){
                System.out.println("Tag("+marker+"";
        }
}

class Card{
        Tag t1=new Tag(1);
        Card(){
        System.out.println("Card()";
        t3=new Tag(33);
        }
        Tag t2=new Tag(2);
        void f(){
                System.out.println("f()";
        }
        Tag t3=new Tag(3);
}

public class OrderOfInitialization{
        public static void main(String[] args){
                Card t=new Card();
                t.f();
        }
}

请问这个程序是怎样一个执行过程???我不太理解java程序执行顺序????

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
280#
发表于 2005-3-30 19:55 | 只看该作者
这个例子不错输出是:
Tag(1)
Tag(2)
Tag(3)
Card()
Tag(33)
f()
看来java是首先执行最上一层的函数,再接下去执行下一层的函数了。(或者说速度之差了),请高手指点

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表