j***a语言修饰规范,j***a语言修饰符的规定

kodinid 11 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言修饰规范的问题,于是小编就整理了3个相关介绍Java语言修饰规范的解答,让我们一起看看吧。

  1. java为什么不能用protected修饰类?
  2. 在Java中如何定义宏?
  3. Java怎么调用类中的静态方法?

j***a为什么不能用protected修饰类?

关于外部类只能用public或默认修饰的说法: 我是这样理解的:这些修饰权限是针对类中的那些变量方法、内部类来说的,而外部类已经在最外部(即不存在说在哪个类的内部,或是哪个类的子类这些范围),类作为单独文件加载不能被修饰为私有(private)或受保护的(protected)[下面也解释了]。只有类内部的那些变量方法去针对访问权限来讨论才有意义。 上述讨论权限这样说才更具意义: public: (类中被修饰为public的所有变量、方法、内部类)对所有类可见。 protected: (类中被修饰为protected的所有变量、方法、内部类)对同一包内的类和所有子类可见。 default(即缺省,什么也不写): (类中被修饰为default的所有变量、方法、内部类)在同一包内可见。 private: (类中被修饰为private的所有变量、方法、内部类)在同一类内(自身)可见。 即:均是针对类内部的内容来讨论的访问权限所具备的意义。 既然这样为什么还要对 外部类 或 类 做修饰呢,直接规定只有类内部才能使用访问权限修饰符不就行了?

1.存在包概念:public 和 default 能区分这个外部类能对不同包作一个划分 (default修饰的类,其他包中引入不了这个类,public修饰的类才能被import) 这里又有人会说 protected 也包括同包了啊? 1)public 和 default 足够区分,public就代表公共,不写就代表default,无需再加个protected累赘 2)protected又包含了不同包子类访问权限的概念,外部类最外层就是包了,所以对外部类用protected没意义,包又不具备继承关系。

java语言修饰规范,java语言修饰符的规定-第1张图片-安济编程网
(来源网络,侵删)

2.存在内部类概念:当存在内部类的时候,访问权限修饰符就变得有意义了。(类也变成成员嵌套当然也就需要访问修饰符了)

在J***a中如何定义宏?

宏定义经常出现在在C/C++代码中,以“#define **” 的形式出现。j***a中也有“宏变量”,不过是另一种形式。

final是j***a中的一个关键字,用来修饰类、成员变量、局部变量、方法,表示不可变。当final修饰一个变量时,已经为该变量指定了初始值,那么这个变量在编译时就可以确定下来,那么这个final变量实质上就是一个“宏变量”,编译器会把程序中所有用到该变量的地方替换成该变量的值。

java语言修饰规范,java语言修饰符的规定-第2张图片-安济编程网
(图片来源网络,侵删)

J***a怎么调用类中的静态方法?

1.先在eclipse创建一个J***a工程文件。并在src下创建demo包,在demo包下创建类DemoClass。创建后的工程目录如图

2.接下来在DemoClass类中添加一个静态属性和静态方法。被static修饰的属性或方法就是静态的。

3.对于静态方法的调用,可以使用调用非静态方法的方式去调用,即创建一个类的对象然后再调用静态方法,具体代码如下图

java语言修饰规范,java语言修饰符的规定-第3张图片-安济编程网
(图片来源网络,侵删)

4.编辑好代码后,通过j***a应用程序的方式运行DemoClass.j***a文件,运行结果如图说明成功调用了静态方法。

5.不过,上面调用静态方法的方式是不推荐的。如果使用上面的方式调用静态方法,在eclipse中,你可以看到下图的警告,大概的意思是要你使用正确的调用静态方法的方式去调用该方法。

到此,以上就是小编对于j***a语言修饰规范的问题就介绍到这了,希望介绍关于j***a语言修饰规范的3点解答对大家有用。

标签: 修饰 部类 变量