1、JAVA中有四个访问修饰符:default/public/private/protected
2、他们都拥有着不同的访问权限,而在不同情况下又有着不同的访问权限,分为以下几种
{
1、同类中
{
首先我们写一段用来测试的代码
{
class boar
{
void defmethod()
{
System.out.println("default method");
}
protected void promethod()
{
System.out.println("protected method");
}
private void primethod()
{
System.out.println("private method");
}
public void pubmethod()
{
System.out.println("public method");
}
public static void main(String[] sl)
{
boar objboar=new boar();
objboar.defmethod();
objboar.promethod();
objboar.primethod();
objboar.pubmethod();
}
}
保存,编译,成功!
打印结果:
default method
protected method
private method
public method
通过以上测试,我们得出:在同一类中,这四个方法都是可以被访问的!
}
}
2、同包中的两个类
{
首先我们来写代码(写两个类,把他们放到同一包下):
{
类一:
package boar.medemo;
class boar
{
void defmethod()
{
System.out.println("default method");
}
protected void promethod()
{
System.out.println("protected method");
}
private void primethod()
{
System.out.println("private method");
}
public void pubmethod()
{
System.out.println("public method");
}
}
类二:
package boar.medemo;
class boardemo
{
public static void main(String[] sl)
{
boar objboar=new boar();
objboar.defmethod();
objboar.primethod();
objboar.promethod();
objboar.pubmethod();
}
}
}
保存代码,编译,在这时,编译的时候会提示如下错误提示:
boardemo.java:8: primethod() 可以在 boar.medemo.boar 中访问 private
objboar.primethod();
^
1 错误
意思是说:boar方法中的primethod()方法无法访问
因此我们得出:在同一包中,private的方法没有权限访问!
}
3、在不同包中子类继续父类
{
首先,我们来写代码(写两个类,放在不同的包中)
{
代码一:
package boar.medemo;
public class boar
{
void defmethod()
{
System.out.println("default method");
}
protected void promethod()
{
System.out.println("protected method");
}
private void primethod()
{
System.out.println("private method");
}
public void pubmethod()
{
System.out.println("public method");
}
}
代码二:
import boar.medemo.boar;
class boardemo extends boar
{
public void pro()
{
defmethod();
primethod();
promethod();
pubmethod();
}
}
}
保存,编译(javac -d . boar.java和javac -d . boardemo.java),这时系统提示:
boardemo.java:6: 找不到符号
符号: 方法 defmethod()
位置: 类 boardemo
defmethod();
^
boardemo.java:7: 找不到符号
符号: 方法 primethod()
位置: 类 boardemo
primethod();
^
2 错误
我们可以看到:在不同的包中,缺省的方法和私有的方法是不能被访问的。由于boardemo类是继承boar类的,因此protected的方法也是可以被访问的。而default方法上面我们已经得到验证,它只能在同一个包中的类进行访问,所以default方法也不能被访问
因此,我们得到:在不同的包中(继承过来),缺省方法(default)和私有方法(private)是不能被访问的
}
}
关系图:
private 类内 不同类 不能
default 类内+包内 在不同的包中import后 也不能
protect 类内+包内+继承内
public 公共
分享到:
相关推荐
用java代码来解析private、public、default、protected的权限问题
java的访问修饰符,private,protected,public,default的范围说明
private,public,protected,还有default四种之间的区别private,public,protected,还有default四种之间的区别
java八股文 "Java八股文"通常指的是一种简单的模板化回答,用于解答关于Java编程语言的基础... Java中的四种访问权限是public、protected、default和private,分别表示公开、受保护、默认(包内可见)和私有。 5. **J
下面小编就为大家带来一篇Java中的private、protected、public和default的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java修饰符:public、protected、private、final、static、abstract、default
一、访问控制修饰符 Java 支持 4 种不同的访问权限: private 私有的 protected 受保护的 public 公共的 default 默认 1、访问权限 总结成如下表格: 修饰符 当前类 同一包内 子孙类 其他包 public yes yes yes yes ...
答:四种访问修饰符分别是public、protected、default、private,作用如下: public:可以被任何类访问; protected:只能被同一个包中的类访问,或者是在继承关系中的子类访问; default:只能被同一个包中的类...
【试题分析】Java 有4 种访问类型,分别为public 、protected 、default 和private 。其中public 变量 可以被所有的外部类访问,而pretected 的可以被同一个包及该类的子类访问,default 即没有任何修饰符 的变量...
【IT十八掌徐培成】Java基础第07天-04.权限-public-private-protected-default.zip
属性和方法的访问控制符有四种:private, default, protected, public 可以用如下的表描述:(Yes表示可访问,空表示不可访问) 作用:变量, 方法上的修饰 1 package com.gxa.day8.am; 2 3 import ...
- 访问修饰符(public, private, protected, default) 3. **面向对象编程(OOP)概念**: - 类与对象的关系 - 封装(Encapsulation) - 继承(Inheritance) - 多态(Polymorphism) - 抽象类与接口...
字段的描述类型( 修饰符public/protected/default/private )是与调用者与操作对象字段的关系一致。 也就是说调用者能够直接操作对象字段 ,那么就可以反射进行原子操作。 对于父类的字段,子类是不能直接...
Java四种不同的变量作用域使用说明,包括public,private,protected,default,指出它们之间细微的区别
java面试题汇总 1)private:只有在当前类内部中能使用 2)default:在类内部可以被访问,也可以被同个包(同一目录下)下其他类访问 3)protected:可以在类内部被访问,也可以被同个包下其他类访问,也可以被其子类访问 4)pub...
在Java当中,有4种修饰符:default、public、private和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 下面列出了使用封装的一些好处: *通过隐藏对象的属性来保护对象内部的...
抽象类中的方法的修饰符可以是public、protected、private或者default;接口中的方法只能是public 抽象类可以定义构造函数;接口不能 抽象类主要用来抽象类别,接口主要用来抽象方法功能,关注事物的本质,用抽象类;...
B) 内部类的访问权限可以被定义为public、protected、private和default。但是普通类只可以定义public和default两种访问权限。 C) 内部类的访问权限可以被定义为public、protected、private和default。普通类也可以...
访问修饰符:public、protected、private 和 default(package-private): 可以访问 私人的 默认(包私有) 受保护 上市 同班同学 是 是 是 是 同一个包中另一个类的成员 N 是 是 是 不同包中超类的成员 N N 是 是 ...
在 Java 当中,有 4 种修饰符: default、public、private 和 protected 。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 通过隐藏对象的属性来保护对象内部的状态。 提高了代码...