A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 霍明波 中级黑马   /  2012-8-18 21:15  /  2424 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     今天在查看API文档的时候发现一个问题,发现有的类没有构造方法,这是不稀奇,但是在我看见它的方法中有非静态的方法,如果说静态方法可以被类调用,但是非静态方法没有构造函数创造对象怎么调用呢,想了半天不明白,请高手指点下。

9 个回复

倒序浏览
http://bbs.itheima.com/forum.php?mod=viewthread&tid=22584&page=1#pid132640
你看看这个
回复 使用道具 举报
哥们,看看这个类List(在javaAPI中类似这样的类很多),它是一个接口。它没有构造方法,但是许多程序在操作的时候,都使用它
List list = new ArrayList()
就如上面的例子,就是用子类的构造方法来创建对象,然后赋值给父类对象,list就成了上转型对象,然后可以调用子类重写过的相关方法
一句话:没有构造方法的类,一般应该有子类,就用子类创建对象给它赋值。
回复 使用道具 举报
杨彪 发表于 2012-8-18 21:22
http://bbs.itheima.com/forum.php?mod=viewthread&tid=22584&page=1#pid132640
你看看这个

哦  刚看了你给的网址,你是说有默认的构造函数吧,我也想过。但是如果在API中都没有构造函数的话是不是就也不会给默认的构造函数呢呢?
回复 使用道具 举报
虽然没有自己的构造方法,但是有相应的方法得到该类的实例,比如static Pattern compile(String regex) 这个方法就能得到Patten的实例对象,而这个类没有构造函数
回复 使用道具 举报
张忠豹 发表于 2012-8-18 21:25
哥们,看看这个类List(在javaAPI中类似这样的类很多),它是一个接口。它没有构造方法,但是许多程序在操 ...

哦  对的,可能我很少看API吧,你说的是父类指向子类对象,如果说是子类也没有构造函数怎么办,可能钻牛角尖了。
回复 使用道具 举报
杨彪 中级黑马 2012-8-18 21:45:39
7#
霍明波 发表于 2012-8-18 21:31
哦  刚看了你给的网址,你是说有默认的构造函数吧,我也想过。但是如果在API中都没有构造函数的话是不是 ...

如果不写构造函数,系统会默认给出的,供创建对象使用
回复 使用道具 举报
霍明波 发表于 2012-8-18 21:41
哦  对的,可能我很少看API吧,你说的是父类指向子类对象,如果说是子类也没有构造函数怎么办,可能钻牛角 ...

子类没有构造方法,我种情况倒是少见,如果兄弟碰上个举一个呗!
如果没有子类什么的,那就只能使用匿名内部类调用了
public class TestYunSuanFu {
        public static void main(String args[]){
                Fei fei = new Fei(){
                        public void study() {
                                System.out.println("我学习java");
                        }
                        public void drinking() {
                                System.out.println("我喝水");
                        }               
                };
                fei.study();
                fei.drinking();
        }
}
interface Fei{
        public void study();
        public void drinking();
}
回复 使用道具 举报
阳杰 初级黑马 2012-8-18 22:14:57
9#
霍明波 发表于 2012-8-18 21:31
哦  刚看了你给的网址,你是说有默认的构造函数吧,我也想过。但是如果在API中都没有构造函数的话是不是 ...

文档中看不到 构造函数 应该是 在封装类时,构造函数被私有化了,不允许外部直接创建对象。
其他的 张忠豹应该是正解 呵呵
回复 使用道具 举报
解决。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马