黑马程序员技术交流社区

标题: 在封装方法时public void myGet(){}是错误的,而将void改成Object就对了呢? [打印本页]

作者: smile2015    时间: 2015-3-28 18:15
标题: 在封装方法时public void myGet(){}是错误的,而将void改成Object就对了呢?
import java.util.*;
class DuiLie
{
        private LinkedList link;//接口类型
        DuiLie()
        {
                link=new LinkedList();
        }
        public void myAdd(Object obj)//封装一个方法,
        {
                link.addFirst(obj);
        }
        public Object myGet()//注意这里Object类型
        {
                //return  link.removeLast();
                return link.removeFirst();
        }
        public boolean isNull()//返回是boolean类型
        {
                return link.isEmpty();
        }
}

public 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());
                }
    }
   
}
作者: 零点Crazy    时间: 2015-3-28 23:16
你是在练习模拟队列的吧,我们在定义方法时会这样考虑:
1、是否有返回值,否,则加上void,如:public void myGett();
2、是否有返回值,是,则考虑返回值类型,本次返回值类型
     是一个对象,所以应写成:public Object myGet();
作者: smile2015    时间: 2015-3-28 23:26
零点Crazy 发表于 2015-3-28 23:16
你是在练习模拟队列的吧,我们在定义方法时会这样考虑:
1、是否有返回值,否,则加上void,如:public voi ...

恩多谢多谢,当考虑有返回值类型时,若返回的是String类型,则写public string myGet(){},
若是返回的是int类型,public int myGet(){},当确定有返回值,但是不确定类型是什么的时候时,是不是就写成
public Object myGet(){},请您指教!!
作者: Dark县令    时间: 2015-3-28 23:49
这个很简单因为你并不知道你gei的时候返回的值是什么类型的值!所以用了所有类型的父类Object.
作者: 零点Crazy    时间: 2015-3-30 09:32
smile2015 发表于 2015-3-28 23:26
恩多谢多谢,当考虑有返回值类型时,若返回的是String类型,则写public string myGet(){},
若是返回的是i ...

可以这么写,但是基本类型的返回值,最好还能能够明确,用起来才方便。
引用类型的数据可以写成Object返回类型。




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