大家好,今天小编关注到一个比较有意思的话题,就是关于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没意义,包又不具备继承关系。
2.存在内部类概念:当存在内部类的时候,访问权限修饰符就变得有意义了。(类也变成成员来嵌套当然也就需要访问修饰符了)
请问j***a中类名.方法名().方法名()是什么意思?
可以通过类名+方法名调用的方法叫做静态方法,属于类级别方法.类方法可在不实例化对象的前提下调用.一般类的静态方法和静态变量都是通过static关键字修饰的.而且静态方法体里不能应用任何实例变量和实例方法,至于你那段程序,调用那个方法和new一个对象效果是一样的.不过只是把实例的创建封装在方法里,通过类名加方法来调用而已,让实例化代码简洁点外,无任何差别.不过,有些时候,有些类的设计,出于某种需要,不希望类的构造方法是public的,也就是用户无法直接new出来的,通常就会通过这么一个静态方法来调用获取实例.而且这些方法体里除了直接return一个实例之外,可能还会做某些处理,这在j***a里许多类都有这种设计.如,j2me中的Image类.
J***a程序是由什么组成的?一个程序中必须要有public类吗?J***a源文件的命名规则是怎么样?
j***a是由类组成的
一个程序中public类可有可无 ,但要加的话,public只能修饰与
你文件名相同的那一个类,也就是说,一个源文件中最高只能有一个public类
类名命名规则:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorld
import语句 //0或多个,必须放在所有类定义之前
public classDefinition //0或1个
classDefinition //0或多个
interfaceDefinition //0或多个
到此,以上就是小编对于j***a语言修饰的问题就介绍到这了,希望介绍关于j***a语言修饰的3点解答对大家有用。