`
liuhd2010
  • 浏览: 147256 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

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

 
阅读更多
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引入其它包中的类和接口


分享到:
评论

相关推荐

    用java代码来解析private、public、default、protected的权限问题

    本文将深入探讨`private`、`public`、`default`(默认)和`protected`这四种访问权限,并通过代码示例来解析它们在实际编程中的应用。 1. `private`权限: `private`是最低级别的访问权限,它限制了成员只能在同一...

    java中protected的权限

    总结来说,`protected`关键字在Java中提供了适中的访问控制,既保持了类的封装性,又确保了继承的有效性。理解其作用和使用场景对于编写健壮、可维护的代码至关重要。在实际开发中,合理运用`protected`可以帮助我们...

    Java类protected继承链访问控制机制研究.pdf

    类成员的访问控制也增加了包这一层次,形成了`private`、`package-private`(包内可见)、`protected`和`public`四层封装结构。 `protected`访问控制在Java中扮演着特殊的角色。它允许子类在不同包中访问父类的受...

    Java 中的访问权限控制

    总之,Java中的访问权限控制是设计和实现类之间关系的重要机制,它有助于保持代码的整洁和安全,同时也为实现面向对象的封装原则提供了支持。理解和熟练运用这些规则,对于编写高质量的Java程序至关重要。

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

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

    基于Java的源码-访问权限控制源代码.zip

    这个"基于Java的源码-访问权限控制源代码.zip"文件很可能包含了一些示例,用于演示Java中的访问修饰符如何工作以及如何实现有效的访问控制。让我们深入探讨一下Java中的访问权限控制。 1. 访问修饰符: - **public...

    as3.0访问控制符

    ### AS3.0中的访问控制符:public、private、protected和internal 在ActionScript 3.0(简称AS3.0)中,访问控制符是用来限制类、成员变量、方法等元素可见性的关键字。合理使用这些关键字可以帮助开发者更好地管理...

    Java VS C# 访问修饰符

    2. **protected**:与Java中的`protected`类似,被标记为`protected`的成员可以在同一个类及其所有派生类中被访问。 3. **internal**:被标记为`internal`的成员只能在同一程序集(Assembly)中被访问。 4. **...

    Java的访问控制符

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

    Java入门笔记4_访问控制和包

    访问控制在Java中主要通过四种访问修饰符实现:`public`、`protected`、`default`(通常称为包访问权限)和`private`。每种修饰符都有其特定的作用范围: 1. **`public`**:表示公开,可以在任何地方被访问,包括同...

    Java包与文件操作

    总的来说,这个项目旨在演示如何在Java中使用包管理和访问控制符,以及可能涉及的文件操作。通过Base类、Derived类和testData类的交互,我们可以学习到如何有效地组织代码,控制类的可见性,并理解包和访问权限在...

    关于Java访问权限表的一个总结

    在Java编程语言中,访问权限控制是至关重要的,它决定了类、接口、字段以及方法的可见性和可访问性。理解Java的访问权限表对于编写健壮、安全且易于维护的代码至关重要。以下是对这一主题的详细说明: 1. **公共...

    Java编程思想第06章访问权限控制.ppt

    在Java中,包(Package)扮演了库单元的角色,用来组织和管理类,避免命名冲突。例如,如果两个库都包含一个名为Vector的类,不使用包会导致编译错误。包类似于操作系统的目录结构,将类分门别类地存储,通过包名...

    实验7 成员访问控制与异常.doc

    - Java 中提供了四种访问修饰符来控制成员的可见性:`public`、`protected`、`default`(即没有修饰符,默认访问级别)、`private`。 - `public`:公共成员可以在任何地方被访问。 - `protected`:受保护成员可以...

    \java中包及访问权限的使用笔记

    在Java中,有四种访问级别:`public`、`protected`、`private` 以及默认(无修饰符)。在开发中,`public`、`protected` 和 `private` 最常被使用。 - `public`:公共访问权限,任何地方都可以访问。 - `protected`...

    Java基础入门自学课件 第11章 包-package(共17页).ppt

    Java中的包可以控制访问权限,例如:public、private、protected等关键字可以控制类和接口的访问权限。 六、包的继承 Java中的包可以继承,例如:一个包可以继承另一个包的所有类和接口。 Java基础入门自学课件第...

    JAVA学习笔记.pdf

    访问控制是JAVA中的重要概念,访问控制符可以是public、protected、private等。public表示可以从任意位置访问,protected表示只能被直接子类和同包中的类访问,private表示只能被类内部访问。 数组、向量Vector与...

    java的访问修饰符的范围说明

    Java语言中为了控制方法和成员变量的可见性和访问级别,定义了几种访问修饰符:private, protected, public, 和默认(未修饰)访问权限。这些修饰符决定了不同类之间的访问能力,以保证类的封装性和安全性。接下来,...

    Java四种变量特性

    在Java编程语言中,变量的访问控制是通过四种访问修饰符来实现的,它们分别是`public`、`private`、`protected`以及默认的(无修饰符,也称为`default`)。这些修饰符决定了变量在类的不同部分以及不同类之间的可见...

Global site tag (gtag.js) - Google Analytics