黑马程序员技术交流社区

标题: 好几个问题,给解释下吧 [打印本页]

作者: 小洋人最happy    时间: 2012-11-27 17:03
标题: 好几个问题,给解释下吧
/*
使用LinkedList模拟一个堆栈或队列的数据结构
堆栈:先进后出
队列:先进先出

*/

import java.util.*;

class DuiLie
{
        private LinkedList link;//是否可以写成private LinkedList link = new ListedLink();
       
        DuiLie()
        {
                link = new LinkedList(); //这句话是对link进行初始化吗?
        }

        public void Myadd(Object obj)//为什么使用Object obj
        {
                link.addFirst(obj);
        }

        public Object Myget()//为什么使用Object?  为什么()不添加参数呢?和上面添加参数的有什么区别呢?
        {
                return link.removeLast();
        }

        public boolean isNull()
        {
                return link.isEmpty();
        }
}

class LinkedListTest
{
        public static void main(String[] args)
        {
                DuiLie dl = new DuiLie();
               
                dl.Myadd("java01");
                dl.Myadd("java02");
                dl.Myadd("java03");
                dl.Myadd("java04");

                while (!dl.isNull())
                {
                        System.out.println(dl.Myget());
                }


       
        }
}



作者: ssx0101    时间: 2012-11-27 17:55
class DuiLie
{
        private LinkedList link;//是否可以写成private LinkedList link = new ListedLink();答:可以,不过没必要,应为在构造函数里已经有初始化操作,这样会创建两个ListLink对象。
        
        DuiLie()
        {
                link = new LinkedList(); //这句话是对link进行初始化吗?答:是
        }

        public void Myadd(Object obj)//为什么使用Object obj答:Object是所有类的基类,这样这个方法就可以处理任何类型(基本数据类型除外)的参数了
        {
                link.addFirst(obj);
        }

        public Object Myget()//为什么使用Object?  为什么()不添加参数呢?和上面添加参数的有什么区别呢?答:添加参数的目的是把“原料”交给方法。这个方法的原料“link”是类的私有成员,可以直接使用,不需要从外部传入。
        {
                return link.removeLast();
        }

        public boolean isNull()
        {
                return link.isEmpty();
        }
}

class LinkedListTest
{
        public static void main(String[] args)
        {
                DuiLie dl = new DuiLie();
               
                dl.Myadd("java01");
                dl.Myadd("java02");
                dl.Myadd("java03");
                dl.Myadd("java04");

                while (!dl.isNull())
                {
                        System.out.println(dl.Myget());
                }







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2