• 访问权限控制


    1. package语句必须是文件中的第一行非注释程序代码。
    2. 假设存在类wjc.one.Vector.wjc和wjc.two.Vector.wjc,然后在Main类中同时引入包wjc.one.*和wjc.two.*,代码三中注释行会编译报错(编译器会无法识别是哪一个Vector),所以只能使用全路径的方式使用Vector类。
    //代码一
    package wjc.one;
    public class Vector {}
    //代码二
    package wjc.two;
    public class Vector {}
    //代码三
    package wjc.main;
    import wjc.one.*;
    import wjc.two.*;
    public class Main {
        public static void main(String[] args) {
                //Vector v=new Vector();
            wjc.one.Vector v=new wjc.one.Vector();
        }
    
    }
    1. 静态引入类Vector可以直接调用Vector中静态方法,如同方法在类Main内部一样。
    package wjc.main;
    //静态引入Vector
    import static wjc.one.Vector.*;
    
    public class Main {
        public static void main(String[] args) {
            //可以直接调用Vector中的print(String str)方法
            print("str");
        }
    }
    package wjc.one;
    public class Vector {
        public static void print(String str) {
            System.out.print(str);
        }
    }
    1. 类的访问控制修饰符一般只有public和默认包访问权限(内部类是可以是private和protected,121页此处有一问?),如果想控制类的使用范围,可以用构造方法的访问权限来控制。如:将public类的构造方法定义为private,则类只能在内部实例化。此时不影响static方法和域的访问,即使构造方法为private仍然可以通过类名.静态方法调用类中的静态方法。
    package classaccess.one;
    public class Main {
        public static void main(String[] args) {
            System.out.println(ClassAccess.i);
        }
    }
    class ClassAccess{
        private ClassAccess(){}
        public static int i=1;
    }
  • 相关阅读:
    MVC中modelstate的使用
    [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署
    C# Lambda表达式
    利用委托自定义事件
    委托(Delegate)简介
    [C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
    选项卡实现
    滚动时div的背景图片随之滚动
    使用RGBa和Filter实现不影响子元素的CSS透明背景
    通过条件注释<!--[if IE]><!-->判断浏览器
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256171.html
Copyright © 2020-2023  润新知