private protected public default
来源:互联网 发布:javascript实战项目 编辑:程序博客网 时间:2024/05/17 09:13
JAVA类中的属性 或者方法有四个修饰符 public,private,protected,default
一、public
public修饰的属性和函数表示在任何类路径中都能访问,无论该类是不是在同一个包中
例如:
package test;
public class C { public int a=5;
}
package test1;
import httpclienttest.C;
public class D {public static void main(String[] args) { C c = new C();System.out.println(c.a);//虽然不在同一个包可以在test1包中访问到test包C中的public变量a,输出5}
二、private
private修饰的变量和函数只能在本类中使用
package test;
public class C {
private int a=5;
}
package test1;
import httpclienttest.C;
public class D {
public static void main(String[] args) {
C c = new C();
System.out.println(c.a);编译错误无法访问 //C,D在不同包中的类,即使 在同一个包中不同类访问,都会爆编译错误
}
三、protected
protected修饰的属性和函数只能被在本包中的其他类,或者本类中被访问或者在子类中可以被访问,
(在子类中被访问并不是说可以在子类中直接new一个父类对象X【当然如果子类和父类在同一个包中是可以直接访问父对象的属性和方法的】,
,【如果子类父类不在同一个包中】然后通过X.属性或者X.方法去访问父类的属性方法,这样会编译错误)。
package test;
public class C {
public int a=5;
protected int s=1;
}
package httpclienttest;
import test.C;
public class A extends C {
public static void main(String[] args) {
C c = new C();
System.out.println(c.s);//编译错误A和C不在同一包中
}
}
如何正确访问?
public class A extends C {
public static void main(String[] args) {
A a = new A();
System.out.println(a.s);//编译通过,可以正常访问
//System.out.println(c.s);//编译错误
}
}
所以说protected所说的在子类中可以的访问含义并不是直接获取父类对象访问(而是针对继承而言,protected修饰的方法和属性可以被继承,重载,重写),
而是通过生成子类对象去访问所继承的属性和方法
四、default(friendly)
默认不加修饰符表示friendly,该修饰符的范围表示在本类或者本包中的类可以访问
package httpclienttest;
public class B {
int s=5;//无修饰符表示friendly
}
package httpclienttest;
public class A {
public static void main(String[] args) {
B b = new B();
System.out.println(b.s);//A和B在同一包中编译通过输出5
}
}
- private protected public default
- public,private,protected,default
- public、private、protected、default区别
- 复习public default protected private
- public protected default private 区别
- public、private、protected、default区别?
- public protected default private 权限
- public,protected,default,private区别
- public private protected default 区别
- public、private、protected、default区别
- private、protected、default、public权限
- public、private、default、protected总结
- public private protected default区别
- Java中的public、 protected、 default、 private
- java基础--->管理权限public protected private default
- J2SE_访问权限(public, protected, default, private)
- Java作用域public、protected、default、private
- java基础--->管理权限public protected private default
- ecjtu-summer training #5 D
- UVA 10382区间覆盖
- 字符串属性函数
- FZU 2253 Salty Fish (最大区间和)(福州大学第十四届程序设计竞赛)
- Spark快速大数据分析之第三章RDD编程
- private protected public default
- Lecture4: Supervised Machine Learning
- Chrome开发者工具详解(3)-Timeline面板
- 换个格式输出整数
- Chrome开发者工具详解(4)-Profiles面板
- 能否把指针变量本身传递给一个函数?
- python学习日志--day11
- Chrome开发者工具详解(5)-Application、Security、Audits面板
- animation动画