java笔记 private, protected,publlic, 默认

在这里插入图片描述

一.Private

private是私有的,其实是在自己的类里面调用

class A
{
    private int x = 1;

    public void show()
    {
        System.out.println(this.x);
    }
}

class text
{
    public static void main(String[] args)
    {
        A a = new A();
        a.show();
    }
}

这是完全合法的

二.Protected

被 protected 修饰的成员对于本包和其子类可访问

什么是访问,就是通过自己的子类的对象或者同一个包中的类对象来调用这个函数

class A
{
    protected void show()
    {
        System.out.println("被调用了");
    }
}

class B extends A
{}

class text
{
    public static void main(String[] args)
    {
        B b = new B();
        b.show();
    }
}

在这里插入图片描述


如果在同一个包中调用(继承关系)

类A

package bao;

public class A
{
    protected void show()
    {
        System.out.println("被调用了");
    }
}

类B继承A
在这个类中我们用B自身的类调用show函数

package bao;

public class B extends A
{
    public void Show()
    {
        this.show();
    }
}

主类

package bao;

public class text {

    public static void main(String[] args)
    {

        B b = new B();				//实例化Son1类
        b.show();
    }

}

在这里插入图片描述


同一个包内(非继承关系):

类A

package bao;

public class A
{
    protected int X = 520;
}

类text

package bao;

public class text
{
    public static void main(String args[])
    {
        A a = new A();
        System.out.println(a.X);
    }
}

这里在text类中利用a调用x是合法的


如果是在不同的包中调用protected成员:

bao中类A

package bao;

public class A
{
    protected int X = 520;
}

bao1中类text

package bao1;
import bao.*;

public class text
{
    public static void main(String args[])
    {
        A a = new A();
        System.out.println(a.X);
    }
}

会报错
在这里插入图片描述

这里的访问其实是在别的类中能调用被修饰的类的成员

三.Public

这个关键字就是不管这个类是不是继承关系,不管是不是一个包内的都可以进行调用

四.默认

如果是什么也不加,就是只能是包内访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值