zoukankan      html  css  js  c++  java
  • 类及成员的属性——类的可访问性

    12.1 类的可访问性

    1、在很多情况下,我们需要一定的封装性实现信息隐藏,

    2、类的可访问性是指当前类可被其他类所访问的程度,

    3、通过不同的可访问性修饰符可以体现程序的封装性。

    类的可访问性修饰符:

    • public——修饰的类可被其他任意类所访问,即可展示给所有的类使用。
    • 默认访问控制属性——只能被当前包中的类所访问,即只能展示给当前包中的类使用。

     12.1.1 public——具有最好的公开性

      关键字public修饰的类具有最大的可被访问性。都可以被任何其他类所访问,无论其他类在当前包中,还是在其他地方

      在使用public修饰类时,必须保证一个包中,也就是在一个.java程序中只能有一个public类。这个类作为整个.java文件的接口,实现文件内类的封装。

    //MyClass.java
    package mypackage;    //创建包文件
    public class MyClass
    {
        public void sumTwo(int i, int j)
        {
            System.out.println(i+j);
        }
    }

    编译通过,生成包mypackage,包中保存MyClass.class文件

    接下来创建新的应用程序,不在当前包中。

    //Example1201.java
    import mypackage.MyClass;    //或使用import mypackage.*;
    public class Example1201
    {
        public static void main(String[] args)
        {
            MyClass mc = new MyClass();
            mc.sumTwo(12,34);
        }
    }

    程序调用前面包中的文件。

    • public修饰的类MyClass具有最好的可被访问性,无论Example1201类在任何地方,都可以使用MyClass类。
    • 在调用该类时,需要首先导入该类,即用import语句定位并导入该类

    12.1.2 默认访问——只能被同一个包中的类访问

      默认访问属性(无访问控制符)说明该类只能被同一个包中的类所访问,包外的类无法生成该类的对象。这样,就使类具有了封装性能。

      

    //MyClass.java
    package mypackage;    //创建包文件
    class MyClass             //默认访问属性,无"public"
    {
        public void sumTwo(int i, int j)
        {
            System.out.println(i+j);
        }
    }
    //Example1201.java
    import mypackage.MyClass;    //或使用import mypackage.*;
    public class Example1201
    {
        public static void main(String[] args)
        {
            MyClass mc = new MyClass();
            mc.sumTwo(12,34);
        }
    }

    包外的Example1201类不能调用到MyClass类,因为MyClass不是public。

    解决方法2种:1、MyClass类加public修饰符,变成public的;

            2、将Example1201类和MyClass类写进同一个包中。

  • 相关阅读:
    SharePoint添加列表
    js求和
    经典.net面试题目
    sharepoint常见操作
    添加webpart时出现“此网页上的某个Web部件或Web表单控件无法显示或导入。该类型未注册为安全类型 。”
    关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
    RegisterStartupScript,RegisterClientScriptBlock,Response.Write 简单说明区别
    jquery中的ready函数与window.onload谁先执行
    TreeView的TreeNode点击展示展开和收缩的效果
    如何让 TreeView 的节点不要生成 超级 链接
  • 原文地址:https://www.cnblogs.com/jolene-wu/p/8298636.html
Copyright © 2011-2022 走看看