美文网首页
Java 基础 25 包的概述和权限修饰符

Java 基础 25 包的概述和权限修饰符

作者: 小熊先生很不开心 | 来源:发表于2018-02-01 11:02 被阅读8次

1.1 包的概述和注意事项

1.1.1 包的概述

  • 其实就是文件夹
  • 作用:对类进行分类管理
  • 包的划分:
    • 举例:
      • 学生的增加,删除,修改,查询
      • 老师的增加,删除,修改,查询
      • 以及以后可能出现的其他的类的增加,删除,修改,查询
      • 基本的划分:按照模块和功能分。
      • 高级的划分:就业班做项目的时候你就能看到了。

1.1.2定义包的格式

  • package 包名;
    • 多级包用.分开即可
  • 注意事项:
    • package语句必须是程序的第一条可执行的代码
    • package语句在一个java文件中只能有一个

1.1.3案例代码

package com.itheima;
//package com.itheima2;
/*
 * 包:其实就是文件夹。
 * 作用:就是对类进行分类管理。
 * 
 * 举例:
 *      学生:增加,删除,修改,查询
 *      老师:增加,删除,修改,查询
 *      ...
 * 
 *      方案1:按照功能分
 *          com.itheima.add
 *              AddStudent
 *              AddTeacher
 *          com.itheima.delete
 *              DeleteStudent
 *              DeleteTeacher
 *          ...
 *      方案2:按照模块分
 *          com.itheima.student
 *              AddStudent
 *              DeleteStudent
 *              ...
 *          com.itheima.teacher
 *              AddTeacher
 *              DeleteTeacher
 * 包的定义格式:
 *      package 包名;
 *      如果是多级包用.隔开即可
 * 注意事项:
 *      A:package必须是程序的第一条可执行语句
 *      B:package语句在一个java文件中只能有一个
 */
public class PackageDemo {

}

1.2 导包的格式及使用

1.2.1 导包概述

  不同包下的类之间的访问,我们发现,每次使用不同包下的类的时候,都需要加包的全路径。比较麻烦。这个时候,java就提供了导包的功能。

1.2.2 导包格式

  • import 包名;

1.2.3 案例代码


package com.itheima;
/*
 * 导包:
 *      import 包名;
 */
import cn.itcast.Teacher;

public class Test {
    public static void main(String[] args) {
        Student s = new Student();
        s.show();
        
        /*
        //我要使用Teacher下的method()方法
        //类不在同一个包下,使用的时候,要加类的全路径名称
        cn.itcast.Teacher t = new cn.itcast.Teacher();
        t.method();
        t.method();
        
        cn.itcast.Teacher t2 = new cn.itcast.Teacher();
        t2.method();
        //这样做太麻烦了,java就提供了一个导包的功能
         * 
         */
        
        Teacher t = new Teacher();
        t.method();
        
    }
}

package com.itheima;
public class Student {
    public void show() {
        System.out.println("show");
    }
}

package cn.itcast;
public class Teacher {
    public void method() {
        System.out.println("method");
    }
}

1.3 四种权限修饰符的概述和访问特点

public protected default private
同一种类中
同一包子类,其他类
不同包子类
不同包其他类

归纳一下:

在日常开发过程中,编写的类、方法、成员变量的访问

  • 要想仅能在本类中访问使用private修饰
  • 要想本包中的类都可以访问除了private修饰符,其它都可以
  • 要想本包中的类与其他包中的子类可以访问使用protected修饰
  • 要想所有包中的所有类都可以访问使用public修饰。

1.3.1案例代码

package com.itheima;

public class Test {
    public static void main(String[] args) {
        Father f = new Father();
        //f.show();
        f.show2();
        f.show3();
        f.show4();
    }
}

package com.itheima;

public class Son extends Father {
    public static void main(String[] args) {
        Father f = new Father();
        //f.show();
        f.show2();
        f.show3();
        f.show4();
        
        Son s = new Son();
        s.show2();
        s.show3();
        s.show4();
    }
}

package com.itheima;
/*
 * 权限修饰符:
 *              本类      同一个包下(子类和无关类)   不同包下(子类)    不同包下(无关类)
 * private:     Y
 * 默认:          Y       Y
 * protected:   Y       Y                   Y
 * public:      Y       Y                   Y           Y
 */
public class Father {
    private void show() {
        System.out.println("show");
    }
    
    void show2() {
        System.out.println("show2");
    }
    
    protected void show3() {
        System.out.println("show3");
    }
    
    public void show4() {
        System.out.println("show4");
    }
    
    public static void main(String[] args) {
        Father f = new Father();
        f.show();
        f.show2();
        f.show3();
        f.show4();
    }
}

相关文章

网友评论

      本文标题:Java 基础 25 包的概述和权限修饰符

      本文链接:https://www.haomeiwen.com/subject/ctfdzxtx.html