`

protected访问级别详解

阅读更多
首先阅读:http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
然后关键要注意的:
针对类都是public的,属性和方法为protected类型,访问权限示例:
protected访问权限示例:
package test;
public class Test {
protected int i=4;
protected void function(){
System.out.println("from test");
}
}

两种情况
a.在不同的包里,可以在继承自Test类的方法里访问Test类的protected变量和方法。而其他的类实例则不能访问Test类里的
protected变量和方法,包括其自身的实例。
考虑类之间的关系要考虑声明的类与想要访问的类之间的关系,而不是声明的实例所属类与要访问的类之间的关系。
例如考虑Test2与Test之间的关系,而不是考虑Test test = new Test();Test与Test本身的关系。(可以认为跨包访问,
除了子类的实例可以访问,其他类的实例包括其自身都视为这个protected变量和方法为private类型的变量或方法了)
package test2;
import test.Test;
public class Test2 extends Test{
public void test2Function(){
i=6;
function();

}
public static void main(String[] params){
Test2 test2=new Test2();
System.out.println(test2.i);
test2.function();

Test test = new Test();
System.out.println(test.i);//compile error
test.function();//compile error
}
}

b.在同一个包里,不需要继承,可以用Test类实例的方式访问Test类的protected变量和方法(或test子类实例的方式)。
package test;
import test2.Test2;
public class Test3 {
public void test3Funciton(){
Test t=new Test();
System.out.println(t.i);
    t.function();
}
public static void main(String[] params){
Test t=new Test();
System.out.println(t.i);
    t.function();
   
Test2 test2=new Test2();
System.out.println(test2.i);
test2.function();
}
}
分享到:
评论

相关推荐

    public_protected_private用法详解

    - `public`是最宽松的访问级别,表示任何地方的任何代码都可以访问该成员。当一个类的方法或字段被声明为`public`时,它可以在类的外部被调用,这使得其他类可以自由地使用这些成员。 2. **保护访问修饰符...

    PHP中private、public、protected的区别详解.rar

    这包括`private`、`public`和`protected`,它们分别代表不同的访问级别,对类的封装性有着重要影响。理解这些修饰符的区别对于编写可维护和安全的代码至关重要。 1. **public**: - 定义:`public`关键字表示类的...

    C++ 继承详解 ppt C++ 继承详解(4)

    其中 `access_specifier` 可以是 `public`、`protected` 或 `private`,它们分别决定了基类成员在派生类中的访问级别。 - **私有继承(private)**:基类中的 `public` 和 `protected` 成员在派生类中变为 `private`...

    详解Java编程中protected修饰符与static修饰符的作用

    `protected`主要用于控制继承类之间的访问,而`static`则涉及类级别的共享和独立于实例的属性。理解这两个关键字的用法对于编写健壮、可维护的Java代码至关重要。在实际编程中,正确使用它们可以帮助我们设计出更...

    java访问权限修饰符[参考].pdf

    - **protected**:受保护的访问级别,表示被修饰的成员可以在同一包内或者不同包中的子类中被访问。 - **default**(包私有/包默认):无显式修饰符,默认为包访问级别,表示被修饰的成员只能在同一个包内被访问。 -...

    电子教材:《Java语言程序设计-修饰符》pdf版

    `protected`修饰符是Java中用于控制成员变量和方法访问级别的一个重要工具。当一个成员被声明为`protected`时,它可以在以下几种情况下被访问: 1. **同一类**:`protected`成员在其所在类中可见。 2. **子类**:在...

    Java中成员方法与成员变量访问权限详解

    - 这种访问级别通常用于包内协作的类,但不希望暴露给外部代码。 在实际编程中,一个常见的实践是将成员变量设为私有(private),然后通过公共方法(getter和setter)来读取和修改这些变量,这称为封装。方法通常...

    VC++ 视频详解32~35

    在本套"VC++ 视频详解32~35"教程中,主要涵盖了四个关键主题,分别是:三种继承方式下的访问控制、虚函数的概念、友元类与继承访问级别,以及抽像类的深入理解。这些内容是C++编程中的核心概念,尤其对于使用Visual ...

    Java类与对象详解PPT课件.pptx

    Java类与对象详解是Java编程语言的基础知识,本节将详细介绍Java类和对象的定义、实例化、成员变量、构造方法、访问修饰符、继承等知识点。 一、Java类的定义和实例化 在Java中,类是创建对象的模板,类必须先...

    java访问权限修饰符public.doc

    - **定义**:`public` 是 Java 中最开放的访问级别,表示该成员可以被任何地方访问。 - **示例**: ```java public class MyClass { public int myPublicVariable; public void myPublicMethod() { // 方法体 ...

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

    当子类重载父类的方法时,子类中方法的访问级别不应低于父类方法的访问级别。例如,如果父类中的方法为`public`,则子类中的重载方法也必须为`public`。 #### 变量成员的访问控制 为了保证数据的一致性和安全性,...

    java类修饰词和内部类详解

    如果没有明确指定访问级别,则默认为 default,这意味着只能被同一包中的类访问。 - **private**:表示私有访问。被声明为 private 的成员只能被所在类访问,不能被其他类访问。 #### 2. 其他类修饰词 - **...

    c# 类成员的可访问性代码详解

    这是默认的类成员访问级别,用于封装实现细节。 ```csharp internal class MyClass { internal int InternalField; internal void InternalMethod() { } } ``` `InternalField` 和 `InternalMethod` 只能在包含 `...

    C++语言详解.pdf

    - **访问控制关键字**: 如public、private、protected等,用于控制类成员的访问级别。 - **存储类别关键字**: 如auto、register、static等,用于指定变量的存储类别。 ### 二、C++程序设计方法 #### 1. 面向对象...

    类和对象深度详解c++描述

    类成员的访问控制是通过访问权限控制来实现的,访问权限包括private、protected和public三个级别。private只允许同类的成员函数访问,protected允许同类及其派生类的成员函数访问,public允许同一作用域的任何函数...

    Java中的private、protected、public和default的区别(详解)

    这是一种介于`public`和`private`之间的访问级别。 4. `private`: - `private`是最严格的访问控制,表示只能在声明该成员的类内部访问。这是实现数据封装的重要手段,可以避免其他类直接修改类的内部状态,保证...

    IETF Protected EAP Protocol

    IETF(互联网工程任务组)提出的Protected EAP Protocol(PEAP)是一种增强型的认证协议,旨在解决早期EAP(Extensible Authentication Protocol,可扩展认证协议)在无线网络和远程访问环境中的安全问题。...

    举例详解Java中的访问权限修饰符

    Java提供了五种访问权限级别,分别是public、friendly(或称为default)、private和protected。下面将详细解释这些访问权限的含义和使用场景。 1. **public**: - 成员(方法、变量):任何类在任何地方都能访问。...

Global site tag (gtag.js) - Google Analytics