public,static,private,protected的用法

本文详细介绍了Java中的访问修饰符public, static, private和protected的用法和意义。public修饰的成员在任何地方都可访问;static表示静态,用于共享数据;private成员仅限本类访问;protected则在本类和子类中可见。通过实例代码解释了各个修饰符的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  很多小伙伴不知道public,static,private,protected的用法,尤其是static和protected,虽然知道怎么用,但不知道是什么实际意义。小编这就为大家讲解!

  在讲解之前,先为大家画一个总结的表格(Y是可见,N是不可见)

java的修饰符权限
访问包位置/类修饰符publicprivateprotected
本类YYY
同胞其他类或子类YNY
其他包的类或子类YNN

  public的用法

  public这个关键字想必大家肯定不陌生,新手都知道在定义类时要用到它。

public class Test {
    public static void main(String[] args) {
        
    }
}

  public定义的对象是全部公共的。不信我们再创建一个Test2类(在同包下,不然就要Import),在Test类(写代码的位置不在main函数里)里输入以下代码:

public class Test {
    public static int PI = 3.1415926535;
    //省略一些代码
}

  在Test2.java里输入下面的代码。

public class Test2 {
    /**
    *主方法
    */
    public static void main(String[] args) {
        //用这个变量
        System.out.println("圆周率是:"+Test.PI);
    }
}

  结果是它输出了“圆周率是:3.1415926535”,很明显它是成功的,这就是public。

  static的用法*

  static虽然大家用过,上面讲public定义变量时也用过其,但很多小伙伴还不知道它是什么意思。它的意思是“静态的”,下面我为大家讲解。

  有时在处理问题会遇到需要在两个class在同一个内存区域共享一个数据。比方,在小明类需要用到性别,而在小刚类里也需要用到。假如要在两个类同时创建sex变量,就显得嫌麻烦。对这个问题,可以把sex搞成静态的变量。

  注意:静态成员属于类所有,区别于个别对象,可在任何类中用"我的类.这个变量"来调用。

  例子:创一个StaticTest类,在里面定义一个变量、一个函数(用static),在main方法调用。

  

public class StaticTest {
    //建立了一个用static关键字创建的变量
    static String name = "JavaIdot"
    public static void main(String[] args) {
        /*
        *这段代码中的this提示:
        *this关键字是一个重点,它指的是本类。
        *但在其他类还是要写类的名字(StaticTest.name)
        *它具有很多用处,比方说
        *假如在构造方法(查API学习)中出现了本类全局变量的名字,譬如name,
        *你写name = name;,程序会报错,
        *所以,你要是写了this.name = name;,那就会运行正常。
        */
        this.function();
        System.out.println("我的csdn名是"+this.name+"。");
    }

    public static void function()
    {
        System.out.println("这是static的方法!");
    }
}

  运行结果:

这是static的方法!
我的csdn名是JavaIdot。

private的用法

  private,意思是“私有的”。顾名思义,它只能在本类可见和使用。比方,你创建一个test类,输入以下代码:

  

public class test
{
    private int 圆周率 = 3.14;
    public static void main(String[] args)
    {
        System.out.println("圆周率(小数点后两位):" + 圆周率);
    }
}

  结果是“圆周率(小数点后两位):3.14”。是在本类可以使用,但在其他类呢?不妨再创一个类,test2.java。

  

public class test2 {
    public static void main(String[] args) {
        System.out.println(test2.圆周率);
    }
}

  结果是系统报错。果然,其不行。

  但是,我们在java编写高级程序中,在类里会有一种类似"getXXX()"的函数,它是public的。其作用就是在其他类中获取XXX。咱们清空test、test2的代码,输入这些代码:

/**
*test的代码
*/
public class test {
    private int num = 123456;
    
    /**
    *这是我们这个所说的getXXX()
    */
    public int getNum()
    {
        return num;
    }

}

在test2输入main方法,在方法里输入“System.out.println(test.getNum())”,结果是输出“123456”。这就是private和getXXX。

protected的用法

  protected似乎并不常用,小编完全都没有使用过。根据描述,它只针对本类和子类,它的意思是“受保护的”。但我觉得,JDK开发人员估计经常使用它(因为一些swing组件或许会用protected)。

  以上就是public private protected static 的用法啦,喜欢的记得关注,点赞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值