黑马程序员技术交流社区
标题:
关于类和构造函数的问题
[打印本页]
作者:
﹎◇waiting﹎
时间:
2012-7-20 12:00
标题:
关于类和构造函数的问题
本帖最后由 ﹎◇waiting﹎ 于 2012-8-1 13:52 编辑
如何理解“一个类中默认会有一个空参数的构造函数,这个默认的构造函数的权限和所属类是一致的。如果被pubic修饰那么默认的构造函数也带public修饰,如果默认没有被pubic修饰那么默认的构造函数也没有public修饰”这段话
作者:
rioy1
时间:
2012-7-20 12:50
字面意思,不知道你哪里没明白哦。
一个类中默认会有一个空参数的构造函数:意思是 即使你看不到构造函数的代码,这块代码在编译器看来仍然是存在的(隐式)
这个构造代码的权限修饰符等同于类的权限。
作者:
王璐
时间:
2012-7-20 12:58
构造函数是用于创建对象的,每个类中都有一个空参的构造函数,如果类别public修饰,那么该类的空参构造函数也是public,如果类没有public,空参构造函数也没有public。
作者:
王超
时间:
2012-7-20 14:25
(1)如果没有指定构造函数,编译时会自动创建一个默认的构造函数,如果指定,则不会自动创建默认构造函数
(2)如果在类的修饰前是public 则默认构造函数访问权限是 public ,如果 没有显示采用public修饰,则 默认构造函数的访问权限是 friendly
(3)子类继承父类,子类的构造函数执行前总是会调用父类的构造函数,如果没有显示的调用父类的构造函数,则会调用父类默认的构造函数,如果父类无法产生默认构造函数,则编译器会报错。同样,如果父类的构造函数使用 private 修饰,则子类的构造函数由于无法访问到父类的默认构造函数,编译器报错
作者:
陈少文
时间:
2012-7-20 16:27
构造函数:
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);
}
}
打印结果:
未命名.jpg
(78.94 KB, 下载次数: 39)
下载附件
2012-7-20 16:26 上传
作者:
themoon
时间:
2012-7-20 18:01
在Java中,当你创建一个类的时候,系统会给你创建一个默认的不带参数的构造方法,也就是说:在当前的这个类当中,你不需要再去创建构造方法也可以创建该类的对象。然而,这并不是说你不可以再写你自己的构造方法了,只不过在你定义了自己的构造方法时,由系统提供的不带参数默认构造方法就无效了,你可以理解为被你自己写的构造方法覆盖了,而当你想要用到不带参数的构造方法时,你必须要显示的把它声明出来才行,否则,在创建对象时会失败。
而系统提供的不带参数的默认构造方法的访问权限,它是和当前你的类的访问权限相同的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2