本文目录一览

1,java修饰符

不可以,必须在同一包下才可以...
你说的有点乱 我没太看懂,你最好自己按照你说的写个程序试一下,只要在方法里写输出语句 你就知道能不能被调用了

java修饰符

2,Java提供哪些访问修饰符其中哪些访问修饰符用于修饰类哪些访问

java 提供的修饰符有public ,protected,private,static,final,abstract,(default).其中修饰类的有public,default,final,abstract ,对于类成员除了abstract 其余都可以的!

Java提供哪些访问修饰符其中哪些访问修饰符用于修饰类哪些访问

3,JAVA 类有哪些访问修饰符

public 类: 可以被同一个类、同一个包、不同包的子类、不同包的非子类访问缺省访问控制符的:可以被同一个类、同一个包访问private类:可以被同一个类访问private类:可以被同一个类、同一个包、不同包的子类访问
public公有private私有protect保护
各等级的访问控制等级权限等级 访问范围Public 所有包所有地方都可以访问Protected 同包以及子类可以访问Friendly(default) 同包可以访问Private 除了当前类任何地方都不可以访问
public 和 缺省你新建个类就知道了
几个常用修饰符的优先级: private:是私有的,访问权限最低,仅只能被本类中访问 protect:受保护的,访问权限高些,只可以被本程序集中访问 public:公有的,访问权限最高,可以在任何类中被访问

JAVA 类有哪些访问修饰符

4,关于JAVA的修饰符

public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。 包外 子类 包内 类内 public yes yes yes yes protected no yes yes yes default no no yes yes private no no no yes默认不写的为default。你的 run方法是父类继承来的,父类是public 。子类只能能大于等于父类权限。所以必须是public
对类加修饰符号一般在都选择为public(大多数类,如工具类)或protected(需要被继承的基类),protected使用一定要注意需要继承的类要在同一包, 对方法常用(public,private),则判断该方法是否需要被该类以外的类和对象使用,如果需要,就用public,不需要则用private, 对属性最好都用private,当外部需要使用该属性或设置该属性则采用javabean的思路,使用setter和getter访问该属性 至于static,abstract等修饰以及构造方法的修饰符常用于各种设计模式,一言两语说不清楚,多写代码,做点项目慢慢你就能理解了,可以联系我一起讨论交流 qq:1101047

5,java里的修饰符

对类加修饰符号一般在都选择为public(大多数类,如工具类)或protected(需要被继承的基类),protected使用一定要注意需要继承的类要在同一包, 对方法常用(public,private),则判断该方法是否需要被该类以外的类和对象使用,如果需要,就用public,不需要则用private, 对属性最好都用private,当外部需要使用该属性或设置该属性则采用JavaBean的思路,使用Setter和Getter访问该属性 至于static,abstract等修饰以及构造方法的修饰符常用于各种设计模式,一言两语说不清楚,多写代码,做点项目慢慢你就能理解了,可以联系我一起讨论交流 QQ:1101047
修饰取决于你所定义的类或方法的作用域和调用方式。
static:静态 静态:全类公有 静态属性,可以用类名访问 同样,静态方法也用类名访问 在静态方法中,不能访问非静态成员,不能出现this 静态方法,只能和静态方法覆盖,而且没有多态 private:私有 只有本类才能访问 public:共有 所有类均可访问 protected:保护 同类 同包 子类可以访问 default:缺省 同类 同包访问 final:常量 常量名:字母大写 变量:实例 局部,修饰以后就变成了变量 方法:不能被子类覆盖 类:不能被子类继承 abstract:抽象 类:抽象类不能构造对象,抽象类是被子类继承的 方法:只有定义(声明) 没有实现, 注意:如果一个类有抽象方法,这个类必须是抽象类 如果一个类是抽象类,这个类可以有抽象方法,反之 抽象方法是专门给子类覆盖的 一个子类继承一个抽象类时,如果不希望子类也是抽象的,那么就必须实现父类综说有的抽象方法 抽象类可以有构造方法 抽象类可以看成是一个类的半成品
private 是私有的 只有这个类才能访问 public 是共有的 所有类都能访问 protect 是受保护的 只有自己的类和子类才能访问 不谢默认的就是只有自己的类和子类还有同一个包下的类能访问

6,java中的修饰符

