java中4个访问修饰关键字的使用方法(pbulic、protected、default、private)

原创 2018年04月07日 10:35:32

java中类内的方法前有四类修饰符号:public、protected、default、private,用来限制方法的使用范围。网上四个修饰符的使用范围如下表所示:

修饰符号     当前类   同一包内   子孙类  其他包内  (Y 表示可以访问,N表示不可以访问)

public              Y            Y            Y              Y

protected       Y             Y            Y               N

default           Y              Y            N             N

private            Y             N            N             N

 这个表很直白的告诉了我们结果,但是却没有详细解释,我在学习这张表示产生了以下几个疑问:

1. 如果当前类中有函数的入口public static void main(String args[]), main函数是否能访问所在类中用protected、default、private修饰的方法?

答:main可以访问其所在类中被public、protected、default和private修饰的方法。

public class Basic {
	public Basic()
	{
		System.out.println("test construction method");
	}
    public void test_public()
    {
    	System.out.println("test_public");
    }
    private void test_private()
    {
    	System.out.println("test_private");
    }
    protected void test_protected()
    {
    	System.out.println("test_protected");
    }
    void test_default()
    {
    	System.out.println("test_default");
    }
   private static void test_
   public static void main(String[] args) {
      Basic b = new Basic();
      b.test_public();
      b.test_protected();
      b.test_default();
      b.test_private();
	}
}

2. 不同包内是什么含义?

package Algorithm;//Basic3属于Algorithm包

import Basic.Basic;//类Basic属于Basic包,即类Basic和类Basic属于不同的包

public class Basic3 
{
   public Basic3()
   {
       Basic b = new Basic();
       b.test_public();//只有Basic中的public方法可以被访问,其他3个修饰符限定的方法都不能被访问。
   }
   public static void main(String arg[])
   {
	   Basic3 b = new Basic3();
   }
}

3.子孙类中可以访问的含义是什么?

子类只能调用父类中使用public、protected修饰的方法,default和private修饰的方法不能调用。

package Algorithm;

import Basic.Basic;

public class Basic3 extends Basic
{
   public Basic3()
   {
       super.test_protected();
       test_public();//可以不使用关键字 super
   }
   public static void main(String arg[])
   {
	   Basic3 b = new Basic3();
   }
}

【Java关键字-访问范围修饰符】private、protected、public和default的区别

(1)public:可以被所有其他类所访问。 (2)private:只能被自己访问和修改。 (3)protected:自身,子类及同一个包中类可以访问。 (4)default(默认):同一包中的...
  • claram
  • claram
  • 2015-08-26 14:24:45
  • 9489

java中public,private,protected,(default)关键字

开发内部项目或者单独模块(非公共模块)时,对访问权限的修饰符的使用可能不是很注意,但在公共代码的书写或者是sdk一类的开发,访问修饰符就显得比较重要了。下面对public,protected,defa...
  • u014727260
  • u014727260
  • 2017-02-09 21:54:26
  • 1082

用例子理解Java权限修饰符(private,default,protected和public)

权限修饰用于限定对象起作用的范围,也就是,在什么地方我们能够访问到这个对象,在什么地方我们访问不到这个对象了,这里的对象是指属性、方法、类和接口。 一、权限修饰符作用于属性和方法。private...
  • l294265421
  • l294265421
  • 2015-03-12 11:23:44
  • 2777

Java修饰符private、protected、public和default的区别

Java修饰符private、protected、public和default的区别
  • pl1612127
  • pl1612127
  • 2016-01-07 18:26:10
  • 3407

Java中的修饰符说明(public,private,protected,default,final,abstract,static)

public(公共访问权限):这是一个宽松的访问控制级别,如果一个成员(包括成员变量、方法和构造器等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类(注:在该类外部,...
  • yuyibing888
  • yuyibing888
  • 2016-01-20 17:25:38
  • 1861

Java中 pubic 、 protected 、 default 、 private 的作用范围及区别

下表为Java访问控制符的含义和使用情况           类内部 本包 子类 外部包 public √ ...
  • u012843873
  • u012843873
  • 2016-05-03 09:34:23
  • 2362

Java 中4种访问修饰符 public/protected/default(friendly)/private

(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 (2)对于protect...
  • mingjie1212
  • mingjie1212
  • 2016-01-18 21:10:37
  • 1536

java中public,private,protected等关键字的使用场景。

开发内部项目或者单独模块(非公共模块)时,对访问权限的修饰符的使用可能不是很注意,但在公共代码的书写或者是sdk一类的开发,访问修饰符就显得比较重要了。下面对public,protected,defa...
  • u012418131
  • u012418131
  • 2016-10-15 13:29:54
  • 2147

private, public, protected 访问标号的访问范围之JAVA篇

Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,可称它为packeged权限,很多人也称它为fri...
  • ftx2540993425
  • ftx2540993425
  • 2015-12-02 21:37:30
  • 1030

一张图说懂java中 private default protected public 的区别

private:修饰完全隐藏类的成员,这样,就不能从类的外边直接访问他们,我们提供set和get方法,保证类中数据域的安全。default:指默认修饰符,什么都不加,实际上它限制的范围就是一个包内可以...
  • yangbodong22011
  • yangbodong22011
  • 2015-11-08 21:03:08
  • 5095
收藏助手
不良信息举报
您举报文章:java中4个访问修饰关键字的使用方法(pbulic、protected、default、private)
举报原因:
原因补充:

(最多只允许输入30个字)