zoukankan      html  css  js  c++  java
  • JAVA学习笔记——访问权限控制

    如果存在两个同名的类,可以用不同的包名去区分,用package打包类。包名需要与目录结构相同,假如包名为com.pxz,那么该.java文件就应该位于com/pxz目录下。

    // com/pxz/Myclass.java
    package com.pxz;
    
    public class Myclass{
        //...
    }
    

    当我们需要使用该类时,就要使用import导入这个类。包名暗示了该类的路径,再加上环境变量CLASSPATH的路径,共同构成了该类的绝对路径。假如CLASSPATH中存在路径home/java/,导入的包名为com.pxz.Myclass,那么编译器就会在目录home/java/com/pxz/中寻找类Myclass。

    // com/Test.java 该文件随便放在哪里都可以执行,因为它是依靠CLASSPATH和包名去寻找类的
    import com.pxz.Myclass;
    
    public class Test{
        public static void main(String[] args){
            Myclass temp = new Myclass();
        }
    }
    

    默认包

    以下是处于同一个目录下的2个不同类,这两个类可以互相访问。如果没有显式地使用package说明打包到哪个包中,那么java会把同一个目录下的类打包到一个默认包中,又由于这些成员是包访问权限,所以它们就可以互相访问。

    // com/pxz/Myclass1.java
    class Myclass1{
        void f(){}
    }
    
    // com/pxz/Myclass2.java
    class Myclass2{
        Myclass1 temp = new Myclass1();
        temp.f();
    }
    

    访问权限

    java中一共有4种访问权限,访问权限从大到小:publicprotected包访问权限(没有关键字)private。这些权限描述了该成员应该如何被外界访问。

    public

    标注为public的成员变量和函数,在其他类中可以被访问。

    protected

    标注为protected的成员变量和函数,在其继承类中可被访问,但不能被其他包中的非继承类访问(由于protected权限高于包访问权限,所以protected可被同一个包中的类访问)。

    包访问权限(没有关键字)

    不标注权限的即为包访问权限,可供同个package中其他类访问。

    private

    标注为private的成员变量和函数,不能被其他类访问,只能被自己这个类访问。
    如果一个继承类extend一个基类,那么继承类是不能访问基类中的private成员的。要想做到能访问,可以1.放入同一个包;2.基类成员设置成protected。

    类的访问权限

    类的访问权限只有public和包访问权限两种,且每个.java文件只能有一个public类,作为对外的接口,其他的类只能是包访问权限。

  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/season-peng/p/6931314.html
Copyright © 2011-2022 走看看