Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻。今天下定决心,系统、全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获。如果文章中出现错误,欢迎评论指出,共同交流~ 说在前面:这篇文章只研究Java中访问控制修饰符声明类的变量/方法的情况。 先抛出结论:* 成员变量/方法的访问权限* private ...
1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问。 java 默认的权限是default,即friendly(注:friendly 在java中没有,是c的说法。) 同类,同包,同包子类父类都可以访问。 protected受保护的,同类,同包,同包子类父类,不同包子类父类都可以访问 private 私有的权限最小,同类可以访问。 图如下: 位置 ...
protected修饰的静态属性和方法的调用方式1:直接类名调用 2:实例化父类对象进行调用 3:实例化子类对象进行调用protected修饰的非静态属性和方法的调用方式:1:实例化子类对象进行调用 父类代码 1package com.baidu.tool;2 3import com.baidu.test.SonDiffPack;4 5publicclass Par...
首先声明:Java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly。为了条理清晰,分三种不同情况来总结。
一 访问权限修饰符修饰成员变量和方法 public:表明该成员变量和方法是共有的,能在任何情况下被访问。 protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了) eg:class A { protected int weight ; ...
成员变量有四种修饰符: private 私有的 package/friendly/default 不写 protected 受保护的 public 公共的目录
一些概念使用范围使用的原则一些概念
同包子类:一个类是类A的子类,并且和A处于同一个包下。不同包子类:一个类是类A的子类,但是在另一个包下。同包类: 一个类和类A是同一个包,但是彼此没有继承关系。其他包类:一个类与类A在不同包,也与其没有继承关系。
使用范围
自身同包子类不同包子类同包类其他包类public访...
private、protected、public this、super
先写了一个User()类:package chapter01;public class User {// 私有的private int id;// 受保护的protected int age;// 公开的public int weight;// 默认的String name;
}
在同包下创建一个新类Test2()类:
分别访问User()类下的4个变量,private修饰的id,无法访问!package chapter01;public class Test02 {public static void main(String[] args) {User user = new User();// private 修饰的元素,只能在本类中使用
// ...
java修饰符java修饰符就是用来修饰标识符的(也就是用来修饰类中的变量方法的),当然也是有类修饰符的public:对任何人都是可用的。
default:包访问权限,即在整个包内均可被访问。
private:除类型创建者和类型的内部方法之外的任何人都不能访问的元素。
上面三个一看就懂,下面这个我就懵逼了,继承的类可以访问,那我继承你的类不在一个包下可以访问不(我想了一下也是可以访问的)
protect:继承的类可以访问
但是当我们使用prot...
博客来源:
参考博客源:https://blog.csdn.net/asahinokawa/article/details/80777302
之前认识片面,现在得已纠正
误解区:protected修饰的成员对其子类可见.
现在的片面理解是:protected修饰的成员对其子类的可见分为两种情况:
1.子类与父类在同一个包中时父类的protected成员是包内可见子类可见的;
2.子类与父类不在同一个包中时子类实例可以访问其从父类继承而来的protected成员,而不能访问父类实例的protected成员。 代码分析如...
Java基础学习笔记(九)—— java中的private,protected,public与静态代码块Life was like a box of chocolates, you never know what you’re gonna get.| @Author:TTODS
目录Java基础学习笔记(九)—— java中的private,protected,public与静态代码块封装性与访问控制私有级别默认级别保护级别公有级别简单总结静态变量和静态方法静态代码块封装性与访问控制
java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访...
package pkg;
//import pkg.Chapter6;
import zeng.Print;public class chapter6inPkg {public static void main(String[] args) {Base objB2=new Base();// can get not public CLASS in same packageExtendBase objE2=new ExtendBase();Print.print("FOR BASE");//print(objB2.public_i);//The method print(int) is undefined for the type Chapter6inPkg2Print.print(objB2.public_i);Print.print(objB2.protect_j);//Print.p...
对于继承自己的class,父类可以认为他们都是自己的子女,而对于和自己都在同一个目录下的class,可以认为都是自己的朋友。
public:对所有用户开发,所有用户都可以直接调用
private:自己私有。除了自己之外,任何人都不可以直接使用。
protected:对于子女、朋友来说,是public的,可以自由使用,无任何限制。但对于其他外部的class,protected就变成了private。
Java 中关于成员变量访问权限问题,一般书中会给出如下表格:
在Java中,是否有明确规定何时使用每个访问修饰符,即默认(包私有),public,protected和private,同时创建类和接口以及处理继承?解决方法:The official tutorial可能对你有用.______________________________________________________________
| │ Class │ Package │ Subclass │ Subclass │ World |
| │ │ │(same pkg)│(diff pkg)│ |
|───────────┼───────┼...
参见英文答案 > Private vs Protected – Visibility Good-Practice Concern [closed] 6个> What is the difference between public, protected, package-private and private in Java? 24个我知道Java受保护的关键字是什么,它可以被类,包,子类访问,但不能访问世界.
我的问题是,我什么时候应该使用受保护的?解决方法:在这种情况下,当您希望元素...
我使用的是Spring 3.2和AspectJ 1.7.1. (我不太可能在不久的将来升级到更高版本.)
我需要为抽象类中的受保护方法定义切入点. AFAIK我需要AspectJ用于非公开的方法,所以我只用(AspectJ)注释尝试了这个:package com.aspects;
@Aspect
public class Aspect{@Before("execution(* com.x.y.x.MyClass.myMethod(..))")public void beforeAspect(){//do something here}}在我的beans.xml中,我有:<aop:aspectj-autoproxy />
<bean id="my...