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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ﹎◇waiting﹎ 初级黑马   /  2012-7-20 12:00  /  2101 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ﹎◇waiting﹎ 于 2012-8-1 13:52 编辑

如何理解“一个类中默认会有一个空参数的构造函数,这个默认的构造函数的权限和所属类是一致的。如果被pubic修饰那么默认的构造函数也带public修饰,如果默认没有被pubic修饰那么默认的构造函数也没有public修饰”这段话

5 个回复

倒序浏览
  字面意思,不知道你哪里没明白哦。
一个类中默认会有一个空参数的构造函数:意思是 即使你看不到构造函数的代码,这块代码在编译器看来仍然是存在的(隐式)
这个构造代码的权限修饰符等同于类的权限。
回复 使用道具 举报
构造函数是用于创建对象的,每个类中都有一个空参的构造函数,如果类别public修饰,那么该类的空参构造函数也是public,如果类没有public,空参构造函数也没有public。
回复 使用道具 举报
(1)如果没有指定构造函数,编译时会自动创建一个默认的构造函数,如果指定,则不会自动创建默认构造函数
(2)如果在类的修饰前是public 则默认构造函数访问权限是  public ,如果 没有显示采用public修饰,则 默认构造函数的访问权限是 friendly
(3)子类继承父类,子类的构造函数执行前总是会调用父类的构造函数,如果没有显示的调用父类的构造函数,则会调用父类默认的构造函数,如果父类无法产生默认构造函数,则编译器会报错。同样,如果父类的构造函数使用 private 修饰,则子类的构造函数由于无法访问到父类的默认构造函数,编译器报错

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
构造函数:
1.构造函数命名必须和类名完全相同,一般用来作类的初始化。
2.是一种特殊的方法,主要用于在类的对象创建时定义初始化状态。
  它没有返回值,也不能用void来修饰。
3.当定义一个类时,如果类没有定义一个构造函数,java编译器会提供
  一个默认不带参数的,构造函数。

例子:


class TestDemo
{
        //无参数的构造函数
        TestDemo()
        {
                System.out.println("welcome");
        }
        //有参数的构造函数
        TestDemo(int i)
        {
                System.out.println(i);
        }
        
}

class Test
{
        public static  void main(String [] args)
        {
                //创建对象,将会调用无参的构造函数
                TestDemo td = new TestDemo();
                //创建对象,将会调用有参的构造函数
                TestDemo td1 = new TestDemo(20);
               
        }
}


打印结果:
回复 使用道具 举报
在Java中,当你创建一个类的时候,系统会给你创建一个默认的不带参数的构造方法,也就是说:在当前的这个类当中,你不需要再去创建构造方法也可以创建该类的对象。然而,这并不是说你不可以再写你自己的构造方法了,只不过在你定义了自己的构造方法时,由系统提供的不带参数默认构造方法就无效了,你可以理解为被你自己写的构造方法覆盖了,而当你想要用到不带参数的构造方法时,你必须要显示的把它声明出来才行,否则,在创建对象时会失败。
而系统提供的不带参数的默认构造方法的访问权限,它是和当前你的类的访问权限相同的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马