private public protected final
static 表示静态,它可以修饰属性,方法和代码块。1,static修饰属性(类变量),那么这个属性就可以用 类名.属性名 来访问,也就是使这个属性成为本类的类变量,为本类对象所共有。这个属性就是全类公有。(共有的类变量与对象无关,只和类有关)。类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件(字节码文件)读入JVM(java虚拟机),这个过程成为类的加载。JVM(java虚拟机)会通过类路径(CLASSPATH)来找字节码文件。类变量,会在加载时自动初始化,初始化规则和实例变量相同。注意:类中的实例变量是在创建对象时被初始化的,被static修饰的属性,也就是类变量,是在类加载时被创建并进行初始化,类加载的过程是进行一次。也就是类变量只会被创建一次。2,static修饰方法(静态方法),会使这个方法成为整个类所公有的方法,可以用类名.方法名 访问。注意:static修饰的方法,不直接能访问(可以通过组合方式访问)本类中的非静态(static)成员(包括方法和属性),本类的非静态(static)方法可以访问本类的静态成员(包括方法和属性),可以调用静态方法。静态方法要慎重使用。在静态方法中不能出现this关键字。注意:父类中是静态方法,子类中不能覆盖为非静态方法,在符合覆盖规则的前提下,在父子类中,父类中的静态方法可以被子类中的静态方法覆盖,但是没有多态。(在使用对象调用静态方法是其实是调用编译时类型的静态方法)注意:父子类中,静态方法只能被静态方法覆盖,父子类中,非静态方法只能被非静态方法覆盖。java中的main方法必须写成static的因为,在类加载时无法创建对象,因为静态方法可以不通过对象调用所以在类的main方法。所在在类加载时就可以通过main方法入口来运行程序。注意:组合方式,就是需要在方法中创建一个所需要的对象,并用这个对象来调用任意所需的该对象的内容,不会再受只能访问静态的约束。3,static修饰初始代码块,这时这个初始代码块就叫做静态初始代码块,这个代码块只在类加载时被执行一次。可以用静态初始代码块初始化一个类。动态初始代码块,写在类体中的“类在什么时候会被加载,构造(创建)对象时会加载类,调用类中静态方法或访问静态属性也是会加载这个静态方法真正所在的类。在构造子类对象时必会先加载父类,类加载会有延迟加载原则,只有在必须加载时才会加载。final修饰符,可以修饰变量,方法,类1,final修饰变量被fianl修饰的变量就会变成常量(常量应当大写),一旦赋值不能改变,(可以在初始化时直接赋值,也可以在构造方法里也可以赋值,只能在这两种方法里二选一,不能不为常量赋值),fianl的常量不会有默认初始值,对于直接在初始化是赋值时final修饰符常和static修饰符一起使用。2,final修饰方法,被final修饰的方法将不能被其子类覆盖,保持方法的稳定不能被覆盖。3,final修饰类,被final修饰的类将不能被继承。final类中的方法也都是final的。注意:final,不能用来修饰构造方法,在父类中如果有常量属性,在子类中使用常量属性时是不会进行父类的类加载。静态常量如果其值可以确定,就不会加载该类,如果不能确定则会加载该常量所在的类。不变模式,对象一旦创建属性就不会改变。用final修饰属性,也用final修饰类(强不变模式),用final修饰属性(弱不变模式)。不变模式的典型体现:java.lang.String类,不变模式可以实现对象的共享(可以用一个对象实例赋值给多个对象变量。)池化的思想,把需要共享的数据放在池中(节省空间,共享数据)只有String类可以用“”中的字面值创建对象。在String类中,以字面值创建时,会到Java方法空间的串池空间中去查找,如果有就返回串池中字符串的地址,并把这个地址付给对象变量。如果没有则会在串池里创建一个字符串对象,并返回其地址付购对象变量,当另一个以字面值创建对象时则会重复上述过程。如果是new在堆空间中创建String类的对象,则不会有上述的过程。String类中的intern()方法会将在堆空间中创建的String类对象中的字符串和串池中的比对,如果有相同的串就返回这个串的串池中的地址。不变模式在对于对象进行修改,添加操作是使相当麻烦的,他会产生很多的中间垃圾对象。创建和销毁的资源的开销是相当大的。String类在字符串连接时会先的效率很低,就是因为它所产生的对象的书性是不能够修改的,当连接字符串时也就是只能创建新的对象。对于很多的字符串连接,应当使用StringBuffer类,在使用这个类的对象来进行字符串连接时就不会有多余的中间对象生成,从而优化了效率。abstract(抽象)修饰符,可以修饰类和方法1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。 abstract修饰符在修饰类时必须放在类名前。abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。final和abstract,private和abstract,static和abstract,这些是不能放在一起的修饰符,因为abstract修饰的方法是必须在其子类中实现(覆盖),才能以多态方式调用,以上修饰符在修饰方法时期子类都覆盖不了这个方法,final是不可以覆盖,private是不能够继承到子类,所以也就不能覆盖,static是可以覆盖的,但是在调用时会调用编译时类型的方法,因为调用的是父类的方法,而父类的方法又是抽象的方法,又不能够调用,所以上的修饰符不能放在一起。抽象(abstract)方法代表了某种标准,定义标准,定义功能,在子类中去实现功能(子类继承了父类并需要给出从父类继承的抽象方法的实现)。方法一时间想不到怎么被实现,或有意要子类去实现而定义某种标准,这个方法可以被定义为抽象。(abstract)模板方法模式用abstract把制订标准和实现标准分开,制定的标准就是模板,实现就是按模板标准来实现,也就是继承模板,实现模板中相应功能的方法。模板中不允许修改的方法可以用fianl来修饰,这个方法不能使抽象方法,为保证安全,封装,把模板中不公开的部分用protected(保护)修饰。

文章TAG:java修饰符  java修饰符  
下一篇