`
啸笑天
  • 浏览: 3436404 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Java中的访问控制public,private,protected,package

    博客分类:
  • java
 
阅读更多

1. Java中的访问控制
表1-1

 

可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  不同包子类中 
 public  yes  yes  yes  yes  yes
 protected   yes  yes  no  yes  yes
 package   yes  yes  no  yes  no
 private  yes  no  no  no  no

 

(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
(2) 在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。
(3) 在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。

2. 包
包名一般为小写,而类名的第一个字母一般为大写,这样在引用时,可以明显的分辨出包名和类名。如果在类的定义之前没有使用package定义包名,那么该类就属于缺省的包。

2.1 Hello Package
首先通过一个简单的package的定义来学习package的使用:

package testPackage;

public class Test
{
 public static void main(String args[])
 {
  mNode node = new mNode();
  node.print("hello");
 }
}
说明:
(1) 使用package关键字指明类所在的包;
(2) package语句必须在文件的最前面;
(3) 编译时可使用javac –d . Test.java自动产生包需要目录;
(4) 可以使用java testPackage.Test来执行编译后的代码;
2.2 包的几个作用:
(1) 可以更好的组织类,包与文件夹类似,文件夹可以将不同的文件放在同一个文件夹中,而包也可以将不同的类文件放在同一包中;
(2) 减少类名的冲突问题,这也与文件夹类似,同一文件夹中的文件不能重名,不同文件中的文件可以重名,同一包中的类名不能重复,不同包中的类名可以重复;
(3) 对包中的类起了一定的保护作用,详见java的访问控制;
2.3 import的使用
(1) 直接引用指定的类,如import java.util.Vector;
(2) 引用一个包中的多个类,如import java.awt.*。更确切的说,它并不是引用java.awt中的所有类,而只引用定义为public的类,并且只引用被代码引用的类,所以这种引用方法并不会降低程序的性能;
(3) *号代替类名,在不能代替包名,如import java.awt.*,只引用java.awt下的类,而不引用java.awt下的包;
(4) import java.awt.F*,这种使用方法是错误的;
(5) import语句在所有类定义之前,在package定义之后;
(6) import只告诉编译器及解释器哪里可以找到类、变量、方法的定义,而并没有将这些定义引入代码中;
2.4 包中类的使用
有以下几种机制可以使用包中的类:
(1) 如果要使用的类是属于java.lang包的,那么可以直接使用类名来引用指定的类,而不需要加上包名,因为包java.lang不用显示使用import,它是缺省引入的;
(2) 如果要使用的类在其它包(java.lang除外)中,那么可以通过包名加上类名来引用该类,如java.awt.Font
(3) 对于经常要使用的类(该类在其它包中),那么最好使用import引用指定的包,如java.awt.*
(4) 如果import引入的不同的包中包含有相同的类名,那么这些类的使用必须加上包名
(5) 接口也可以属于某个包,也可以使用import引入其它包中的类和接口

 

分享到:
评论

相关推荐

    说出作用域public, private, protected,以及不写得区别

    这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写...作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × ×

    Java的访问控制符

    属性和方法的访问控制符有四种:private, default, protected, public  可以用如下的表描述:(Yes表示可访问,空表示不可访问)  作用:变量, 方法上的修饰 1 package com.gxa.day8.am; 2 3 import ...

    Java关键字及其作用

    private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。 所有类...

    java基础课件ppt

    访问控制:public, private, protected 循环及循环控制:if, switch, break 例外处理:throw, try, finally 保留词(无含义但不能使用):goto, const 关键词注意事项 在Java中,true、faslse和null都是小写的。区别...

    java笔试题,java程序员常见的笔试

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    java面试宝典.docx

    1.作用域public,private,protected,以及不写时的区别。 (1)、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 (2)、private:private表示私有,私有的意思就是除了class自己...

    java课程资源第五章

    隐藏具体实现 隐藏实现- 访问权限控制 包( package ):库单元 关键词:public、private、protected 接口和实现 类的访问权限

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    其它对象对它的访问,访问权限所以有以下几种:private, protected, public, friendly。 1.8.2 对象 把类实例化,我们可以生成多个对象,这些对象通过消息传递来进行交互(消息 传递即激活指定的某个对象的方法以改变...

    java 混淆工具,不可逆 jocky 也许是最好的了

    @preserve package 保留所有public, protected, package private成员 @preserve private 保留所有成员 @preserve all 相当于@preserve private 事实上,即便不加@preserve指令,Jocky对Java语言特有的一些...

    ganymed-ssh2-build210.jar java远程访问linux服务器操作、上传下载文件

    java远程访问linux服务器操作 远程执行shll脚本或者命令、上传下载文件 package com.szkingdom.kfit.bank.ccbDirectShortcut.helper; import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.SCPClient; import ...

    java面试题大全-基础方面

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    OC访问变量权限

    @public ,@package,@private,@protected访问权限描述

    java基础知识

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    最新最全Java面试题汇总

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    java面试宝典

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他 package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × ...

    java 语言中常见易错知识点

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    JAVA面试题149例

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...

    java笔试题目Java基础方面

    0、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

Global site tag (gtag.js) - Google Analytics