java提供四种访问权限:

public > protected > 包访问权限(无关键词) > private

包:库单元

对于包访问权限,一个包内的都可以访问。

在eclipse中创建类时如果不创建包,类将会被创建在默认包(default package)中,我一直习惯这样,然而这是一个很不好的做法(= =!)不相关的类应该置于不同的包。因为如果一个包中有两个名字相同的类会产生冲突的。

把不同的类放入不同的包,如果想使用其他包的类,将需要在名字前加上包名。例如ArrayList类在java.util目录下,使用时将写作java.util.ArrayList。这样写名字冗长,所以java提供了import关键字来导入包。

import java.util.ArrayList; 然后就可以在文件中直接使用ArrayList了。如果import java.util.*; 将导入java.util下的所有类。

有引入包就有打包和导出包。

打包是通过关键字package实现的,它必须是文件除注释以外的第一句代码。格式为package packagename;包名要独一无二,所以一般为域名的反顺序。

java解释器运行需要找出环境变量CLASSPATH,我们可以写自己的类库然后引用。然而我花了两个小时也没搞好,暂时放弃这个了,,,,直接用eclipse可以打包成jar(在工程处右键选择Export),然后在导入(右建Properties-->java build path-->Add external JARs)就可引用自己的类库了。

通过import xxx.myclass(xxx是路径)可以导入类。对于类中的静态方法,可以通过import static xxx.myclass.staticMethod;可以导入静态方法,在文件中可以直接使用staticMethod()而不需要类名。而import static xxx.myclass.*;可以导入所有静态方法。注意:只能用于静态方法。

访问权限

对于类中成员:

public访问权限,每个人都是可用的。

protected继承时,子类可以访问,同时具有包访问权限。

包访问权限,一个包的可以访问。

private只有类内成员可以访问。

对于一个类:

我们都知道一个文件只能有一个public类(也可以一个都没有),这个类名要与文件名相同,于是其他类都是包访问权限。类没有private和protected(内部类处有特例)。一个包访问权限的类对于其他包是不可见的。

小结

提供访问权限有两个作用:

1.对于类的用户来说,可以使他们不会触碰到不该触碰的东西,同时简化对类的理解。

2.使接口和实现隔离和加以保护,更改类的内部设计而不会对类的使用者带来重大影响。

java 访问权限控制的更多相关文章

  1. 论Java访问权限控制的重要性

    人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说“钱乃身外之物,生不带来死不带去”,但我们又都知道“有钱能使鬼推磨” ...

  2. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  3. JAVA访问权限控制[zhuan]

    Java的访问权限控制修饰符,从最大权限到最小权限依次是:public.protected.包访问权限(默认,没有关键字)和private.对于类的访问权限只能是:public和包访问权限(但内部类可 ...

  4. Java访问权限控制

    访问权限控制           java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的.访问权限控制的等级,从最大权限到最小权限依次是:public.prote ...

  5. Java 访问权限控制:你真的了解 protected 关键字吗?

    摘要: 对于类的成员而言,其能否被其他类所访问,取决于该成员的修饰词:而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词.在Java中,类成员访问权限修饰词有四类:private,无(包访问 ...

  6. Java 访问权限控制 小结

    总所周知,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的. 访问权限控制的等级,从最大权限到最小权限依次为:public.protected.包访问权限( ...

  7. Java 访问权限控制- protected 关键字

    protected 关键字的真正内涵 文章来源:http://blog.csdn.net/justloveyou_/article/details/61672133 很多介绍Java语言的书籍(包括& ...

  8. (转)浅析Java中的访问权限控制

    原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...

  9. Java成员的访问权限控制

    Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以 ...

随机推荐

  1. Grails连接外部数据库注意事项Could not determine Hibernate dialect for database name [Oracle]!

    初次使用Grails时,使用其内置数据库,一直不会出错,但迁移到外部数据库时会出错Could not determine Hibernate dialect for database name [Or ...

  2. VC项目配置基础以及快捷键(收藏)

    来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...

  3. android apk 反编译

    Apk文件结构 apk文件实际是一个zip压缩包,可以通过解压缩工具解开.以下是我们用zip解开helloworld.apk文件后看到的内容.可以看到其结构跟新建立的工程结构有些类似. java代码: ...

  4. Centos 6.4上面用Shell脚本一键安装vsftpd

    Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...

  5. 在C#中关于excel的导入和导出操作

    一.先来看看最常见的导入操作吧! private void Import() { //打开excel选择框 OpenFileDialog frm = new OpenFileDialog(); frm ...

  6. matlab怎么同时显示imshow 两幅图片

    matlab怎么同时显示imshow 两幅图片 matlab怎么同时显示imshow 两幅图片 方法一:subplot()函数 subplot(2,1,1); subplot(2,1,2); 分上下或 ...

  7. ***PHP 去除换行符

    PHP在不同的系统中,换行是不同的 Linux:\n Windows:\r\n mac:\r 所以去除回车换行的方法: 1.使用php定义好的变量(比较好的方法,推荐) $str= str_repla ...

  8. iOS开发UI篇—Quartz2D简单使用(一)

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: 1 // 2 // YYlineview.m 3 // 03-画直线 4 // 5 // Created by apple on ...

  9. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2 配置文件为XML

    一. 1.配置文件为xml时则切面类不用写aop的anotation package com.springinaction.springidol; public class Magician impl ...

  10. C#中的ODBC、OLEDB连接

      using System;using System.Collections.Generic;using System.Text;using System.Data.Odbc;using Syste ...