搜索
写经验 领红包
 > 财经

关于java中四种访问修饰符的理解正确的是(java中的四种访问修饰符分别是)

导语:关于Java中四种访问修饰符的理解

今天千里象为大家整理了:关于Java中四种访问修饰符的理解

大家一起来看一下吧

四种访问修饰符的介绍

public

public公共的修饰符,被public修饰的类、变量和方法在所在类,相同的包下,其他的包中都可以访问。

protected

protected被保护的修饰符,被protected修饰的类、变量和方法在所在类,相同的包下,和子类中都可以被访问。

default

default默认的修饰符,被default修饰的类、变量和方法在所在类,相同的包下可以访问。

private

private私有的修饰符,被private修饰的类、变量方法只能在所在类中访问。

四种访问修饰符的访问权限表:

1.同一个类下访问

public String name = &34;; //公共修饰符修饰的变量

protected String sex = &34;; //被保护的修饰符修饰的变量

String birthday=&34;; //默认修饰符修饰的变量

private int age = 18; //私有修饰符修饰的变量

//判断被任何修饰符修饰的变量在同一个类中是否可以访问,在别的类下调用show方法查看是否可以正常调用产生结果即可

public void show() {

System.out.print(name+&34;);

System.out.print(sex+&34;);

System.out.print(birthday+&34;);

System.out.print(age+&34;);

}

2.同一个包下访问

public class Two {

public static void main(String[] args) {

One o = new One();

//---------------------------------在同一个包下访问--------------------------

System.out.println(&34;);

System.out.print(o.name+&34;); //public修饰的变量可以访问

System.out.print(o.sex+&34;); //protected修饰的变量可以访问

System.out.println(o.birthday+&34;); //default修饰的变量可以访问

// System.out.println(o.age); private修饰的变量不能访问

//------------------------调用show()方法查看在本类下所有被不同修饰符修饰的变量是否可以正常访问

System.out.println(&34;);

o.show();

}

}

在同一个包下访问除了被private修饰的age,其他修饰符修饰的变量均可以正常访问,并且在同一个类下所有修饰符修饰的变量都可以正常访问到。

因此:在同一个包下private修饰的类、变量、方法能在本类中访问,不能在其他类中访问。

在同一个包下public、protected、default修饰的类、变量、方法能在本类和其他类中访问。

3.不同的包下的子类访问

package com.miao.test2;

import com.miao.test1.One;

public class Three extends One{

public static void main(String[] args) {

Three three= new Three();

//---------------------------------在不同的包下的子类访问--------------------------

System.out.println(&34;);

System.out.print(three.name+&34;); //public修饰的变量可以访问

System.out.print(three.sex+&34;); //protected修饰的变量可以访问

//System.out.println(three.birthday+&34;); 默认修饰符修饰的变量不能访问

//System.out.println(three.age); private修饰的变量不能访问

}

}

在不同的包下的子类访问只有public和protected修饰的类、变量、方法能够访问。

因此:在同一个包下private修饰的类、变量、方法只能在本类中访问,不能在同一个包下的其他类中和不同包下的子类中访问。

default修饰的类、变量、方法能在同一个包下的类中访问,不能不同的包的子类下访问。

public、protected修饰的类、变量、方法能在同一个包下的类、不同包下的子类中访问。

4.不同的包下访问

package com.miao.test2;

import com.miao.test1.One;

public class Four {

public static void main(String[] args) {

One o = new One();

//---------------------------------在不同的包下访问--------------------------

System.out.println(&34;);

System.out.print(o.name+&34;); //public修饰的变量可以访问

// System.out.print(o.sex+&34;); protected修饰的变量不能访问

//System.out.println(o.birthday+&34;); 默认修饰符修饰的变量不能访问

//System.out.println(o.age); private修饰的变量不能访问

}

}

最终结论:

private修饰的类、变量、方法只能在本类中访问。

default(默认修饰符)修饰的类、变量、方法能在同一个包下的类中访问。

protected修饰的类、变量、方法能在同一个包下的类和不同的包下的子类中访问,但不能在不同的包下访问。

public修饰的类、变量、方法能以上的所有情况下访问。

本文内容由快快网络小媛整理编辑!