「缺省规则java」缺省和默认

博主:adminadmin 2022-12-23 03:54:08 81

今天给各位分享缺省规则java的知识,其中也会对缺省和默认进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java的缺省构造方法

缺省构造器(又名“无参构造器”)是没有形式参数的

如果你不写,那就系统默认给你一个缺省构造方法

举例如下:

class Art {

Art() {

System.out.println("Art constructor");

}

}

class Drawing extends Art {

Drawing() {

System.out.println("Drawing constructor");

}

}

public class Cartoon extends Drawing {

//这里没有default constructor,也可以得出正确答案?

public static void main(String[] args) {

Cartoon x = new Cartoon();

}

}

answers:Art constructor

Drawing constructor

java中的缺省值是什麼意思?

java中的缺省值是指当你使用一个没有赋值过的变量时,程序并没有报错,这时候就代表这个变量有一个缺省值,缺省值就是当你没有给变量赋值时,这时候变量自己拥有一个缺省的值,当你赋值时,该缺省值会被赋值的值所替代。体现缺省值最明显的例子就是,你定义一个int型的变量i,然后直接输出,这时候会输出0,这个0就是缺省值也是默认值,如果现在对i进行赋值,赋值一个3,那么0就会被替代,输出的就会是3。

java缺省是什么意思?

在java语言中,每个类至少有一个构造方法。如果程序中没有显式定义任何构造方法,

那么java语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。

那么java语言将不再提供隐含的默认构造方法。

//实例1

class Base

{

Base(int i) { System.out.println("Base("+i+")"); }

}

class Sub extends Base

{

Sub() { System.out.println("Sub()"); }

Sub(int i)

{

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

/*output:

z.java:9: 找不到符号

符号: 构造函数 Base()

位置: 类 Base

Sub() { System.out.println("Sub()"); }

^

z.java:11: 找不到符号

符号: 构造函数 Base()

位置: 类 Base

{

^

2 错误

*/

通过分析以上编译错误,原因是Base父类缺少默认构造方法,正因为Base父类定义了带参数的构造方法,以至于java语言将不再提供隐式的默认构造方法,所以代码无法通过编译。

//实例2

class Base

{

Base(int i) { System.out.println("Base("+i+")"); }

}

class Sub extends Base

{

Sub()

{

super(8);

System.out.println("Sub()");

}

Sub(int i)

{

super(9);

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

情况变得扑朔迷离起来,虽然Base父类没有显式提供无参数的默认构造方法,

而java语言也不会提供隐式的默认构造方法,但以上代码竟然正常编译通过了。

2、构造方法的显式与隐式调用

如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用其他重载构造方法,

那么在生成子类的实例对象时,系统将默认调用父类无参数的构造方法。

看看真实的实例1代码:

class Base

{

Base(int i) { System.out.println("Base("+i+")"); }

}

class Sub extends Base

{

Sub()

{

super();

System.out.println("Sub()");

}

Sub(int i)

{

super();

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

原来隐式调用的super();被省略了,这下也就知道了实例2为什么得以正确编译。

java 中什么叫缺省

缺省就是一个默认的初始值,在你不赋值的情况下会自动使用它;比如你定义一个boolean flag;此时没赋值,所以相当于写的Boolean flag=false; (缺省值是false)

JAVA中,类的缺省访问范围是什么

应该这样理解:缺省无名包应该是classpath所指向的目录。有包名的类不能访问缺省无名包中的非公有的类。

关于缺省规则java和缺省和默认的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。